TubeSync: Docker

2 minuto(s) de lectura

Docker

TubeSync es un PVR (Personal Video Recorder) diseñado inicialmente para Youtube, aunque según he leido en su código pensado para hacerlo más extensible a otras plataformas en un futuro.

TubeSync esta desarrollado en Python y diseñado para sincronizar canales y listas de reproducción de Youtube a directorios locales y con posibilidad de actualizar el Servidor de medios (miniDLNA, Jellyfin, …) una vez la descarga ha finalizado.

La aplicación en si, es un contenedor con una interfaz web que integra youtube-dl y ffmpeg con un programador de tareas.

La ventaja de usar este contenedor es que por ejemplo tiene reintentos graduales de fallos con temporizadores de retroceso para que los medios que no se descarguen se reintentan durante un periodo prolongado.

El inconveniente es que en el momento de escribir esta entrada solo esta soportado por arquitecturas AMD64 y no soporta ARM en el momento de publicar la entrada (en desarrollo).

Vamos a realizar unos pasos previos para preparar el entorno. En primer lugar creamos las carpetas donde alojar el proyecto:

mkdir -p $HOME/docker/tubesync/{config,descargas} && \
cd $HOME/docker/tubesync

Ahora vamos a crear el fichero de configuración docker-compose.yml lanzando el siguiente comando:

cat << EOF > $HOME/docker/tubesync/docker-compose.yml
version: '2'
services:
  tubesync:
    image: ghcr.io/meeb/tubesync:latest
    container_name: TubeSync
    ports:
      - 4848:4848
    volumes:
      - '~/docker/tubesync/config:/config'
      - '~/docker/tubesync/descargas:/downloads'
    environment:
      - TZ=Europe/Madrid
      - PUID=1000
      - PGID=1000
      - HTTP_USER=empalador
      - HTTP_PASS=nocturno
      - TUBESYNC_DEBUG=True
    restart: always
EOF

Vamos a repasar los principales parámetros a modificar para adaptarlos a nuestro sistema y configuración especifica:

Parámetro Función
4848:4848 Puerto de acceso interfaz Web :4848
~/docker/tubesync/config:/config Ruta donde almacena Base de datos
~/docker/tubesync/descargas:/downloads Ruta donde almacena las Descargas
TZ=Europe/Madrid Zona horaria Europa/Madrid
PUID=1000 UID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id
PGID=1000 GID de nuestro usuario. Para saber nuestro ID ejecutar en terminal: id
HTTP_USER=empalador Usuario de acceso a interfaz web, recomiendo cambiar
HTTP_PASS=nocturno Contraseña de acceso a interfaz web, recomiendo cambiar
TUBESYNC_DEBUG=True Habilitamos el modo Debug, recordar que es una aplicación en desarrollo
restart: always Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio

Una vez configurado, lo levantamos para ser creado y ejecutado:

docker-compose up -d

Tras ello, podremos configurar el servicio, que en mi caso estaría disponible en la dirección web http://192.168.1.90:4848.

Haciendo clic en Sources, añadimos las fuentes de descargas: Canal o lista:

Haciendo clic en Media podremos ver las desargas finalizadas:

Haciendo clic en Tasks podremos ver la cola de espera y en caso de producirse error el estado en que se encuentra:

Haciendo clic en Media Servers podremos integrar las descargas con nuestro Servidor Multimedia (en desarrollo):

Y listo!