Cómo transmitir videos de YouTube desde su teléfono a Raspberry Pi usando YouTube en TV (youtube.com/tv)

Este artículo explica cómo usar YouTube en TV (https://youtube.com/tv) en una Raspberry Pi y controlarlo usando la aplicación YouTube desde su dispositivo móvil, casi como si estuviera usando un Chromecast.

Una vez que haya configurado todo, podrá usar el botón de transmisión desde la aplicación YouTube en su teléfono para conectarse a YouTube en el televisor que se ejecuta en su Raspberry Pi (usando el navegador web Chromium en modo quiosco) y usar su teléfono como Control remoto de YouTube. Podrá reproducir videos, agregar videos a la cola, cambiar el volumen usando las teclas de volumen del teléfono, etc. Además, varios teléfonos (es decir, múltiples usuarios) pueden conectarse, reproducir y agregar videos a la cola al mismo tiempo.

Tenga en cuenta que solo probé esto con teléfonos Android, por lo que no estoy seguro de si también funciona con iOS. Supongo que debería, pero no tengo ningún dispositivo iOS.

Nota importante. No confunda YouTube en TV (https://youtube.com/tv) con YouTube TV (https://tv.youtube.com). “YouTube on TV”, o “YouTube for TV” es una interfaz web de YouTube diseñada para televisores inteligentes, y eso es lo que usaremos en una Raspberry Pi, mientras que YouTube TV es un servicio de televisión en streaming que ofrece TV en vivo y en vivo. -vídeo a la carta.

Usar YouTube en la televisión en una Raspberry Pi tiene bastantes ventajas sobre usar un Chromecast, pero también algunas desventajas.

Ventajas de usar YouTube en TV (https://youtube.com/tv) en una Raspberry Pi en lugar de un Chromecast (no estoy seguro de si todo se aplica al último Chromecast, tengo el Chromecast Ultra más antiguo):

  • Puede usar un bloqueador de anuncios como Ublock Origin (viene preinstalado con el navegador Chromium en el sistema operativo Raspberry Pi): no más anuncios en YouTube (no, Pi-hole no es confiable para bloquear anuncios de YouTube, créanme, lo he intentado).
  • La aplicación YouTube de tu teléfono no se desconecta de YouTube en el televisor después de un período de inactividad
  • La aplicación YouTube no se cierra después de un período de inactividad, por lo que los vídeos pausados ​​permanecen en pantalla indefinidamente
  • Puede navegar a través de la aplicación YouTube en TV desde su teléfono (después de conectarse a YouTube en TV con su dispositivo móvil, haga clic en el ícono de transmisión y obtendrá un botón Remoto que le permitirá navegar a través de los videos, cambiar la configuración del video, etc. )
  • Puedes cambiar la calidad del video (lo cual no es posible en un Chromecast) usando el control remoto que mencioné anteriormente.
  • Debería poder navegar por la interfaz de YouTube en el televisor usando el control remoto de su televisor, siempre que el televisor admita CEC, mediante cec-client. Esto requiere algunos ajustes y aún no he podido hacerlo. A continuación se explica cómo encender/apagar un televisor conectado mediante HDMI-CEC, por ejemplo.

Desventajas de usar YouTube en la televisión en una Raspberry Pi en lugar de un Chromecast:

  • Usar YouTube en la televisión en una Raspberry Pi es obviamente… solo para YouTube, mientras que un Chromecast admite muchas otras plataformas de audio y video. Esta es una gran desventaja si usas muchas otras plataformas de audio/video, pero si solo quieres esto para YouTube, usar YouTube en TV en una Raspberry Pi es una excelente alternativa.
  • La calidad del vídeo puede ser inferior. Con la extensión h264ify (instalada de forma predeterminada en el sistema operativo Raspberry Pi; necesaria para la reproducción de video acelerada por hardware en YouTube), obtendrá una calidad de video máxima de 1080p30. Sin esta extensión, obtienes videos de hasta 4K (pero no se reprodujeron correctamente en mi Raspberry Pi 4). Además, al usar YouTube en la televisión en una Raspberry Pi, si un video es solo de 1080p60, el video se degrada a 720p60.
  • La primera vez que conectas un teléfono a YouTube en la TV, necesitas ingresar un pin, y para esto necesitas un mouse (o algún software para emular un mouse desde tu teléfono o computadora de escritorio) en tu Raspberry Pi para poder acceder al fijar página. Una vez que un teléfono está conectado con un pin, funciona como un Chromecast

Estos son todos los pros y los contras que se me ocurren, pero puede haber otros. Realmente depende de la forma en que uses esto y de lo que quieras de él.

Es importante tener en cuenta que para probar todo esto, utilicé una Raspberry Pi 4 con sistema operativo Raspberry Pi. No todo lo incluido en las instrucciones siguientes funcionará si utiliza una distribución de Linux diferente (por ejemplo, agregar programas al inicio no será lo mismo). No estoy seguro de qué tan bien los modelos más antiguos de Raspberry Pi pueden reproducir videos de YouTube. Además, no es necesario que uses esto en una Raspberry Pi; puedes usarlo en cualquier computadora que ejecute Linux, pero algunas partes de las instrucciones a continuación no funcionarán exactamente de la misma manera.

Configure YouTube en TV (https://youtube.com/tv) con Chromium para iniciarlo al iniciar su Raspberry Pi

1. Instale la extensión YouTube TV en PC Chrome en el navegador Chromium.

Puede obtener la extensión desde elTienda web de Chrome.

De forma predeterminada, visitar https://youtube.com/tv en un dispositivo que no sea un televisor redirige al sitio web habitual de YouTube. Parece que Google realmente no quiere que usemos esto en nada más que un televisor debido a... probablemente bloqueadores de publicidad.

El uso de un agente de usuario de TV soluciona este problema, pero los videos son de 720p. Al usar la extensión YouTube TV en PC, https://youtube.com/tv deja de redirigir al YouTube normal y al mismo tiempo permite videos con una calidad superior a 720p. Aún necesitaremos usar un agente de usuario al iniciar Chromium en modo quiosco, porque por alguna razón omite el agente de usuario de esta extensión (esto no sucede cuando se inicia sin modo quiosco o de pantalla completa), pero al usarlo Obtendrás vídeos de mayor calidad.

2. Cree una secuencia de comandos que inicie el navegador Chromium en modo quiosco y cargue https://youtube.com/tv, con algunas configuraciones para optimizarlo para su uso con YouTube en TV.

Crea un script, llamémosloyt, en~/.local/bin.

Para asegurarse de que el~/.local/binLa carpeta existe (y créala si no es así), ejecuta este comando:

mkdir -p ~/.local/bin

Ahora crea un archivo llamadoyten~/.local/biny ábrelo con un editor de texto. Usaremos el editor de texto de línea de comando Nano para abrirlo usando el siguiente comando:

nano ~/.local/bin/yt

En este archivo, pegue lo siguiente:

#!/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 &

Esto es lo que esto hace:

  • el 2sedcomandos (a través deIntercambio de pila de Raspberry Pi) modificar el cromoPreferencesarchivo como si Chromium saliera limpiamente, en caso de que el navegador en realidad no saliera limpiamente. De esta manera, no aparecerá la ventana emergente de restauración de sesión en caso de que el navegador falle, se corte la energía, etc. No estoy seguro de si esto es realmente necesario al iniciar Chromium en modo quiosco, pero creo que es mejor tenerlo en el script hace que Chromium no se inicie correctamente
  • la última línea:
    • sleep 5se utiliza para esperar 5 segundos antes de iniciar el navegador Chromium. Agregaremos este script al inicio, por lo que esperaremos 5 segundos antes de iniciar Chromium, para que Raspberry Pi tenga tiempo suficiente para conectarse a Internet. En caso de que te tarde más, modifica el valor del sueño aquí.
    • A continuación, iniciamos Chromium usando las siguientes opciones:
      • --autoplay-policy=no-user-gesture-required: esto permite que Chromium inicie automáticamente el video. Sin esto, debes iniciar manualmente el primer video después de reiniciar Chromium, y esto no se puede hacer desde la aplicación de YouTube, por lo que necesitarás un teclado para hacerlo o enviar una clave usando algo comoxdotool
      • --enable-extensions: se explica por sí mismo: permite cargar extensiones, como la extensión YouTube TV en PC, UBlock 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": aunque estemos usando la extensión YouTube TV en PC Chrome, si Chromium se inicia en modo quiosco/pantalla completa, aún redirige a la interfaz normal del sitio web de YouTube. Entonces estamos usando un agente de usuario de TV para lograr que YouTube permanezcahttps://youtube.com/tv
      • --kiosk: ejecuta Chromium en modo quiosco. Esto hace que comience en pantalla completa y deshabilita algunas ventanas emergentes, como la ventana emergente de traducción, etc.
      • "https://www.youtube.com/tv": esta es la URL que queremos abrir cuando se inicie Chromium
    • >/dev/null 2>&1redirige STDOUT y STDERR para que no vea ningún resultado en la terminal si ejecuta esto manualmente, y&mantiene la aplicación en ejecución

3. Agregue nuestro nuevo script al inicio.

Comience por hacer el nuevoytscript ejecutable:

chmod +x ~/.local/bin/yt

A continuación, edite el archivo de inicio automático del sistema operativo Raspberry Pi (~/.config/lxsession/LXDE-pi/autostart) usando un editor de texto: usando el siguiente comando, lo abriremos usando el editor de línea de comando Nano:

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

En este archivo, agregue la siguiente línea para iniciar automáticamente elytguion:

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

Cuando haya terminado, guarde el archivo (useCtrl + O, entoncesEnterpara guardarlo, seguido deCtrl + Xpara salir de Nano).

Es importante tener en cuenta que no podemos usar~/.local/bin/yten el archivo de inicio automático. Necesitamos utilizar el camino completo hacia elytguion. Entonces, si la ruta es diferente (no estás usando la ruta predeterminadapiusuario), ajuste esto a su sistema/nombre de usuario.

4. Inicie Chromium con YouTube en la televisión por primera vez.

Chromium con YouTube en TV se iniciará automáticamente al iniciar. Pero como no queremos reiniciar sólo para iniciarlo, podemos iniciarlo manualmente. Cierre todas las ventanas del navegador Chromium en ejecución, luego abra una terminal y escriba:

~/.local/bin/yt &

5. Empareje su teléfono con YouTube en un televisor con Raspberry Pi.

Con el navegador Chromium ejecutándose y https://www.youtube.com/tv abierto en tu Raspberry Pi, ve a configuración (el ícono de ajustes en la parte inferior izquierda), luego haz clic enLink with TV codey verás un código en la pantalla de tu televisor:

Ahora abre la aplicación de YouTube en tu teléfono, haz clic en el ícono de transmitir en la parte superior de la aplicación y tendrás una opción que diceLink with TV code

Haga clic aquí e ingrese el código que ve en su televisor:

Hacer clicLinkdespués de ingresar el código, ¡y listo! Puedes conectarte a YouTube en un televisor que se ejecuta en tu Raspberry Pi y transmitir videos de YouTube desde tu teléfono conectándote al dispositivo recién agregado:

Esto hace que YouTube en TV esté funcionando en tu Raspberry Pi. Sin embargo, además de esto, también estoy usando algunos ajustes/optimizaciones, que quizás también quieras usar. Consulte a continuación para obtener más detalles.

Optimizaciones/ajustes para usar YouTube en TV a través de Chromium en Raspberry Pi

1. Habilite la aceleración de hardware en el navegador Chromium que se ejecuta en Raspberry Pi.

Esta es probablemente la optimización/ajuste más importante. Al usar esto, los videos de YouTube deberían usar mucha menos CPU y, al mismo tiempo, mantener su Raspberry Pi más fresca. Consulte el siguiente artículo de Linux Uprising para obtener instrucciones exactas:

Cómo habilitar la aceleración de hardware en Chromium en el sistema operativo Raspberry Pi

2. Ocultar automáticamente el cursor del mouse cuando esté inactivo.

El cursor del mouse aparece encima de YouTube en la televisión. Para que se oculte automáticamente, estoy usandodespejar-xfixes, una reescritura del popularunclutterherramienta, pero usando la extensión x11-xfixes (y con algunas mejoras). También puedes usar el desorden original (está en los repositorios), sin embargo, personalmente prefiero esta bifurcación. Tenga en cuenta que su uso no es el mismo, por lo que si desea utilizar el desorden original, consulteaquí.

Para instalar unclutter-xfixes, instala Git si aún no lo has hecho, así como las dependencias de unclutter-xfixes:

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

A continuación, clone el repositorio de GitHub unclutter-xfixes, cree e instale la herramienta:

git clone https://github.com/Airblader/unclutter-xfixes

cd unclutter-xfixes

make

sudo make install

Ahora, para ocultar automáticamente el cursor del mouse cuando esté inactivo, deberá agregarunclutter -bpara iniciar. Para hacer esto, abra el archivo de inicio automático del sistema operativo Raspberry Pi con un editor de texto; usaremos el editor de texto de la consola Nano a continuación:

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

Al final del archivo, agregue:

@unclutter -b

Cuando haya terminado, guarde el archivo (useCtrl + O, entoncesEnterpara guardarlo, seguido deCtrl + Xpara salir de Nano). O espere y guárdelo después del siguiente paso, ya que agregaremos otro comando más para el inicio automático.

3. Desactivar la pantalla en blanco

Para desactivar la pantalla en blanco, una vez más tendremos que agregar un comando al archivo de inicio automático. Así que abre el~/.config/lxsession/LXDE-pi/autostartarchivo con Nano:

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

Y al final del archivo, agregue:

@xset -dpms s off

Y finalmente, guarde el archivo (useCtrl + O, entoncesEnterpara guardarlo, seguido deCtrl + Xpara salir).

4. Instale Profile Sync Daemon para cargar el perfil de Chromium en tmpfs (RAM).

Demonio de sincronización de perfileses una herramienta para mantener el perfil de su navegador en tmpfs y sincronizarlo periódicamente con su disco físico. Esto acelera Chromium y al mismo tiempo realiza menos escrituras en el disco, por lo que la tarjeta SD/USB de tu Raspberry Pi dura más. Úselo si su Raspberry Pi tiene suficiente RAM.

Instálalo usando:

sudo apt install profile-sync-daemon

A continuación, ejecute PSD por primera vez para crear el archivo de configuración del usuario:

psd

Ahora edite el archivo de configuración PSD usando un editor de texto, por ejemplo Nano:

nano ~/.config/psd/psd.conf

En este archivo, descomente elBROWSERSlínea y agreguechromiuma él, por lo que se ve así:

BROWSERS="chromium"

Ahora puedes habilitar e iniciar PSD:

systemctl --user enable psdsystemctl --user start psd

[[Editar]]Chromium y algunos otros navegadorestener su caché almacenado en una ubicación diferente al perfil del navegador. Entonces, carguemos también el caché de Chromium en la RAM (usando tmpfs), editando/etc/fstabusando el editor de consola Nano:

sudo nano /etc/fstab

Y agregue la siguiente línea al archivo (no edite nada más, un archivo fstab incorrecto significa que su Pi ya no arrancará):

tmpfs   /home/pi/.cache/chromium tmpfs   user,exec,uid=1000,gid=1000,size=500m      0 0

Editar elsizevalor con la cantidad de MB que desea usar para el caché de Chromium almacenado en la RAM. Estoy usando 500 aquí, pero es posible que quieras usar un valor diferente, dependiendo de la cantidad de RAM disponible para tu Raspberry Pi.

También deshabilité el intercambio en mi Raspberry Pi para minimizar las escrituras en el disco, pero no estoy seguro de si es una buena idea, por lo que no agregaré instrucciones para eso aquí. Puede encontrar cómo hacer esto con una simple búsqueda.

Fuente

Related Posts