Access Log registra quién se conecta a tu servidor de Jellyfin, cuándo, desde dónde y con qué app y dispositivo, para que detectes contraseñas compartidas, dispositivos desconocidos e intentos de inicio de sesión.
Qué hace
- Eventos: inicios de sesión correctos, contraseñas incorrectas (nunca la contraseña intentada), sesiones abiertas y cerradas, cambios de IP durante una sesión y, de forma opcional, inicios de reproducción.
- Para cada evento: usuario, hora, dirección IP, app y su versión, nombre e id del dispositivo, país, región, ciudad y proveedor de internet (ASN).
- Dispositivos conocidos de cada usuario: primera y última conexión, número de sesiones, últimas direcciones.
- Resumen por usuario y país, y las direcciones con contraseñas incorrectas; filtros y exportación a CSV.
- Alertas en el registro de actividad de Jellyfin: un dispositivo nuevo, un país nuevo para un usuario, contraseñas incorrectas repetidas desde la misma dirección.
- Ubicación a partir de una base de datos GeoLite2 local (cuenta gratuita de MaxMind), actualizada automáticamente. Las direcciones IP nunca se envían a un servicio externo.
Requisitos
- Jellyfin Server 12.2 o posterior.
- Una cuenta gratuita de MaxMind y una clave de licencia para las bases de datos GeoLite2 City y ASN (sin ellas, los eventos se registran sin ubicación).
Preguntas frecuentes
¿Cómo veo quién ha iniciado sesión en mi servidor de Jellyfin? Instala Access Log; desde ese momento, cada inicio de sesión, intento fallido y sesión aparece en Dashboard → Access Log → Activity, con la dirección IP, la ubicación, la app y el dispositivo. Consulta la guía.
¿Puede avisarme de un dispositivo o un país nuevos? Sí. Las alertas de dispositivo nuevo, país nuevo y contraseñas incorrectas repetidas van al registro de actividad de Jellyfin; durante el primer día tras la instalación, los dispositivos y países se aprenden sin alertas.
Qué envía y adónde
- MaxMind GeoLite2 (
download.maxmind.com), opcional y desactivado por defecto: solo si introduces tu propia cuenta gratuita de MaxMind (Account ID + License Key) el plugin descarga las bases de datos GeoLite2 City y ASN (autenticándose con tu cuenta; no se envían direcciones IP ni datos de usuarios). Se actualizan cuando tienen más de 7 días (configurable). - La geolocalización de las IP se hace en local, en la base de datos descargada; las direcciones IP nunca se envían a ningún servicio externo. Las direcciones privadas o locales no se consultan.
- Las alertas (dispositivo nuevo, país nuevo, ráfagas de inicios de sesión fallidos) van solo al registro de actividad local del servidor.
- Las páginas no cargan scripts de CDN ni fuentes externas.
- Además, el cliente de licencias, igual en todos los plugins: consulta Licencias y privacidad en nuestros plugins.
Guardado localmente (carpeta de datos del plugin):
events/events-YYYY-MM.jsonl: cada inicio de sesión, fallo, reproducción o cambio de dirección: hora, usuario, IP, ubicación (país, región, ciudad, coordenadas aproximadas, ASN/proveedor), vía de acceso (directa o a través de Cloudflare, Host, User-Agent, cadena X-Forwarded-For), app, versión, dispositivo, sesión. La contraseña intentada nunca se guarda.events/known.json: dispositivos y países conocidos de cada usuario (sin caducidad).geoip/*.mmdb: las bases de datos de MaxMind. Los datos de la cuenta de MaxMind están en la configuración del plugin (sin cifrar).- Conservación: 365 días por defecto (configurable); se borran archivos mensuales completos, así que puede quedar en disco hasta aproximadamente un mes más. La exportación a CSV la inicia el administrador.
- Un middleware lee las cabeceras de las peticiones (de la autorización solo se extrae el DeviceId; los tokens no se guardan).
Son datos personales (direcciones IP, ubicaciones, dispositivos): consérvalos solo el tiempo que necesites e informa a los usuarios de tu servidor de que los accesos se registran.
Compatibilidad con clientes
La captura se hace en el servidor (los eventos de inicio de sesión y de sesión del servidor), así que funciona con cualquier cliente; la interfaz es solo la página de administración.
- Jellyfin Web / medialab Server: ✅ (de extremo a extremo 14/14 a nivel de API + páginas).
- Apps de Jellyfin (Android/Android TV, Swiftfin, Findroid, Kodi/JellyCon, Infuse, Streamyfin), navegadores de TV: 🟢 la captura no depende del cliente; ❔ no probadas una por una. El nombre de app o dispositivo que se muestra es el que comunica el cliente.
Leyenda: ✅ verificado (prueba de extremo a extremo o en el dispositivo) · 🟢 en el servidor, funciona con cualquier cliente (por diseño, sin prueba específica para cada cliente) · ➖ no aplicable · ❔ no probado.
Licencia
El plugin es de código abierto (GPL-3.0). Las compilaciones listas para instalar son públicas, igual que el código fuente. Lo que compras es la suscripción: la licencia para usar el plugin en un servidor de Jellyfin, las actualizaciones que incluye tu plan y el soporte: cada actualización mientras la suscripción esté activa, a través de tu repositorio privado de plugins, y ayuda cuando algo no funcione. El plugin comprueba la clave de suscripción una vez al día; sin una suscripción válida se detiene hasta que renueves (no se borra nada). Mensual, anual o de por vida (la de por vida incluye un año de actualizaciones), o incluido en el paquete para Jellyfin. 30 días de prueba gratis.
Código fuente. Para cada versión, el código fuente correspondiente completo es público, junto a la compilación, en el registro de cambios, y también en tu cuenta (Cuenta → Licencias, Código fuente); cada archivo comprimido contiene el texto completo de la GPL-3.0 (LICENSE). Si necesitas el código fuente de una versión que ya no puedes descargar, pídenoslo y te lo enviamos. Consulta la sección 10 del EULA.
