SoftwareTutoriales

Instala Jellyfin en tu Samsung TV (Tizen OS)

Si eres un usuario entusiasta que busca la máxima personalización y acceso a las últimas versiones de Jellyfin, o si simplemente no encuentras un paquete precompilado que se ajuste a tus necesidades, ¡esta guía es para ti! Aquí te mostraremos el proceso completo para compilar el cliente Jellyfin para tu televisor Samsung con Tizen OS directamente desde su código fuente en GitHub. Este camino te ofrece un control granular sobre la versión y las características, permitiéndote ser el verdadero dueño de tu experiencia multimedia.

Jellyfin, como sabrás, es ese maravilloso sistema multimedia de código abierto que te permite organizar, gestionar y transmitir tu propio contenido. Instalarlo en Tizen OS mediante una compilación propia es, sin duda, el camino para quienes desean ir un paso más allá y tener una configuración a medida.

Una Advertencia Importante Antes de Empezar: Es fundamental que sepas que este proceso implica activar el modo desarrollador en tu televisor y trabajar con herramientas de línea de comandos. Aunque es una práctica común para desarrolladores y usuarios avanzados, realizar cambios fuera de la tienda oficial de aplicaciones podría tener implicaciones teóricas en la garantía de tu televisor o, si no se siguen los pasos con la debida atención, podría afectar la estabilidad del sistema. Te animamos a proceder con conocimiento, curiosidad y bajo tu propia responsabilidad.

Preparando Tu Entorno de Desarrollo: Los Requisitos Indispensables

Antes de sumergirnos en el código y la compilación, es crucial asegurarse de que tu entorno de desarrollo esté correctamente configurado. Piensa en esto como preparar tu taller antes de empezar un proyecto emocionante. Necesitarás tener a mano lo siguiente en tu ordenador (ya sea Windows, macOS o Linux):

Primero, tu Televisor Samsung con Tizen OS, que deberá estar conectado a la misma red local que tu ordenador. Luego, el propio ordenador, que será tu centro de operaciones para todo el proceso de compilación. Una conexión a Internet estable es, por supuesto, imprescindible.

No olvides un Servidor Jellyfin activo y funcionando en tu red. Esta guía se centra en compilar e instalar el cliente Jellyfin en tu TV; este cliente necesitará conectarse a tu servidor Jellyfin existente donde reside toda tu preciada biblioteca multimedia.

La pieza central del software de desarrollo es Tizen Studio, en su versión 4.6 o superior. Este es el Entorno de Desarrollo Integrado (IDE) oficial de Samsung. Puedes descargarlo directamente desde la página de Tizen Developers. Durante el proceso de instalación de Tizen Studio, o posteriormente a través de su Package Manager (Administrador de Paquetes), es vital que te asegures de instalar dos componentes clave: el TV Extension SDK, que proporciona las herramientas específicas para el desarrollo en televisores (puedes encontrar más información en Installing TV SDK), y el Certificate Manager, esencial para firmar tu aplicación (consulta Installing Required Extensions).

Además de Tizen Studio, necesitarás Git, el popular sistema de control de versiones que usarás para clonar los repositorios de código de Jellyfin. Si aún no lo tienes, puedes descargarlo desde git-scm.com. También es imprescindible Node.js, en su versión 20 o superior. Node.js es un entorno de ejecución para JavaScript y es necesario para el proceso de compilación de la interfaz web de Jellyfin. Puedes obtener la última versión desde nodejs.org.

Finalmente, aunque es opcional, te recomendamos tener una Cuenta de Desarrollador de Samsung. Crear una es gratuito en Samsung Developers y puede ser particularmente útil si encuentras problemas con los certificados Tizen estándar y necesitas recurrir a la creación de certificados Samsung, que ofrecen una vinculación más directa con tu dispositivo.

Fase 1: Preparativos Iniciales – Certificados y Adquisición del Código Fuente

Con todas las herramientas instaladas y listas, podemos comenzar con la configuración esencial que nos permitirá compilar nuestra propia versión de Jellyfin.

1.1. La Importancia de Firmar: Configuración del Certificado en Tizen Studio

En el ecosistema Tizen, toda aplicación que se instale en un dispositivo debe estar digitalmente firmada. Esta firma garantiza la autenticidad y la integridad de la aplicación. Para gestionar esto, abre Tizen Studio y navega hasta el Certificate Manager, que encontrarás en el menú «Tools > Certificate Manager».

Una vez allí, necesitarás crear un nuevo perfil de certificado. La documentación oficial de Tizen (Creating Certificates) ofrece una guía detallada del proceso. En la mayoría de los casos, un certificado de tipo Tizen será suficiente para tus necesidades de desarrollo local. Sin embargo, si durante el proceso de instalación en tu TV te encuentras con problemas persistentes relacionados con la firma, una alternativa robusta es crear un certificado de tipo Samsung. Para esta opción, Tizen Studio te pedirá que inicies sesión con tu cuenta de desarrollador de Samsung, y el certificado resultante se vinculará directamente al DUID (Identificador Único de Dispositivo) de tu televisor.

1.2. Obteniendo el Tesoro: Clonar los Repositorios de Jellyfin

Para construir Jellyfin, necesitamos obtener el código fuente de dos repositorios principales alojados en GitHub: jellyfin-web, que contiene toda la interfaz de usuario que ves en pantalla, y jellyfin-tizen, que proporciona el «envoltorio» y los scripts necesarios para adaptar y empaquetar jellyfin-web como una aplicación nativa de Tizen.

Abre tu aplicación de terminal o símbolo del sistema preferida en tu ordenador. Es hora de usar Git.

Primero, vamos a clonar el repositorio jellyfin-web. Un aspecto crucial aquí es la compatibilidad de versiones: la versión de jellyfin-web que compiles debe ser compatible con la versión de tu servidor Jellyfin. Generalmente, esto significa que debes clonar la rama de lanzamiento que corresponda a la versión de tu servidor. Por ejemplo, si tu servidor Jellyfin está en la versión 10.8.x, buscarías una rama como release-10.8.z. Ejecuta el siguiente comando, adaptando el nombre de la rama según sea necesario:

git clone -b release-10.X.z https://github.com/jellyfin/jellyfin-web.git

Recuerda reemplazar release-10.X.z con la rama específica que necesitas. Si ya has clonado el repositorio anteriormente y solo necesitas cambiar a una rama diferente, puedes navegar hasta el directorio jellyfin-web en tu terminal y usar el comando git checkout nombre-de-la-rama.

A continuación, clonaremos el repositorio jellyfin-tizen. Este repositorio es más pequeño y contiene la lógica específica para Tizen.

git clone https://github.com/jellyfin/jellyfin-tizen.git

Una vez completados estos dos comandos, deberías tener dos nuevas carpetas en la ubicación donde ejecutaste los comandos: una llamada jellyfin-web y otra jellyfin-tizen. Estas contienen todo el código que necesitamos.

Fase 2: Dando Vida al Código – El Proceso de Compilación

Con el código fuente en nuestro poder, es el momento de transformarlo en una aplicación funcional que podamos instalar en nuestro televisor. Este proceso se divide en varios subpasos.

2.1. Construyendo la Interfaz: Compilar Jellyfin Web

El primer paso es compilar la interfaz de usuario de Jellyfin. Para ello, navega con tu terminal hasta el directorio jellyfin-web que clonaste anteriormente:

cd jellyfin-web

Una vez dentro de este directorio, ejecutaremos dos comandos. El primero, npm ci --no-audit, se encarga de instalar todas las dependencias del proyecto de forma limpia y consistente, basándose en el archivo package-lock.json. Esto asegura que estás utilizando las versiones exactas de las librerías con las que el proyecto fue diseñado. El segundo comando, USE_SYSTEM_FONTS=1 npm run build:production, inicia el proceso de compilación para producción. La variable de entorno USE_SYSTEM_FONTS=1 es particularmente importante (especialmente a partir de Jellyfin Web 10.9) ya que instruye al proceso de compilación para que descarte fuentes no utilizadas, lo que ayuda a reducir significativamente el tamaño final de la aplicación. Si tu objetivo fuera depurar la aplicación, podrías usar npm run build:development en lugar del comando de producción.

npm ci --no-audit
USE_SYSTEM_FONTS=1 npm run build:production

Este proceso de compilación puede tardar unos minutos. Si todo va bien, al finalizar, encontrarás una nueva carpeta llamada dist dentro de tu directorio jellyfin-web (jellyfin-web/dist/). Esta carpeta contiene todos los archivos estáticos (HTML, CSS, JavaScript) de la interfaz de Jellyfin, listos para ser empaquetados. Ten en cuenta que si en algún momento realizas modificaciones directas en el código fuente de jellyfin-web/, deberás ejecutar nuevamente el comando npm run build:production para regenerar el contenido del directorio dist/.

2.2. Adaptando para Tizen: Preparar la Interfaz Compilada

Con la interfaz web ya compilada, el siguiente paso es prepararla para el entorno Tizen. Para esto, utilizaremos el repositorio jellyfin-tizen. Navega con tu terminal desde el directorio jellyfin-web al directorio jellyfin-tizen. Si ambos fueron clonados en la misma carpeta principal, puedes usar cd ../jellyfin-tizen.

cd ../jellyfin-tizen

Una vez en el directorio jellyfin-tizen, ejecutarás un comando que se encarga de dos cosas: primero, copiar los archivos compilados de jellyfin-web/dist/ a la estructura de directorios que espera el proyecto Tizen; segundo, instalar las dependencias específicas del proyecto jellyfin-tizen.

JELLYFIN_WEB_DIR=../jellyfin-web/dist npm ci --no-audit

Aquí, la variable de entorno JELLYFIN_WEB_DIR es crucial, ya que le indica al script dónde se encuentran los archivos de jellyfin-web que compilamos en el paso anterior. La ruta ../jellyfin-web/dist es una ruta relativa común, pero asegúrate de que apunte correctamente a tu directorio dist si has estructurado tus carpetas de manera diferente. Como resultado de este comando, se creará una carpeta llamada www dentro de jellyfin-tizen (jellyfin-tizen/www/). Esta carpeta www contendrá la interfaz web lista para ser empaquetada en la aplicación Tizen. Al igual que antes, si actualizas o modificas el contenido de jellyfin-web/dist/, deberás ejecutar este comando de preparación nuevamente.

Es importante mencionar una nota sobre las fuentes para versiones de Jellyfin Web anteriores a la 10.9: si estás trabajando con una versión más antigua de jellyfin-web (anterior a la 10.9), la variable de entorno para optimizar las fuentes era DISCARD_UNUSED_FONTS=1. Esta se utilizaba durante este paso de «Preparar la Interfaz para Tizen», en lugar de USE_SYSTEM_FONTS=1 que se usa ahora durante la compilación de jellyfin-web.

2.3. El Paquete Final: Compilar el Archivo .wgt

Llegamos al final de la compilación: crear el archivo .wgt. Este archivo es el paquete de instalación que Tizen OS entiende y utiliza. Antes de ejecutar los comandos de empaquetado, es vital que te asegures de tener el perfil de certificado correcto seleccionado y activo en el Certificate Manager de Tizen Studio. El certificado que elijas aquí determinará en qué dispositivos (y bajo qué condiciones) podrás instalar el widget.

Desde la línea de comandos, y asegurándote de que te encuentras en el directorio raíz de jellyfin-tizen/, ejecutarás dos comandos de la Interfaz de Línea de Comandos (CLI) de Tizen. El primer comando, tizen build-web, se encarga de compilar el proyecto web de Tizen. Las opciones -e se utilizan para excluir archivos y directorios que no son necesarios en el paquete final, como archivos de configuración de Git, el propio gulpfile.babel.js, el README.md, el directorio node_modules del proyecto Tizen (ya que sus dependencias se empaquetan de otra forma), y los archivos package.json y yarn.lock.

tizen build-web -e ".*" -e gulpfile.babel.js -e README.md -e "node_modules/*" -e "package*.json" -e "yarn.lock"

Una vez que la compilación web es exitosa, el segundo comando, tizen package -t wgt -o . -- .buildResult, toma el resultado de esa compilación (que Tizen Studio almacena temporalmente en una carpeta .buildResult) y lo empaqueta en un archivo .wgt. La opción -t wgt especifica el tipo de paquete, y -o . indica que el archivo .wgt resultante debe guardarse en el directorio actual (jellyfin-tizen/).

tizen package -t wgt -o . -- .buildResult

Si todos los pasos anteriores se han ejecutado sin errores, ahora deberías encontrar un archivo llamado Jellyfin.wgt en tu directorio jellyfin-tizen/. ¡Este es el archivo de instalación que transferiremos a tu televisor Samsung!

Fase 3: Del Ordenador a la Pantalla Grande – Despliegue en tu Televisor Samsung

Con nuestro flamante archivo Jellyfin.wgt listo, es el momento emocionante de llevar nuestra creación a la pantalla grande.

3.1. Abriendo las Puertas: Activar el Modo Desarrollador en la TV

Si aún no lo has hecho (o si se desactivó), necesitarás activar el Modo Desarrollador en tu televisor Samsung. Este modo permite la instalación de aplicaciones desde fuentes externas como nuestro ordenador. Primero, enciende tu TV Samsung y navega hasta la sección de Apps. Una vez allí, usando los botones numéricos de tu mando a distancia (o el teclado numérico en pantalla si tu mando no los tiene), introduce la secuencia 12345. Esto debería hacer aparecer un menú oculto de Developer Mode. Actívalo (ponlo en «On»). El televisor te pedirá entonces que introduzcas la dirección IP de tu ordenador, es decir, la IP de la máquina donde tienes Tizen Studio y desde la cual realizarás la conexión y la instalación. Finalmente, para que todos estos cambios surtan efecto, reinicia tu televisor completamente.

3.2. Estableciendo el Puente: Conectar tu Ordenador a la TV

Ahora necesitamos que tu ordenador y tu televisor se «vean» y puedan comunicarse. Tienes dos vías principales para esto: a través de la interfaz gráfica de Tizen Studio o mediante la línea de comandos usando sdb (Smart Development Bridge), la herramienta de Tizen para la comunicación con dispositivos.

Si prefieres la interfaz gráfica de Tizen Studio: Abre Tizen Studio y dirígete a «Tools > Device Manager». Dentro del Device Manager, busca y haz clic en el icono del «Remote Device Manager». Desde aquí, puedes escanear tu red en busca de televisores disponibles o añadir tu TV manualmente introduciendo su dirección IP. Una vez que tu televisor aparezca en la lista, selecciónalo y asegúrate de que el interruptor de conexión esté en «ON». En este punto, es muy probable que en la pantalla de tu TV aparezca una notificación pidiéndote que aceptes la solicitud de conexión desde tu ordenador; deberás aceptarla.

Si te sientes más cómodo con la línea de comandos (sdb): Abre una terminal en tu ordenador y escribe el comando sdb connect seguido de la dirección IP de tu televisor. Por ejemplo:

sdb connect 192.168.1.101

Para verificar que la conexión se ha establecido y ver la lista de dispositivos conectados (incluido tu televisor y su nombre de destino, que necesitarás más adelante), puedes usar el comando sdb devices.

3.3. El Permiso Final: Autorizar la Instalación de Aplicaciones Firmadas

Este paso es especialmente importante si estás utilizando un certificado Samsung (en lugar de un certificado Tizen genérico) para firmar tu aplicación. Necesitas conceder permiso explícitamente a tu televisor para que acepte e instale aplicaciones firmadas con ese certificado específico.

Nuevamente, tienes opciones gráficas y de línea de comandos. Usando Tizen Studio (GUI): Con tu televisor conectado en el Device Manager, haz clic derecho sobre el nombre del dispositivo en la lista. En el menú contextual que aparece, busca y selecciona la opción «Permit to install applications».

Usando la Línea de Comandos (Tizen CLI): Para este método, necesitarás el nombre de destino de tu televisor, tal como aparece cuando ejecutas sdb devices (por ejemplo, UE65NU7400 o similar). Luego, ejecuta:

tizen install-permit -t NOMBRE_DEL_DISPOSITIVO_TV

Por ejemplo: tizen install-permit -t UE65NU7400

Alternativa con sdb (principalmente para certificados Samsung): Este método más manual implica copiar el archivo .xml de tu perfil de certificado Samsung directamente al sistema de archivos del televisor. El comando sería algo así:

sdb push ruta/completa/a/tu/SamsungCertificate/NOMBRE_DEL_PERFIL_DE_CERTIFICADO/*.xml /home/developer

Necesitarás localizar la ruta exacta donde Tizen Studio almacena los archivos de tu perfil de certificado Samsung.

Un Recordatorio Crucial: Si en algún momento cambias el certificado con el que firmas (por ejemplo, creas un nuevo certificado Samsung) después de haber compilado tu archivo .wgt, es imprescindible que recompiles el archivo .wgt (volviendo al Paso 2.3). El paquete .wgt debe estar firmado con el certificado activo y permitido en el momento de la instalación.

3.4. La Instalación: Transferir el Paquete .wgt a la TV

¡El momento de la verdad! Vamos a instalar nuestro Jellyfin.wgt en el televisor.

Si prefieres usar Tizen Studio (GUI): En el Device Manager, con tu TV conectada y seleccionada, haz clic derecho sobre ella. En el menú contextual, elige «Install app». Se abrirá un explorador de archivos. Navega hasta la ubicación de tu archivo Jellyfin.wgt (que debería estar en tu directorio jellyfin-tizen/), selecciónalo y confirma. Tizen Studio se encargará de transferirlo e instalarlo.

Si optas por la Línea de Comandos (Tizen CLI): Asegúrate de que tu terminal esté ubicada en el directorio jellyfin-tizen/, donde reside tu archivo Jellyfin.wgt. Luego, ejecuta el comando tizen install, especificando el nombre del paquete y el nombre de destino de tu TV:

tizen install -n Jellyfin.wgt -t NOMBRE_DEL_DISPOSITIVO_TV

Por ejemplo: tizen install -n Jellyfin.wgt -t UE65NU7400

Este proceso puede tardar unos instantes. Si todo ha ido según lo previsto, no deberías ver errores, y la aplicación Jellyfin estará instalada.

Fase 4: ¡A Disfrutar y Solucionar Posibles Contratiempos!

Una vez completada la instalación, el icono de Jellyfin debería aparecer triunfante en la sección «Apps» de tu televisor Samsung. Ábrelo. La primera vez, te pedirá que configures la dirección de tu servidor Jellyfin y tus credenciales de usuario. ¡Introduce los datos y prepárate para disfrutar de tu biblioteca multimedia!

Aunque hemos detallado los pasos, a veces surgen imprevistos. Aquí tienes algunas pistas para los problemas más comunes:

Si encuentras errores relacionados con npm o Node.js durante la compilación de jellyfin-web, verifica que tienes instalada la versión correcta de Node.js (v20 o superior) y que npm está actualizado. Una táctica común es eliminar la carpeta node_modules y el archivo package-lock.json del directorio jellyfin-web y luego volver a ejecutar npm ci --no-audit.

Los errores durante los comandos tizen build-web o tizen package pueden deberse a varias causas. Asegúrate de que Tizen Studio y el TV SDK estén completamente instalados y configurados. Verifica que el perfil de certificado que tienes activo en el Certificate Manager de Tizen Studio es el correcto y está destinado a dispositivos TV. Revisa siempre los mensajes de error que aparecen en la consola, ya que suelen dar pistas muy valiosas.

Si experimentas problemas de conexión con sdb (por ejemplo, la TV no aparece o la conexión falla), confirma que tanto el televisor como tu ordenador están en la misma red local. Vuelve a verificar que el Modo Desarrollador está activo en la TV y que la dirección IP de tu PC introducida en la TV es la correcta. No olvides revisar el firewall de tu ordenador, ya que podría estar bloqueando la conexión.

El temido error «signature error» o «certificate error» durante la instalación del .wgt en la TV es, quizás, el más habitual. Generalmente indica que el certificado con el que se firmó el .wgt no es válido para ese televisor, o que no se ha concedido el permiso de instalación para ese certificado (revisa el Paso 3.3). Intenta crear un nuevo certificado desde cero, ya sea Tizen o Samsung. Si optas por un certificado Samsung, asegúrate de que el DUID de tu televisor esté correctamente registrado y asociado a dicho certificado. Y recuerda: si cambiaste de certificado después de compilar el .wgt, debes recompilarlo.

Si la aplicación se instala correctamente pero no se inicia o se cierra inesperadamente, el problema podría residir en la compilación de jellyfin-web o en cómo se preparó para Tizen. Para una depuración más profunda, podrías intentar importar el proyecto jellyfin-tizen/ completo en Tizen Studio y ejecutarlo directamente desde el IDE en modo depuración; la consola de Tizen Studio podría ofrecerte registros de errores (logs) que te ayuden a identificar la causa.

Manteniendo tu Jellyfin a la Vanguardia: Proceso de Actualización

Una de las ventajas de compilar tú mismo es poder acceder a las últimas versiones. Para actualizar tu instalación de Jellyfin en Tizen, el proceso general es el siguiente: Primero, actualiza el código fuente. Navega a tus directorios locales jellyfin-web y jellyfin-tizen y ejecuta git pull en cada uno para obtener los últimos cambios desde GitHub. Para jellyfin-web, puede que necesites cambiar a una nueva rama de lanzamiento (git checkout nueva-rama-release) si la versión de tu servidor Jellyfin ha cambiado significativamente. Una vez actualizado el código, deberás repetir todo el proceso de compilación descrito en la Fase 2 para generar un nuevo archivo Jellyfin.wgt. Finalmente, repite los pasos de despliegue de la Fase 3 para instalar esta nueva versión en tu televisor, sobrescribiendo la anterior.

¡Conclusión: Control Total sobre tu Experiencia Jellyfin en Samsung TV!

¡Enhorabuena! Si has llegado hasta el final de esta extensa guía, no solo has instalado Jellyfin, sino que has dominado el arte de compilarlo e instalarlo para Tizen desde su mismísimo código fuente. Este camino, aunque más técnico y laborioso, te ofrece una flexibilidad y un control incomparables, permitiéndote mantener tu cliente Jellyfin perfectamente alineado con tu servidor y acceder a las últimas funcionalidades y correcciones directamente desde la comunidad de desarrollo.

Aunque requiere un esfuerzo inicial mayor, la recompensa es una experiencia multimedia verdaderamente personalizada y optimizada para tus necesidades. Ahora, relájate y disfruta de tu centro multimedia a medida, sabiendo que tienes el control total. Si esta guía te ha sido de utilidad, ¡no dudes en compartirla con otros entusiastas!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *