Plan Guard for Emby

Para Emby: límites de streaming por usuario o por plan, aplicados en directo, más detección de cuentas compartidas con otras personas.

Streams playing right now with each viewer's plan profile, quality and address; a second stream over a Basic plan is flagged with the reason1 de 7

Plan Guard define límites de streaming por usuario o por plan en tu servidor de Emby, los aplica mientras la gente ve y detecta las cuentas que se comparten con otras personas, por ejemplo una cuenta de pago usada en varias casas a la vez.

Qué hace

  • Límites por usuario o por plan: reproducciones simultáneas, calidad en casa y fuera de casa (bitrate), resolución máxima y si se permite la transcodificación.
  • Aplicación: un mensaje, detener la reproducción o cerrar la sesión del dispositivo.
  • Difícil de evitar (desde la versión 0.1.2): el límite de streams cuenta las peticiones de reproducción reales por sesión y título, incluidas las peticiones de archivo directo, descarga y HLS, así que un segundo inicio de sesión con el mismo dispositivo o un reproductor que no informa de la reproducción ya no lo evita. El tope de calidad también se aplica a las peticiones directas. La dirección del cliente viene de la conexión; X-Forwarded-For solo se confía desde los proxies que enumeres, y puedes tratar a todos los clientes como si estuvieran fuera de casa.
  • Library Guard (desde la versión 0.1.2): Emby no comprueba las bibliotecas permitidas de un usuario cuando una app pide un título directamente por su id. Plan Guard responde «not found» por los títulos que el usuario no puede ver (detalles, listas de series y temporadas, reproducción, streaming, descarga). Los administradores y los invitados de Share Links no se ven afectados; puedes desactivarlo en la página del plugin.
  • Detección de cuentas compartidas: la misma cuenta usada desde distintos lugares y redes al mismo tiempo, y los «viajes imposibles».
  • Funciona con Cashier: cada plan de pago obtiene automáticamente su propio perfil de límites.
  • Registro de actividad y páginas de administración.

Requisitos

  • Emby Server 4.10.1 o superior.
  • Opcional: Cashier, para perfiles de límites por plan de pago.

Qué envía dónde

  • Base de datos de geolocalización: usa la base de datos que ya descargaron Security Notifications o Access Log; si no existe, descarga DB-IP Lite (download.db-ip.com, sin cuenta, CC BY 4.0) al arrancar el plugin (se actualiza al arrancar tras 35 días), y solo si la detección de uso compartido está activada (activada por defecto). Solo descarga; la geolocalización de IP ocurre localmente.
  • Ninguna otra conexión externa además del cliente de licencias. Las páginas no cargan recursos externos.
  • Acciones hacia los clientes (en tu servidor): mensaje, detener la reproducción, cierre de sesión (token revocado), bloqueo opcional del dispositivo (desactivado por defecto). Acción predeterminada ante el uso compartido: solo notificar.
  • Además, el cliente de licencias, el mismo en cada plugin: consulta Licencias y privacidad en nuestros plugins.

IP Geolocation by DB-IP. Las bases de datos DB-IP Lite se distribuyen bajo CC BY 4.0.

Almacenado localmente:

  • state/access.json: accesos por sesión (usuario, dispositivo, IP, local/remoto, reproduciendo o no, hora, coordenadas aproximadas, ASN, ciudad/país), como máximo una vez cada 2 min por combinación; se conservan 31 días, máx. 20 000 registros.
  • state/actions.json: registro de acciones (hora, usuario, dispositivo, título, paso, motivo), máx. 500. Las alertas de uso compartido también aparecen en el registro de actividad del servidor.
  • Perfiles y asignaciones en la configuración del plugin; bases de datos geoip/*.mmdb.

Compatibilidad con clientes

  • Los límites de streams y bitrate se sincronizan con los ajustes nativos del servidor: 🟢 cualquier cliente.
  • Emby no puede rechazar la reproducción antes de que empiece, así que la aplicación es reactiva: mensaje → Stop → cierre de sesión. ✅ Emby Web ignora Stop, así que la parada en firme es el cierre de sesión (extremo a extremo 13/13). Desde la versión 0.1.2, la reproducción directa por encima del tope de calidad del perfil se rechaza.
  • Los clientes sin control remoto (p. ej., Infuse, Kodi, DLNA) reciben el cierre de sesión directamente (por diseño; ✅ simulado vía API; ❔ no probado en las apps reales). Los mensajes solo se muestran en clientes con control remoto.
  • Apps nativas de Emby (Android, iOS, Android TV, Samsung, LG, Roku, Apple TV): ❔ sin probar (matriz de dispositivos reales en curso).

Leyenda: ✅ verificado (prueba extremo a extremo o en dispositivo) · 🟢 del lado del servidor, funciona con cualquier cliente (por diseño, sin prueba específica por cliente) · ➖ no aplica · ❔ sin probar.

Licencias

Una licencia por servidor de Emby. Mensual, anual o de por vida, o incluida en el paquete de Emby. Prueba gratuita de 30 días. El plugin se distribuye bajo nuestro EULA.

Plan Guard es código propio, escrito desde cero por MediaLab Works; no contiene código de terceros. Los datos de ubicación proceden de DB-IP y los descarga tu servidor.

Requisitos

  • Emby Server 4.10.1 o posterior
  • Ubicación desde las bases de datos gratuitas DB-IP Lite City y ASN (o las que Access Log / Security Notifications ya descargaron), actualizadas al iniciar tras 35 días (IP Geolocation by DB-IP, CC BY 4.0)
  • Cashier opcional: perfiles de límites por plan de pago

Última versión

0.1.3
publicada el 20 oct 2026
Ver todos los cambios →