Blog Linux Avante

Como reproduzir vídeos do YouTube do seu telefone para Raspberry Pi usando o YouTube na TV (Youtube.com/tv)

15 de abril de 2021

Youtube na TV https://youtube.com/tv framboesa pi

Este artigo explica como usar o YouTube Na TV (https://youtube.com/tv) em um Raspberry PI e controlá-lo usando o aplicativo YouTube do seu dispositivo móvel, quase como se você estiver usando um cromecast.

Depois de configurar tudo, você poderá usar o botão de transmissão no aplicativo do YouTube no seu telefone para se conectar ao YouTube na TV em execução no seu Raspberry Pi (usando o navegador da Web Chromium no modo de quiosque) e usar seu telefone como um remoto do YouTube. Você poderá reproduzir vídeos, adicionar vídeos à lista de reprodução, alterar o volume usando as teclas de volume do telefone, etc. Além disso, vários telefones (vários usuários) podem se conectar, reproduzir e adicionar vídeos à fila ao mesmo tempo.

Note que eu só testei isso usando telefones Android, então não tenho certeza se também funciona com o iOS. Eu acho que deveria, mas eu não possuo nenhum dispositivo iOS.

Nota importante. Não confunda o YouTube na TV (https://youtube.com/tv) com o YouTube TV (https://tv.youtube.com) . "YouTube na TV", ou "YouTube for TV" é uma interface Web YouTube projetada para TVs inteligentes, e é isso que vamos usar em um Raspberry PI, enquanto o YouTube TV é um serviço de televisão de streaming que oferece TV ao vivo e sob demanda.

O uso do YouTube na TV em um Raspberry PI tem algumas vantagens sobre o uso de um cromecast, mas também algumas desvantagens.

Vantagens de usar o YouTube na TV (https://youtube.com/tv) em um PI de framboesa em vez de um cromecast:

  • Você pode usar um bloqueador de anúncios como o Ublock Origin (vem pré-instalado com o navegador Chromium no Raspberry Pi OS) - Não há mais anúncios no YouTube (Não, o PI-hole não é confiável em bloquear os anúncios do YouTube, acredite em mim, eu tentei)
  • O aplicativo do YouTube no seu telefone não se desconecta do YouTube na TV após um período de inatividade
  • O aplicativo do YouTube não fecha após um período de inatividade, então vídeos pausados permanecem na tela indefinidamente
  • Você pode navegar pelo aplicativo do YouTube no TV do seu telefone (depois de conectar-se ao YouTube na TV com seu dispositivo móvel, clique no ícone de transmissão e você receberá um botão remoto que permite navegar pelos vídeos, alterando as configurações de vídeo, etc .)
  • Você pode alterar a qualidade do vídeo (que não é possível em um cromecast) usando o controle remoto que mencionei acima
  • Você deve ser capaz de navegar no YouTube na interface de TV usando o controle remoto da sua TV, desde que o TV suporta CEC, usando o CEC-Client. Isso requer alguns ajustes, e ainda não consegui fazer isso. Aqui está como ligar/desligar uma TV conectada via HDMI-CEC, por exemplo.

Desvantagens de usar o YouTube na TV em um Raspberry PI em vez de um cromecast:

  • Usando o YouTube na TV em um Raspberry Pi é obviamente ... apenas para o YouTube, enquanto um cromecast suporta muitas outras plataformas de áudio e vídeo. Esta é uma grande desvantagem se você usar muitas outras plataformas de áudio/vídeo, mas se você só quiser o YouTube, usar o YouTube na TV em um Raspberry PI é uma ótima alternativa
  • A qualidade do vídeo pode ser menor. Usando a extensão H264ify (instalada por padrão no Raspberry Pi OS; Necessário para reprodução de vídeo acelerado por hardware no YouTube) você receberá uma qualidade de vídeo máxima de 1080p30. Sem esta extensão, você recebe até 4K vídeos (mas eles não rodam corretamente no meu Raspberry Pi 4). Além disso, usando o YouTube na TV em um Raspberry PI, se um vídeo é apenas 1080p60, o vídeo diminui para 720p60
  • Na primeira vez que você conecta um telefone ao YouTube na TV, você precisa inserir um número e, para isso, você precisa de um mouse (ou algum software para emular um mouse do seu telefone ou desktop) no seu Raspberry PI, a fim de chegar até a página do PIN. Uma vez que um telefone esteja conectado com um PIN, ele funciona apenas como um cromecast.

Estes são todos os prós e contras que eu poderia pensar, mas pode haver outros. Isso realmente depende da maneira como você usa isso e o que você quer dele.

É importante notar que para testar tudo isso, usei um Raspberry Pi 4 com Raspberry Pi OS. Nem todas as instruções abaixo funcionarão se você usar uma distribuição Linux diferente (por exemplo, adicionar programas à inicialização não será a mesma). Não tenho certeza de quão bem mais velhos modelos de Raspberry PI são capazes de reproduzir vídeos do YouTube. Além disso, você não precisa usar isso em um Raspberry PI - você poderia usar em qualquer computador que executa o Linux, mas algumas partes das instruções abaixo não funcionam exatamente da mesma maneira.

Configurando YouTube na TV (https://youtube.com/tv) com o Chromium para lançar na inicialização no seu Raspberry PI

1. Instale a extensão YouTube na TV no navegador Chromium.

Você pode obter a extensão do Chrome Web Store.

Por padrão, visitando https://youtube.com/tv em um dispositivo diferente de uma TV redireciona para o site do YouTube normal. Parece que o Google realmente não quer que usemos isso em qualquer outra coisa que não seja uma TV por causa de ... provavelmente bloqueadores de anúncios.

Usar um agente de usuário de TV corrige isso, mas os vídeos são 720p. Usando a extensão para o YouTube na TV, https://youtube.com/tv para de redirecionar para o YouTube regular, enquanto também permite vídeos com uma qualidade superior a 720p. Ainda precisaremos usar um agente de usuário ao iniciar o Chromium no modo de quiosque, porque ele ignora o agente do usuário desta extensão por algum motivo (isso não acontece quando é iniciado sem quiosque ou modo de tela cheia), mas usando isso teremos vídeos de maior qualidade.

2. Crie um script que lança navegador Chromium no modo de quiosque e carrega https://youtube.com/tv, com algumas configurações para otimizá-la para o uso com o YouTube na TV.

Crie um script, vamos chamá-lo de yt, em ~/.local/bin.

Para garantir que a pasta ~/.local/bin exista (e seja criada se não existir), execute este comando:

Comandos para usar no terminal

mkdir -p ~/.local/bin

Agora rie um arquivo chamado yt em ~/.local/bin, e abra com um editor de texto. Usaremos o editor de texto da linha de comando Nano para abri-lo usando o seguinte comando:

Comandos para usar no terminal

nano ~/.local/bin/yt

Neste arquivo, cole o seguinte:

#!/bin/bash

sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences

sed -i 's/"exit_type": "Crashed"/"exit_type": "None"/' ~/.config/chromium/Default/Preferences

sleep 5; chromium-browser --autoplay-policy=no-user-gesture-required --enable-extensions --user-agent="Mozilla/5.0(SMART-TV; Linux; Tizen 4.0.0.2) AppleWebkit/605.1.15 (KHTML, like Gecko) SamsungBrowser/9.2 TV Safari/605.1.15" --kiosk "https://www.youtube.com/tv"  >/dev/null 2>&1 &

Aqui é o que isso faz:

  • Os 2 comandos sed (via Raspberry PI Stackexchange) modificam o arquivo do Chromium Preferences como se o Chromium encerrasse de forma limpa, caso o navegador realmente não saísse de forma limpa. Desta forma você não recebe o pop-up de restauração de sessão caso o navegador falhe, sua energia se apaga, etc. Não tenho certeza se isso é realmente necessário ao lançar o Chromium no modo de quiosque, mas acho que é melhor ter isso em o script do que o Chromium não ser lançado corretamente
  • A última linha:
    • sleep 5 é usado para aguardar 5 segundos antes de iniciar o navegador Chromium. Vamos adicionar este script à inicialização, então vamos esperar 5 segundos antes de iniciar o Chromium, então o Raspberry PI tem tempo suficiente para se conectar à Internet. Caso leve mais tempo para você, modifique o valor do sleep aqui
    • Em seguida, iniciamos o Chromium usando as seguintes opções:
  • --autoplay-policy=no-user-gesture-required: Isso permite que o Chromium reproduza vídeos automaticamente. Sem isso, você precisa iniciar manualmente o primeiro vídeo após uma reinicialização do Chromium, e isso não pode ser feito a partir do aplicativo do YouTube, então você precisaria de um teclado para fazer isso ou enviar uma chave usando algo como xdotool
  • --enable-extensions: Autoexplicativo - permite carregar extensões, como a YouTube na TV, Unblock Origin, h264ify, etc.
  • --user-agent="Mozilla/5.0(SMART-TV; Linux; Tizen 4.0.0.2) AppleWebkit/605.1.15 (KHTML, like Gecko) SamsungBrowser/9.2 TV Safari/605.1.15": Apesar de estarmos usando a extensão YouTube na TV, se o Chromium começar no modo de tela inteira/quiosque, ele ainda redireciona para a interface do site regular do YouTube. Então estamos usando um agente de usuário de TV para fazer o YouTube ficar no https://youtube.com/tv
  • --kiosk: Executa o Chromium no modo de quiosque. Isso faz com que ele comece na tela inteira e desativa algum popus, como o pop-up de tradução, etc.
  • "https://www.youtube.com/tv": Este é o URL que queremos abrir quando o Chromium começa

    • >/dev/null 2>&1 redireciona stdout e stderr para que você não veja nenhuma saída no terminal se você executar isto manualmente, e & mantem o aplicativo em execução

3. Adicione nosso novo script à inicialização.

Comece fazendo o novo executável de script yt:

Comandos para usar no terminal

chmod +x ~/.local/bin/yt

Agora, edite o arquivo AutoStart do Raspberry Pi OS (~/.config/lxsession/LXDE-pi/autostart) usando um editor de texto - Usando o comando abaixo, vamos abri-lo usando o editor Nano:

Comandos para usar no terminal

nano ~/.config/lxsession/LXDE-pi/autostart

Neste arquivo, adicione a seguinte linha ao AutoStart para o script yt:

Comandos para usar no terminal

@bash /home/pi/.local/bin/yt

Quando terminar, salve o arquivo (use Ctrl + O, então Enter para salvá-lo, seguido por Ctrl + X para sair nano).

É importante notar que não podemos usar ~/.local/bin/yt no arquivo AutoStart. Precisamos usar o caminho completo para o script yt. Portanto, se o caminho for diferente (você não está usando o usuário padrão pi), ajuste isso ao seu sistema/nome de usuário.

4. Inicie o Chromium com o YouTube na TV pela primeira vez.

O Chromium com o YouTube na TV será iniciado automaticamente na inicialização. Mas como não queremos reiniciar apenas para começar, podemos começar manualmente. Feche todas as janelas do navegador Chromium em execução e abra um terminal e digite:

Comandos para usar no terminal

~/.local/bin/yt &

5. Emparelhe seu telefone com o YouTube na TV em execução no Raspberry Pi.

Com o navegador Chromium em execução e https://www.youtube.com/tv aberto no seu Raspberry Pi, vá para Configurações (o ícone de engrenagem no lado inferior esquerdo) e, em seguida, clique em Link with TV code, e você verá um código na tela da sua TV:

YouTube no código de TV

Agora abra o aplicativo do YouTube no seu telefone, clique no ícone de transmissão na parte superior do aplicativo, e você terá uma opção que diz Link with TV code.

Clique nele e digite o código que você vê na sua TV:

YouTube Android Digite o código

Clique em Link depois de inserir o código e pronto! Você pode se conectar ao YouTube na TV para executar seus vídeos no Raspberry Pi e lançá-lo do seu telefone para ele, conectando-se ao dispositivo recém-adicionado:

YouTube Android Connect to TV

Este torna o YouTube na TV funcional no seu Raspberry PI. No entanto, além disso, também estou usando alguns ajustes/otimizações, que você também pode querer usar. Veja abaixo para detalhes.

Otimizações/Tweaks para usar o YouTube na TV via Chromium no Raspberry Pi

1. Ativar aceleração de hardware no navegador Chromium em execução no Raspberry PI.

Esta é provavelmente a melhoria mais importante. Usando isso, os vídeos do YouTube devem usar muito menos CPU, mantendo seu Raspberry PI menos quente. Confira o seguinte artigo para obter instruções exatas:

Como habilitar a aceleração de hardware no Chromium no Raspberry Pi OS

2. Esconder automaticamente o cursor do mouse quando inativo.

O cursor do mouse aparece no topo do YouTube na TV. Para fazer ele se esconder, estou usando unclutter-xfixes, uma reescrita da popular ferramenta unclutter, mas usando a extensão x11-xfixes (e com algumas melhorias). Você também pode usar o unclutter original (está nos repositórios), no entanto, eu pessoalmente prefiro este fork. Observe que o uso deles não é o mesmo, se você quiser usar o unclutter original, consulte aqui.

Para instalar o unclutter-xfixes, instale o Git se você ainda não tiver, assim como as dependências do unclutter-xfixes:

Comandos para usar no terminal

sudo apt install git libx11-dev libxfixes-dev libxi-dev libev-dev asciidoc

Depois, clone o repositório do Github do unclutter-xfixes, compile e instale a ferramenta:

Comandos para usar no terminal

git clone https://github.com/Airblader/unclutter-xfixescd unclutter-xfixesmakesudo make install

Agora para esconder automaticamente o cursor do mouse quando ocioso, você precisará adicionar unclutter -b na inicialização. Para fazer isso, abra o arquivo AutoStart do Raspberry Pi OS com um editor de texto - vamos usar o Nano aqui:

Comandos para usar no terminal

nano ~/.config/lxsession/LXDE-pi/autostart

No final do arquivo, adicionar:

Comandos para usar no terminal

@unclutter -b

Quando terminar, salve o arquivo (use Ctrl + O, depois Enter para salvá-lo, seguido por Ctrl + X para sair do nano). Ou aguarde e salve-o após o próximo passo, já que estamos adicionando um outro comando para o AutoStart.

3. Desativar desligamento da tela

Para desativar o desligamento de tela, mais uma vez teremos que adicionar um comando ao arquivo AutoStart. Então abra o arquivo ~/.config/lxsession/LXDE-pi/autostart com Nano:

Comandos para usar no terminal

nano ~/.config/lxsession/LXDE-pi/autostart

e no final do arquivo, adicione:

Comandos para usar no terminal

@xset -dpms s off

e finalmente, salve o arquivo (use Ctrl + O, então Enter para salvá-lo, seguido por Ctrl + X para sair).

4. Instalar Profile Sync Daemon para carregar o Perfil do Chromium em tmpfs (RAM).

Profile Sync Daemon é uma ferramenta para manter seu perfil do navegador em tmpfs e sincroniza periodicamente de volta ao seu disco físico. Isso acelera o Chromium ao mesmo tempo que faz menos gravações no disco, para que o SDCard/USB do seu Raspberry PI dure por mais tempo. Use isso se o seu Raspberry Pi tiver RAM suficiente.

Instale-o usando:

Comandos para usar no terminal

sudo apt install profile-sync-daemon

Agora, execute PSD pela primeira vez, a fim de criar o arquivo de configuração do usuário:

Comandos para usar no terminal

psd

Agora edite o arquivo de configuração do PSD usando um editor de texto:

Comandos para usar no terminal

nano ~/.config/psd/psd.conf

Neste arquivo, descomente a linha BROWSERS, e adicione chromium a ele, então fica assim:

BROWSERS="chromium"

Agora você pode ativar e iniciar o PSD:

Comandos para usar no terminal

systemctl --user enable psdsystemctl --user start psd

Eu também desabilitei a swap no meu Raspberry PI, a fim de minimizar as gravações de disco, mas não tenho certeza se é uma boa ideia, então eu não estou adicionando instruções para isso aqui. Você pode encontrar como fazer isso com uma pesquisa simples.

Confira a versão original desse post em inglês
Propaganda
Blog Comments powered by Disqus.
Propaganda