Access Log: historial de inicios de sesión en Jellyfin

Mira quién se conecta a tu servidor de Jellyfin, cuándo, desde dónde (IP, país, ciudad, proveedor) y con qué app y dispositivo, con alertas.

Access log of a Jellyfin server: sign-ins, sessions, plays and wrong passwords with location, provider and Cloudflare path1 de 3

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.

Funciona mejor con medialab Server

Este plugin funciona en Jellyfin oficial 12.2 o posterior. En medialab Server, nuestro servidor basado en Jellyfin con los mismos datos, bibliotecas, usuarios y apps, funciona mejor:

  • Verified – medialab. El servidor comprueba la firma de nuestros plugins y te muestra que los archivos son exactamente los que publicamos. Si un plugin se modifica después de publicarse, se marca.
  • Integrado en la interfaz. Los plugins pueden añadir botones y enlaces al menú de tus usuarios (por ejemplo, "TV", "Share") sin configurar nada a mano en la web.
  • Prioridad de forma predeterminada. Los plugins de medialab aparecen primero donde importa: sintonizadores de TV en directo, fuentes de guía y proveedores de subtítulos. El orden lo decides tú: puedes cambiarlo en cualquier momento.
  • El catálogo de medialab.works incluido, con instalación sin confirmaciones adicionales.
  • Actualizaciones desde la interfaz web, sin terminal (con Self-Update de MediaLab): comprueba, actualiza y vuelve a la versión anterior desde el panel de control; si una versión nueva no arranca, el servidor vuelve por sí solo a la anterior con tus datos intactos.
  • El mismo Jellyfin, al día. medialab Server sigue cada semana las versiones estables de Jellyfin 12.x; una versión nueva solo se publica después de superar todas las pruebas, incluidas las de nuestros plugins.

Las apps de Jellyfin (Android, iOS, TV, web) se conectan exactamente igual que a Jellyfin oficial.

Para instalarlo, ejecuta la imagen del contenedor (guía) o, en Debian 12, los paquetes apt, que sustituyen a jellyfin-server y jellyfin-web y conservan tus datos donde están (guía).

medialab Server es software libre (GPL-2.0), basado en Jellyfin. El código fuente es público: medialab-server y medialab-server-web.

Requisitos

  • Jellyfin Server 12.2 o posterior (Linux, Windows o Docker)
  • Una cuenta gratuita de MaxMind para las bases de datos GeoLite2
  • Código abierto (GPL-3.0): el código fuente de cada versión está en tu cuenta

Última versión

1.0.5
publicada el 20 oct 2026
Ver todos los cambios →

La compilación es pública; para usar el plugin necesitas una licencia o la prueba gratuita de 30 días.