Por qué dejar Plex ahora
Durante años, Plex ofreció el acceso remoto de forma gratuita. En julio de 2026 la situación cambió: sin suscripción Plex Pass (2,99 $ al mes o 749,99 $ de por vida), el streaming fuera de su red local queda bloqueado. La notificación, o el primer acceso denegado desde un móvil o desde una oficina remota, suele ser el detonante: el usuario busca una salida inmediata, no una evaluación larga.
Jellyfin es la respuesta directa. Es un fork comunitario de la base de código de Emby, publicado bajo licencia GPL-2.0, sin ninguna cuenta obligatoria, sin telemetría y sin funciones limitadas tras un muro de pago. Implementa la API de Plex, lo que significa que los clientes Plex existentes (Infuse, Plexamp, nPlayer y otros) siguen funcionando sin una reconfiguración importante. Los archivos multimedia no se mueven: solo cambia la capa del servidor.
Lo que Jellyfin aporta en concreto
- Cero muro de pago — el acceso remoto, las cuentas multiusuario y la transcodificación están disponibles sin suscripción ni Pass vitalicio.
- Ninguna cuenta obligatoria — la instalación no pide vincular ningún servicio externo; la gestión de usuarios es totalmente local.
- Cero telemetría — por defecto no se envía ningún dato de uso a terceros; el código es auditable (GPL-2.0).
- Compatibilidad con la API de Plex — los clientes que hablan la API de Plex detectan Jellyfin como un servidor Plex estándar, sin migrar las aplicaciones del lado del cliente.
- Los archivos multimedia se quedan donde están — solo hay que reconstruir la base de metadatos; el almacenamiento no se toca.
- Clientes nativos disponibles — Android, iOS, Android TV, Apple TV, navegador web y decenas de aplicaciones de terceros son compatibles con Jellyfin de forma nativa.
- Transcodificación por hardware compatible — Intel Quick Sync, VAAPI y NVENC son configurables para reducir la carga de CPU en los flujos de alta definición.
- Comunidad activa y actualizaciones periódicas — publicaciones frecuentes, plugins comunitarios y documentación oficial completa.
Requisitos previos antes de empezar
La migración da por supuesto que ya dispone de un VPS con Docker instalado. Jellyfin en Direct Play (los dispositivos leen el archivo sin transcodificación) funciona correctamente con 2 vCPU y 2 GB de RAM. Si prevé transcodificación por software en 1080p, cuente con 4 vCPU como mínimo por flujo simultáneo: Jellyfin exige mucho de la CPU sin aceleración por hardware. Para 4K, se recomienda encarecidamente una GPU o un chip Intel con Quick Sync.
El almacenamiento es la partida que marca el dimensionamiento: una biblioteca multimedia de tamaño medio ocupa varios terabytes. Sus archivos multimedia se quedan donde están: no hay ninguna copia que hacer. En cuanto a la red, su dominio debe apuntar al VPS y el puerto 8096 debe ser accesible internamente (del acceso HTTPS se encarga el reverse proxy).
Lo que necesita, en resumen: un VPS con Linux (Debian 12 o Ubuntu 22.04+), Docker y docker compose v2, un dominio configurado, un reverse proxy (Caddy o Nginx) y acceso SSH al servidor.
Migración paso a paso
Exportar sus datos de Plex antes de detener el servicio
Antes que nada, exporte su biblioteca de Plex mientras siga funcionando. Desde el servidor Plex, copie la carpeta de metadatos (
~/.config/Plex Media Server/en Linux,/var/lib/plexmediaserver/según la instalación). Esta copia de seguridad le permitirá recuperar listas de reproducción, progreso de reproducción y valoraciones si algún día decide volver.Sus archivos multimedia (
/mnt/media/films,/mnt/media/series, etc.) no se mueven: no los desplace.Detener Plex correctamente
Detenga el contenedor o el servicio Plex:
docker compose stop plexO bien, si Plex se ejecuta mediante systemd:
systemctl stop plexmediaserverLibere el puerto
32400; Jellyfin usará el8096por defecto, así que puede dejar libre el puerto de Plex o cerrarlo en su firewall.Crear la estructura de carpetas de Jellyfin
Cree las carpetas de configuración y de caché que va a usar Jellyfin:
mkdir -p /opt/jellyfin/config /opt/jellyfin/cacheSus archivos multimedia se quedan en su ubicación original: no los desplace. Jellyfin los declarará como bibliotecas en el asistente inicial.
Redactar el archivo docker-compose.yml
Cree
/opt/jellyfin/docker-compose.ymlcon el contenido siguiente:cat > /opt/jellyfin/docker-compose.yml << 'EOF' services: jellyfin: image: jellyfin/jellyfin:latest container_name: jellyfin restart: unless-stopped environment: - JELLYFIN_PublishedServerUrl=https://media.yourdomain.com volumes: - /opt/jellyfin/config:/config - /opt/jellyfin/cache:/cache - /mnt/media:/media:ro ports: - "127.0.0.1:8096:8096" EOFAdapte
/mnt/mediaa la ruta real de sus archivos multimedia. El:ro(solo lectura) es una buena práctica: Jellyfin no necesita escribir en sus archivos multimedia.Arrancar Jellyfin y abrir el asistente
Lance el contenedor:
docker compose -f /opt/jellyfin/docker-compose.yml up -dAbra
http://su-ip:8096en un navegador. El asistente le pide crear una cuenta de administrador local (no hace falta ninguna dirección de correo externa) y, después, declarar sus bibliotecas. Apunte a sus carpetas multimedia existentes (/media/films,/media/series, etc.): Jellyfin lanza un escaneo automático y reconstruye los metadatos desde TheMovieDB y TheTVDB.Configurar el reverse proxy con SSL
Exponga Jellyfin en HTTPS mediante Caddy o Nginx. Ejemplo con Caddy (archivo
Caddyfile):media.yourdomain.com { reverse_proxy 127.0.0.1:8096 }Caddy obtiene y renueva el certificado Let's Encrypt automáticamente. Con Nginx, añada las cabeceras
X-Real-IPyX-Forwarded-Forque Jellyfin usa para los registros de acceso.Reconfigurar sus clientes y activar el acceso remoto
En Jellyfin (Panel de control → Red), compruebe que la URL publicada (
JELLYFIN_PublishedServerUrl) sea correcta. Sus aplicaciones nativas de Jellyfin (Android, iOS, Apple TV) pueden añadir el servidor por URL. Los clientes compatibles con la API de Plex (Infuse, por ejemplo) también pueden apuntar a Jellyfin: en los ajustes de Infuse, añada un servidor Plex introduciendo la URL de su Jellyfin; el protocolo de detección es compatible.Compruebe el acceso desde una conexión móvil (no desde su wifi) para confirmar que el acceso remoto funciona sin restricciones.
Migrar las listas de reproducción y el progreso (opcional)
Jellyfin no lee de forma nativa la base SQLite de Plex. Hay dos opciones: reconstruir manualmente las listas de reproducción en la interfaz de Jellyfin (unos minutos para un usuario medio), o usar la herramienta comunitaria
PlexToJellyfinpara importar el progreso de reproducción (último episodio visto, tiempo de reproducción) desde la exportación XML de Plex. Ese script lee el archivoPlex Media Server/Plug-in Support/Databases/y envía los datos mediante la API de Jellyfin.
Plex Pass 2026 frente a Jellyfin: comparativa funcional
Desplace la tabla
| Función | Plex (sin Pass) | Jellyfin |
|---|---|---|
| Streaming local (red doméstica) | Sí | Sí |
| Streaming remoto (fuera de la red) | De pago (2,99 $/mes) | Gratis |
| Cuenta externa obligatoria | Sí | No |
| Telemetría / datos enviados | Sí | No (por defecto) |
| Licencia del código | Propietaria | GPL-2.0 |
| Compatibilidad con clientes Plex (API) | Nativa | Sí (emulación de la API) |
| Transcodificación por hardware | De pago (requiere Pass) | Gratis |
| Cuentas multiusuario | Limitadas sin Pass | Sin límite, locales |
Configuración posterior a la instalación recomendada
Una vez terminada la migración, unos cuantos ajustes mejoran la experiencia del día a día.
Metadatos. Jellyfin usa TheMovieDB y TheTVDB por defecto. Si algunas películas o series no se reconocen automáticamente, renombre los archivos siguiendo la convención Título (Año)/Título (Año).mkv para las películas y Serie/Temporada 01/Serie - S01E01.mkv para las series: Jellyfin aplica estas convenciones durante el escaneo.
Subtítulos. Active OpenSubtitles o los subtítulos integrados en Panel de control → Plugins. La descarga es automática durante el escaneo de la biblioteca.
Transcodificación por hardware. Si su VPS dispone de un chip Intel, active VAAPI en Panel de control → Reproducción → Transcodificación. Reduce de forma significativa la carga de CPU en las conversiones de flujo.
Proteger el acceso a Jellyfin
Jellyfin expone una interfaz web pública por defecto una vez situado tras su reverse proxy. Algunas medidas de endurecimiento que conviene aplicar desde la puesta en marcha: desactive la creación pública de cuentas (Panel de control → Usuarios → Desactivar el registro), active la autenticación en dos pasos para la cuenta de administrador y limite el acceso a la interfaz de administración a la red local si es posible. Si usa Nginx, añada un rate-limit en las rutas /Users/AuthenticateByName para frenar los intentos de fuerza bruta. Por último, mantenga la imagen Docker al día: docker compose pull && docker compose up -d basta para recuperar las correcciones de seguridad.
Resolución de problemas: errores frecuentes tras la migración
Algunos errores aparecen sistemáticamente en una migración de Plex a Jellyfin.
Connection refused en el puerto 8096. El contenedor está arrancado pero nada responde. Compruebe que el mapeo de puertos sea 127.0.0.1:8096:8096 y no 0.0.0.0:8096:8096 si quiere pasar por el reverse proxy. Comando de diagnóstico: docker logs jellyfin.
Los metadatos no se cargan. El escaneo inicial puede durar de 10 minutos a varias horas según el tamaño de la biblioteca. Siga el avance en Panel de control → Actividad. Si algunos archivos siguen sin carátula, compruebe que el nombre del archivo respeta la convención y fuerce un nuevo escaneo con «Analizar los metadatos».
El acceso remoto no funciona. Si https://media.yourdomain.com responde desde el servidor pero no desde fuera, compruebe que el firewall permita el puerto 443 (ufw allow 443), que el DNS apunte a la IP correcta y que la variable JELLYFIN_PublishedServerUrl coincida exactamente con la URL pública configurada en el reverse proxy.
Infuse u otro cliente compatible con Plex no detecta el servidor. En Infuse, seleccione «Plex» como tipo de servidor e introduzca manualmente la URL de su Jellyfin. La detección automática mediante bonjour no funciona fuera de la red local: una URL manual siempre es más fiable.
La transcodificación por CPU llega al 100 %. Sin aceleración por hardware, un solo flujo 4K transcodificado puede saturar varios núcleos. Pase a VAAPI si su procesador lo admite, o anime a sus usuarios a activar el Direct Play en los ajustes de su cliente.
Para ir más lejos: enlaces útiles y enlazado interno
La migración cubre la sustitución de Plex, pero Jellyfin se integra en un ecosistema más amplio. Si parte de cero (sin Plex previo), la guía Alojar Jellyfin en su propio VPS cubre la instalación inicial desde el principio. Para una comparativa funcional en profundidad entre ambas plataformas, consulte Jellyfin frente a Plex: qué servidor multimedia elegir.
Si esta migración forma parte de un movimiento más amplio hacia el self-hosting para reducir sus costes de SaaS, alojar Ghost en su VPS cubre otro caso habitual. La lógica es la misma: un software libre, un VPS y un acceso cuyas reglas controla usted.
La documentación oficial de Jellyfin (docs.jellyfin.org) es completa y se mantiene de forma activa: es la referencia para los casos avanzados (hardware transcoding, LDAP, plugins, reverse proxy avanzado).