Jellyfin: Sistema de medios de software libre autohospedado

Publicado por


jellyfin
Media Server

Jellyfin: Sistema de medios de software libre autohospedado

Servidor backend y API multiplataforma para gestionar y transmitir tu biblioteca multimedia sin licencias propietarias

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar Jellyfin: Sistema de medios de software libre autohospedado en el canal GENBYTE:

¿Qué es Jellyfin: Sistema de medios de software libre autohospedado?

Jellyfin es un sistema de medios de software libre que te permite controlar la gestión y el streaming de tu contenido multimedia. Nacido como alternativa a soluciones propietarias como Emby y Plex, Jellyfin desciende de la versión 3.5.2 de Emby y fue portado a la plataforma .NET para ofrecer soporte completo multiplataforma. No existen licencias premium, funciones ocultas ni agendas comerciales: solo un equipo que busca construir una mejor solución de forma colaborativa. El proyecto se distribuye bajo licencia GPL-2.0 y cuenta con una comunidad activa que contribuye al desarrollo, traducción y soporte.

Jellyfin pone al usuario en control total de su biblioteca multimedia sin depender de servicios en la nube ni suscripciones.

Características principales

Software libre y sin restricciones

Licencia GPL-2.0, sin funciones premium, sin licencias de pago y sin telemetría obligatoria. El código fuente es completamente abierto y auditable.

Multiplataforma nativo

Desarrollado en C# sobre .NET, funciona en Linux, Windows, macOS y contenedores Docker. Arquitectura única para todos los sistemas operativos soportados.

Interfaz web y API REST

Incluye cliente web accesible por navegador en el puerto 8096 por defecto y documentación de API mediante Swagger en /api-docs/swagger/index.html.

Transcodificación por hardware

Soporte para ffmpeg (incluyendo jellyfin-ffmpeg) con aceleración de hardware para transcodificar formatos no compatibles con el dispositivo cliente.

Ecosistema de clientes

Aplicaciones oficiales para Android, iOS, Android TV, Fire TV, Roku, Kodi, y clientes de terceros para múltiples plataformas.

Gestión de metadatos automática

Descarga automática de metadatos, imágenes, subtítulos y información de medios desde múltiples proveedores configurables.

Soporte para TV en vivo y DVR

Integración con sintonizadores de red (HDHomeRun, M3U, XMLTV) para televisión en vivo y grabación de programas (DVR).

Sincronización offline

Permite sincronizar contenido para reproducción sin conexión en dispositivos móviles.

Requisitos del sistema

  • Sistema operativo: Linux, Windows, macOS o contenedor Docker
  • Runtime: .NET 10 (para compilación desde código fuente)
  • ffmpeg instalado en el sistema (para transcodificación)
  • Puerto 8096 disponible para la interfaz web (configurable)
  • Espacio en disco para biblioteca multimedia y metadatos
  • Memoria RAM: mínimo 2 GB recomendados para transcodificación

Instalación con Docker Compose

Docker (recomendado para producción)

La imagen oficial está disponible en Docker Hub. El proyecto proporciona imagen multi-arquitectura con etiquetas para versiones estables y nightly. Consulta la documentación oficial para parámetros de volúmenes, variables de entorno y puertos específicos.

docker run -d \
–name jellyfin \
-p 8096:8096 \
-v /ruta/config:/config \
-v /ruta/cache:/cache \
-v /ruta/media:/media \
–restart unless-stopped \
jellyfin/jellyfin:latest

Compilación desde código fuente (desarrollo)

Requiere .NET 10 SDK, ffmpeg y el cliente web (jellyfin-web) compilado o descargado por separado. El repositorio principal contiene solo el servidor backend.

git clone https://github.com/jellyfin/jellyfin.git
cd jellyfin
# Obtener cliente web (compilar o copiar de instalación existente)
dotnet run –project Jellyfin.Server –webdir /ruta/absoluta/jellyfin-web/dist

Acceder al proyecto

Interfaz web

Accede a http://localhost:8096 (o la IP del servidor) para el asistente de configuración inicial y la interfaz de usuario.

Documentación de API

Disponible en http://localhost:8096/api-docs/swagger/index.html para explorar endpoints REST.

Casos de uso

  • Servidor multimedia personal autohospedado para películas, series, música y fotos
  • Alternativa privada a Plex/Emby sin dependencia de cuentas en la nube
  • Streaming local y remoto con transcodificación adaptativa
  • Gestión de biblioteca familiar con control parental y perfiles de usuario
  • Televisión en vivo y grabadora DVR con sintonizadores de red compatibles
  • Sincronización de contenido para viajes o conexiones limitadas
  • Backend para aplicaciones de terceros mediante API REST documentada

Configuración avanzada

Ejecutar sin cliente web integrado

Para desarrollo frontend separado, desactiva el alojamiento del cliente web estático usando la variable de entorno o bandera de línea de comandos.

JELLYFIN_NOWEBCONTENT=true
# o
dotnet run –project Jellyfin.Server — –nowebclient

Alojamiento del cliente web por separado

El repositorio jellyfin-web permite servir el frontend desde un servidor de desarrollo webpack para iteración rápida. Requiere configurar CORS y proxy inverso en el backend.

# En jellyfin-web
npm run dev
# En Jellyfin.Server con –nowebclient y configuración de proxy

Gestión y mantenimiento

Actualización de contenedor Docker

Descarga la nueva imagen y recrea el contenedor manteniendo los volúmenes de configuración y datos.

docker pull jellyfin/jellyfin:latest
docker stop jellyfin
docker rm jellyfin
# Ejecutar docker run original con mismos volúmenes

Copias de seguridad

Respalda el directorio /config (base de datos, configuración, claves) y /cache (imágenes, metadatos). La biblioteca multimedia (/media) se respalda según tu estrategia de datos.

tar -czf jellyfin-backup-$(date +%F).tar.gz /ruta/config /ruta/cache

Logs y diagnóstico

Los logs se escriben en /config/log dentro del contenedor. Nivel de detalle configurable desde la interfaz web en Panel de control > Registro.

docker logs -f jellyfin
# O inspeccionar archivos en /ruta/config/log/

Stack técnico

  • C# / .NET 10
  • ASP.NET Core
  • Entity Framework Core
  • SQLite (base de datos por defecto)
  • ffmpeg / jellyfin-ffmpeg
  • Docker (imagen oficial multi-arquitectura)
  • Swagger/OpenAPI
  • TypeScript / Vue.js (cliente web en repositorio separado)

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

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