Jellyfin y Raspberry PI: un sistema gratuito para administrar sus medios

Las placas de computadora Raspberry PI, especialmente las más nuevas, satisfacen perfectamente la necesidad de pequeños sistemas de centros de medios. Uno de los más famosos en la web es Jellyfin.

Este tutorial le mostrará cómo instalar Jellyfin en placas de computadora Raspberry PI usando Docker. Para este tutorial, usaré una Raspberry PI 3 Modelo A+, pero debería funcionar con cualquier placa de computadora Raspberry PI más nueva.

Además, también voy a mostrar una forma de cargar fácilmente archivos multimedia de forma remota a su centro multimedia Jellyfin.

Jellyfin, el sistema de medios de software libre

Jellyfin es un sistema de medios de software libre con licencia GNU GPL: esto significa que puede usarlo, estudiarlo, modificarlo, construirlo y distribuirlo de forma gratuita, siempre que sus cambios tengan la misma licencia. Desciende de la versión 3.5.2 de Emby, tratando de ser diferente para evitar cadenas adjuntas, licencias o funciones premium y agendas ocultas.

Jellyfin puede administrar diferentes tipos de medios como, por ejemplo, películas, programas de TV, música, TV en vivo y DVR, y libros.

Le permite ver sus medios desde un navegador web. Pero también puede usar el software del cliente que le permite facilitar la comunicación con el servidor. La lista completa de software de cliente se puede encontrar en https://jellyfin.org/clients/ e incluye aplicaciones para Roku, Android, iOS, Fire TV, Chromecast, Kodi, etc.

También puede probar una demostración gratuita en https://demo.jellyfin.org, donde puede probar el software iniciando sesión con el usuario «demo» y una contraseña vacía.

Lo que necesitamos

Como de costumbre, sugiero agregar desde ahora a su carrito de compras de comercio electrónico favorito todo el hardware necesario, para que al final pueda evaluar los costos generales y decidir si continúa con el proyecto o los elimina del carrito de compras. Entonces, el hardware será solo:

Consulta precios de hardware en los siguientes enlaces:

Procedimiento paso a paso

Preparar el sistema operativo Raspberry PI

Comience a instalar su sistema operativo. Como su servidor Jellyfin no se conectará directamente con un cable HDMI a su televisor, puede usar Raspberry PI OS Lite para un sistema operativo rápido y sin periféricos. Sugiero esta solución, especialmente para modelos RPI de menor capacidad, pero también puede usar Raspberry PI OS Desktop (en este caso trabajando desde su terminal).

Actualice su sistema operativo. Desde terminales:

sudo apt update -y && sudo apt upgrade -y

Con instalaciones sin cabeza Raspberry PI (RPI OS Lite), es una buena práctica reducir la memoria RAM dedicada a la GPU a su valor mínimo, es decir, 16 MB. Puede consultar mi tutorial Administrar división de memoria de GPU de Raspberry PI para obtener la forma correcta.

Además, probablemente desee utilizar un almacenamiento externo para almacenar sus medios (como un disco USB o una memoria USB). Como RPI OS Lite no montará automáticamente el almacenamiento conectado, también para esta tarea puede usar mi almacenamiento USB Automount con Raspberry PI OS Lite: fstab y autofs. Usaré una memoria USB montada con un punto de montaje en la carpeta /media/myUSB a través de autofs.

Instale Jellyfin en Raspberry PI a través de Docker

Jellyfin se puede instalar de diferentes maneras, siendo Docker la más sencilla (y la que se va a mostrar en este tutorial). Instale Docker en su Raspberry PI con mi tutorial Configurar un entorno Docker con Raspberry PI OS Lite. Aquí, puede detenerse en la instalación de la ventana acoplable (con la concesión de permisos de usuario). Portainer y docker-compose son una ventaja y sugiero que también los evalúe para sus proyectos futuros.

Ahora, tenemos que preparar las carpetas requeridas para Jellyfin en nuestro sistema de archivos Raspberry PI. Si bien las carpetas de configuración y caché son imprescindibles, la carpeta de medios se puede configurar y organizar de acuerdo con sus preferencias. A continuación, agregaré una carpeta específica para cada tipo de medio de acuerdo con la clasificación de medios de Jellyfin, a fin de obtener un directorio bien organizado. Tenga en cuenta que voy a crear todas estas carpetas en mis medios adjuntos.

Por lo tanto, cree las carpetas requeridas con los siguientes comandos de terminal:

mkdir /media/myUSB/config mkdir /media/myUSB/cache  mkdir /media/myUSB/media mkdir /media/myUSB/media/movies mkdir /media/myUSB/media/music mkdir /media/myUSB/media/shows mkdir /media/myUSB/media/books mkdir /media/myUSB/media/photos mkdir /media/myUSB/media/musicvideos mkdir /media/myUSB/media/mixed

La descarga e instalación del software Jellyfin se realizará con un solo comando de Docker (aquí está la magia de Docker):

docker run -d   --name jellyfin   --net=host   --volume /media/myUSB/config:/config   --volume /media/myUSB/cache:/cache   --mount type=bind,source=/media/myUSB/media,target=/media   --restart=unless-stopped   jellyfin/jellyfin

Compruebe que el contenedor está arriba. En el primer inicio, puede tomar algunos segundos para comenzar por completo. Para ello, utilice el comando «docker ps»:

pi@raspberrypi:~ € docker ps CONTAINER ID   IMAGE               COMMAND                CREATED          STATUS                             PORTS     NAMES b2996c3791c0   jellyfin/jellyfin   "/jellyfin/jellyfin"   39 seconds ago   Up 37 seconds (health: starting)             jellyfin

Como puede ver, «health:starting» advertirá que el contenedor aún se está inicializando. Después de un tiempo, repitiendo el mismo comando «docker ps», deberías verlo iniciado correctamente:

pi@raspberrypi:~ € docker ps CONTAINER ID   IMAGE               COMMAND                CREATED          STATUS                    PORTS     NAMES b2996c3791c0   jellyfin/jellyfin   "/jellyfin/jellyfin"   53 seconds ago   Up 50 seconds (healthy)

En cualquier caso, en cualquier momento podrás consultar los registros del contenedor de Jellyfin con el siguiente comando:

docker logs jellyfin

Puede ser útil para la depuración.

Configurar Jellyfin

Desde una PC remota, con su navegador favorito, use la dirección IP de Raspberry PI para iniciar el asistente de configuración, conectándose al puerto 8096. Por ejemplo, como mi dirección RPI es 192.168.197.251, en mi caso mi URL será http:// 192.168.197.251:8096 para obtener la página de configuración:

Aquí puede seleccionar su idioma favorito y luego presionar el botón «Siguiente» para avanzar. En la página siguiente:

Podrá establecer las credenciales para su primer usuario de Jellyfin que, de forma predeterminada, también será el administrador del software y le permitirá crear más usuarios si es necesario. Luego presione el botón «Siguiente» para llegar a la configuración de la biblioteca de medios:

Aquí le mostraré cómo crear una primera biblioteca de medios (para películas), ya que la otra se puede configurar más tarde desde el panel de administración de Jellyfin. Una vez que haga clic en el botón «Agregar biblioteca de medios», obtendrá la siguiente página:

Según la selección de «Tipo de contenido», se abrirán varias opciones para permitirle configurar sus medios. Por ejemplo, ahora voy a configurar un tipo de contenido Películas. Establézcalo en su primer tipo de contenido.

Además de configurar las otras opciones, tenemos que configurar la(s) carpeta(s) donde se almacenará nuestro contenido. Esto se puede lograr con el botón a la derecha de la etiqueta «Forders»:

Para configurar la ruta de la carpeta, recuerde que con el comando de ejecución de la ventana acoplable asignamos la ruta «/media/myUSB/media» a la ruta «/media» visible desde el contenedor. Por lo tanto, las diversas carpetas creadas estarán disponibles desde el contenedor con esta asignación (por ejemplo, «/media/myUSB/media/movies» se convertirá en esta herramienta de selección de ruta «/media/movies»):

Pulse el botón Aceptar. Volver a la página «Agregar biblioteca de medios»:

Puede hacer clic directamente en el botón «Aceptar». La siguiente página confirmará la nueva biblioteca multimedia de Películas:

Pulse el botón «Siguiente». La siguiente página:

Le permitirá establecer el idioma de los metadatos. Elija su idioma y presione “Siguiente” para llegar a la configuración de acceso remoto:

Si desea transmitir sus medios desde Jellyfin, debe dejar marcada la primera opción. El segundo permite que los dispositivos en su LAN, capaces de usar flujos UPnP automáticamente, detecten su servidor Jellyfin. Una vez configurado, presione «Siguiente» para llegar a la página de confirmación de configuración final:

Confirme con el botón “Finalizar”. Será redirigido a la página de inicio de sesión de Jellyfin:

Use sus credenciales establecidas en los pasos anteriores para iniciar sesión y llegar a la página de inicio de Jellyfin:

Agregar más bibliotecas de medios

Durante nuestro uso de Jellyfin, es posible que necesitemos agregar más bibliotecas de medios. Este capítulo pretende ayudar en esta tarea.

Con el menú de hamburguesas en la parte superior izquierda:

Puede acceder a la barra de menú de Jellyfin:

Vaya a Administración -> Tablero e identifique el enlace Bibliotecas:

Selecciónelo e identifique el botón «Agregar biblioteca de medios»:

Desde aquí, puede agregar más bibliotecas de medios de la misma manera que lo hizo en el momento del asistente de configuración (consulte el capítulo anterior).

Agregar archivos multimedia

En mi opinión, a Jellyfin le falta una característica importante: la capacidad de agregar archivos multimedia desde una PC remota a través de una interfaz web. Con Filebrowser podemos llenar este vacío y, además, ¡Filebrowser también se puede instalar con Docker!

Usaremos Filebrowser para acceder a la carpeta de medios, además de tener acceso a los archivos de configuración y caché. Tenga en cuenta que, en este caso, no explicitaremos las rutas de host para nuestros volúmenes. Esto dará como resultado la creación de la base de datos de Filebrowser y los archivos de configuración en la ruta «/var/lib/docker/volumes/» (accesible solo con permisos de raíz).

El comando para instalar y ejecutar Filebrowser será el siguiente:

docker run -d      --name filebrowser      -v /media/myUSB:/srv      -v filebrowser.db:/database/filebrowser.db      -v settings.json:/config/settings.json      -e PUID=€(id -u)      -e PGID=€(id -g)      -p 8080:80      --restart=unless-stopped      filebrowser/filebrowser

Desde tu PC remota y tu navegador favorito, usa nuevamente la IP de tu Raspberry PI para llegar al nuevo servicio, esta vez con el puerto “8080” (en mi caso http://192.168.197.251:8080). Esto lo redirigirá a la página de inicio de sesión de Filebrowser:

Las credenciales predeterminadas de Filebrowser son admin/admin (lo mismo para el nombre de usuario y la contraseña). Puede cambiarlo desde el panel de Filebrowser haciendo clic en Configuración -> Administración de usuarios (pestaña) -> Icono de lápiz cerca del usuario para editar -> cambiar la contraseña.

La página de inicio de Filebrowser le proporcionará la lista de carpetas disponibles, con comandos para cargar/eliminar/modificar archivos y carpetas similares a muchos servicios comunes de almacenamiento en la nube:

De esta manera, podrá cargar/descargar/eliminar sus archivos multimedia desde un navegador, de manera similar a Google Drive.

Más información de Jellyfin

Los documentos oficiales de administración de Jellyfin se pueden encontrar en https://jellyfin.org/docs/#administrator-documentation.

Resumen

A continuación encontrará un resumen de nuestro tutorial «Cómo instalar Jellyfin en Raspberry PI».