TubeSync: 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!