Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Solución de problemas
Esta página describe soluciones a problemas comunes que pueden encontrar los principiantes al ejecutar un servidor Jellyfin.
Problemas de reproducción
La forma más sencilla de detectar problemas es revisando los registros, accesibles mediante la consola del cliente web o en el directorio de logs de tu servidor.
Si el contenido multimedia no puede transcodificarse, primero revisa los registros de ffmpeg.
Problemas de red
Si puedes acceder a la interfaz web mediante HTTP pero no con HTTPS, probablemente haya un error con el certificado. Jellyfin utiliza un archivo PFX para gestionar el tráfico HTTPS. Si creaste el archivo con contraseña, deberás ingresar ese valor en la página Redes dentro de ajustes.
Si puedes acceder al servidor localmente pero no fuera de tu LAN, probablemente haya un problema en la configuración del router. Verifica la configuración de reenvío de puertos en tu router para asegurar que el servidor sea visible desde fuera de tu red local.
Si no hay registros de tráfico web, ni siquiera en conexiones LAN, significa que el servidor no ha recibido ninguna solicitud. Esto indica una dirección incorrecta o un problema en otro punto de la red.
Registros de depuración
Los registros de depuración son muy útiles para solucionar problemas. Para activarlos, debes editar manualmente un archivo de configuración, ya que Jellyfin no permite controlarlo desde la interfaz.
Las opciones de registro se configuran en el archivo logging.json dentro del directorio de configuración de Jellyfin. En algunas plataformas existe también logging.default.json que proporciona valores predeterminados, los cuales pueden sobrescribirse con un logging.json personalizado.
¡Activar los registros de depuración generará una cantidad enorme de datos! Por ejemplo, solo cargar la página principal generará más de 4000 líneas de logs con la configuración de depuración. No se recomienda mantener activados estos registros en una instancia productiva de Jellyfin por mucho tiempo; úsalos solo durante la solución de problemas.
Si te solicitan registros de depuración extensos (más de unas pocas líneas) para un informe de errores, comprime los archivos de log resultantes ya que son muy grandes.
Para activar los registros de depuración, crea el archivo logging.json con este contenido:
{
"Serilog": {
"MinimumLevel": {
"Default": "Debug"
}
}
}
Si el archivo logging.json ya existe, edita la sección MinimumLevel de Serilog para que coincida con lo anterior, pero sin modificar otros valores.
Los mensajes de depuración aparecerán en los logs con la etiqueta DBG al inicio de cada línea, aunque algunos componentes también registrarán detalles adicionales en INF con esta configuración.
Si el archivo logging.json existía antes del último inicio del servidor, Jellyfin recargará automáticamente la configuración al guardar los cambios sin necesidad de reiniciar. Si el archivo logging.json fue creado después del último inicio, deberás reiniciar el servidor para que los cambios surtan efecto.
Para restaurar el registro normal, elimina el archivo logging.json (si lo creaste) o restaura la sección MinimumLevel de Serilog en logging.json con estos valores predeterminados:
{
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
}
}
}
Monitoreo en tiempo real
Esto permite que Jellyfin actualice automáticamente las bibliotecas al añadir o modificar archivos. Lamentablemente, esta función solo funciona en ciertos sistemas de archivos.
En sistemas Linux, se realiza mediante inotify. NFS y rclone no soportan inotify, pero puedes habilitarlo usando un sistema de archivos unificado como mergerfs con tus sistemas de archivos en red.
Debido al tamaño de la biblioteca, podrías encontrar errores como este:
[2019-12-31 09:11:36.652 -05:00] [ERR] Error in Directory watcher for: "/media/movies" System.IO.IOException: The configured user limit (8192) on the number of inotify watches has been reached.
Si estás ejecutando Debian, RedHat u otra distribución de Linux similar, ejecuta lo siguiente en una terminal:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl -p
Si estás ejecutando ArchLinux, ejecuta este comando en su lugar:
echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
Luego pégalo en tu terminal y presiona Enter para ejecutarlo. Para Docker, esto debe hacerse en el host, no en el contenedor.
Consulta el README de Guard Listen sobre cómo aumentar los watchers de inotify para más información.
Desinstalar Jellyfin en macOS
Para eliminar completamente todos los datos de Jellyfin de macOS, ejecuta estos comandos:
rm -Rfv ~/.config/jellyfin
rm -Rfv ~/.cache/jellyfin
rm -Rfv ~/.local/share/jellyfin
Desbloquear cuenta de usuario bloqueada
Cuando la cuenta de administrador está bloqueada y la función de Recuperar Contraseña no funciona, debes desbloquear al usuario manualmente.
Para ello, necesitas encontrar el archivo jellyfin.db en tu sistema.
La ubicación predeterminada en Linux es: /var/lib/jellyfin/data/.
Para rutas en otros entornos, consulta rutas del servidor.
CLI en Linux
Antes de continuar, asegúrate de tener instalado sqlite3.
Si sqlite3 no está instalado, puedes instalarlo en sistemas basados en Debian con apt install sqlite3.
Luego ejecuta los siguientes comandos/consulta SQL:
sqlite3 /PATH/TO/JELLYFIN/DB/jellyfin.db
UPDATE Users SET InvalidLoginAttemptCount = 0 WHERE Username = 'LockedUserName';
UPDATE Permissions SET Value = 0 WHERE Kind = 2 AND UserId IN (SELECT Id FROM Users WHERE Username = 'LockedUserName');
.exit
SQLiteBrowser
También es posible usar SQLiteBrowser en sistemas con entorno gráfico. Comienza abriendo la base de datos en SQLite Browser. Después de abrir la base de datos, navega a la pestaña "Execute SQL" y ejecuta la siguiente consulta:
UPDATE Users SET InvalidLoginAttemptCount = 0 WHERE Username = 'LockedUserName';
UPDATE Permissions SET Value = 0 WHERE Kind = 2 AND UserId IN (SELECT Id FROM Users WHERE Username = 'LockedUserName');
Reparar permisos de usuario administrador
Si los permisos de tu cuenta de administrador se dañan, puedes restaurarlos usando consultas SQL simples.
Los cambios manuales en la base de datos pueden dañar tu instancia irreversiblemente. Para prevenirlo, crea una copia de tu base de datos antes de ejecutar:
cp /PATH/TO/JELLYFIN/DB/jellyfin.db /PATH/TO/JELLYFIN/DB/jellyfin.db.bck
Antes de continuar, asegúrate de tener instalado sqlite3.
Si sqlite3 no está instalado, puedes instalarlo en sistemas basados en Debian con apt install sqlite3.
Luego ejecuta los siguientes comandos/consulta SQL:
Puedes encontrar una lista de rutas predeterminadas en la documentación del directorio de configuración.
sqlite3 /PATH/TO/JELLYFIN/DB/jellyfin.db
Obtener una visión general
Para ver los permisos actuales de todos los usuarios, puedes ejecutar esta consulta:
SELECT Permissions.Value,Permissions.Kind,Users.Username FROM Permissions INNER JOIN Users ON Permissions.UserID = Users.Id;
Para verificar solo los permisos de tu cuenta de administrador, ejecuta esta consulta:
Por favor cambia AdminUsername al nombre de usuario de tu cuenta de administrador
SELECT Value,Kind FROM Permissions WHERE UserId IN (SELECT Id FROM Users WHERE Username = 'AdminUsername');
La primera fila con un valor de 1 o 0 muestra si el permiso está asignado o no. Para un resumen de cada tipo de permiso, consulta la enumeración PermissionKind en el código fuente de Jellyfin
Reparar permisos
No todos los permisos son necesarios, puedes eliminar los innecesarios más tarde en la interfaz web.
UPDATE Permissions SET Value = 1 WHERE (Kind = 0 OR Kind = 3 OR Kind = 4 OR Kind = 5 OR Kind = 6 OR Kind = 7 OR Kind = 8 OR Kind = 9 OR Kind = 10 OR Kind = 11 OR Kind = 12 OR Kind = 13 OR Kind = 14 OR Kind = 15 OR Kind = 16 OR Kind = 17 OR Kind = 18 OR Kind = 19 OR Kind = 20 OR Kind = 21) AND UserId IN (SELECT Id FROM Users WHERE Username = 'AdminUsername');
.exit
Texto que no se renderiza correctamente
El texto puede aparecer como cuadros ☐☐☐☐☐☐ si no hay fuentes disponibles para los caracteres. Instalar fuentes para los idiomas afectados puede resolver el problema. Para imágenes de portada de biblioteca, instala fuentes de sistema en el servidor. Para subtítulos, la fuente de las fuentes depende del cliente. Consulta Fuentes sobre dónde instalarlas.
Dispositivos activos no visibles
Si la sección de dispositivos activos en el panel de control no muestra el progreso del contenido que se está reproduciendo en los dispositivos, esto podría deberse a que el reloj del sistema está desincronizado. Para resolverlo en sistemas Linux basados en systemd, ejecuta el siguiente comando para habilitar la sincronización con un servidor NTP en línea (lo que activará y habilitará el servicio chronyd o ntpd). Asegúrate de reiniciar Jellyfin después.
timedatectl set-ntp true
Errores de base de datos bloqueada
Al encontrar problemas con análisis fallidos o datos inconsistentes, revisa tus archivos de registro en busca de errores como "Database Locked". Si encuentras estos errores, primero verifica el límite de tareas de análisis paralelo en tu panel de administración y ajústalo a un valor más bajo. Si está establecido en 0, configúralo a la mitad de tus núcleos. Si eso no ayuda, puedes configurar el modo de bloqueo en su lugar (mantén también el límite de tareas en un número bajo razonable).
Tienes 3 opciones para configurar el modo de bloqueo:
-
NoLock- Este es el modo predeterminado que debería funcionar para la mayoría de usuarios -
Optimistic- Define que se intenten todas las escrituras y se reintenten cuando fallen -
Pessimistic- Define un comportamiento que siempre bloquea todas las lecturas durante cualquier operación de escritura
Detén tu servidor Jellyfin y navega hasta su directorio de configuración. Verás muchos archivos XML: busca el archivo database.xml y edita la opción LockingBehavior:
<?xml version="1.0" encoding="utf-8"?>
<DatabaseConfigurationOptions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DatabaseType>Jellyfin-SQLite</DatabaseType>
<LockingBehavior>Optimistic</LockingBehavior>
</DatabaseConfigurationOptions>
luego inicia tu instancia de Jellyfin nuevamente. Si esto no resuelve los problemas, intenta configurar LockingBehavior como Pessimistic en su lugar, aunque esto afectará significativamente el rendimiento. Solo se recomienda cuando Optimistic no solucione los inconvenientes.
Problemas específicos de LXC
El equipo ha tomado conocimiento de problemas específicos con LXC. Si experimentas estos errores en LXC después de configurar el modo de bloqueo en Optimistic, se recomienda migrar a virtualización completa (máquinas virtuales) o Docker. Es poco probable que exista una solución para LXC en un futuro próximo, y no podremos ofrecer soporte para problemas de bloqueo de base de datos en LXC.