Share Links para Emby

Para Emby: enlaces con caducidad a una película, un episodio, una temporada o una serie, para personas sin cuenta, en el navegador o en un televisor, sin cuenta en el servidor.

Sharing a film with someone who has no account: how long the link works, how many people can watch at once, how many opens, an optional PIN and a note1 de 7

A veces quieres enseñar una película o una serie a alguien que no tiene cuenta en tu servidor. Share Links crea un enlace con caducidad que el invitado abre en un navegador, en el móvil o en un televisor, sin obtener nunca una cuenta ni un token para tu servidor de Emby.

Qué hace

  • Enlaces con límites: una fecha de caducidad, un número máximo de aperturas, un número máximo de espectadores simultáneos y un PIN opcional.
  • Se abre en cualquier sitio: en cualquier navegador, en el móvil o en un televisor, con una dirección corta y un código de 8 caracteres, o con un código QR. Se reproduce en su propio reproductor, con elección de pista de audio y subtítulos.
  • Sin cuenta para el invitado: el invitado no obtiene nunca una cuenta ni un token. Todo pasa por un proxy limitado a los títulos del enlace, y revocar el enlace detiene la reproducción al instante.
  • Seguridad: los tokens, los códigos y los PIN se guardan solo como hashes; los intentos fallidos repetidos se bloquean por dirección IP y por enlace; la tasa de bits está limitada; nada se puede descargar.
  • Compartición por usuarios habituales (opcional), con una cuota por 30 días (una predeterminada, o una por plan de Cashier), y una página «My links».
  • Envío: copia el enlace o envíalo por WhatsApp, Telegram o correo; cada enlace tiene un registro de actividad.

Por qué no una cuenta de invitado

En Emby 4.10, las restricciones de biblioteca no se aplican cuando un elemento se solicita directamente por su id, así que una cuenta de «invitado» normal puede llegar a toda la biblioteca. Share Links lo evita por diseño: el invitado no tiene cuenta, y el proxy sirve solo los títulos del enlace.

Requisitos

  • Emby Server 4.10.1 o posterior.
  • Para invitados fuera de tu red doméstica: una dirección de tu servidor a la que puedan llegar.
  • Opcional: Cashier, para cuotas de compartición por plan.

Qué envía y adónde

  • Sin servicios externos para los invitados: la página pública carga solo los archivos del plugin (hls.js del cliente web local del servidor / incluido), sin CDN, fuentes ni imágenes externas; el QR se genera en el servidor. Cabeceras estrictas: CSP default-src 'self', sin referrer, noindex, sin framing.
  • El proxy de invitados habla solo con tu servidor local y pasa la IP del invitado en X-Forwarded-For (aparece en los registros/sesiones del servidor).
  • Qué ve el invitado: el título del enlace, la caducidad, el nombre de quien comparte y, para los títulos compartidos: nombre, serie/temporada/episodio, año, resumen, duración, imágenes. Solo reproducción (HLS, subtítulos, imágenes) de esos títulos; sin descargas; tasa de bits limitada (8 Mbit/s por defecto). El invitado no obtiene nunca un token del servidor; se crea un usuario oculto temporal, sin bibliotecas/descarga/TV en directo, con una contraseña aleatoria que no se guarda, eliminado al revocar o al caducar.
  • Los botones de WhatsApp/Telegram de la página de administración son enlaces simples (envían el enlace y el título solo si haces clic).
  • El botón «Share» y el menú «My links» necesitan el parche opcional de dashboard-ui/index.html (desactivado por defecto). Si lo activaste y no se puede restaurar tras una actualización de Emby, el registro del plugin se envía a medialab.works (una vez por versión de Emby) solo si el envío automático de registros está activado, como en cada plugin.
  • Además, el cliente de licencias, igual en todos los plugins: consulta Licencias y privacidad en nuestros plugins.

Guardado localmente (state/):

  • links.json: enlaces — token, código corto y PIN solo como hashes HMAC-SHA256 (nunca en claro), títulos, creador, fechas, usos, número de espectadores, tasa de bits, nota.
  • Sesiones de invitados: cookie (HMAC), IP del invitado, id del dispositivo, el token del usuario oculto (solo en el servidor).
  • Registro de eventos: hora, enlace, tipo, IP, detalle (máx. 5000).
  • Retención: las sesiones se eliminan al caducar; los enlaces caducados y sus eventos se eliminan tras 30 días (configurable). La limitación de intentos (10 fallos en 10 min → bloqueo de 15 min por IP) es solo en memoria.

Compatibilidad con clientes

  • Invitados: cualquier navegador moderno (hls.js/MSE o HLS nativo en iPhone); en un televisor, abre /ShareLinks/s en el navegador del televisor y escribe el código de 8 caracteres. ✅ Chrome (escritorio, «TV 1080p», móvil; 18/18). Safari/iOS, Firefox, navegadores reales de televisores: ❔ sin probar.
  • El botón «Share» y «My links» solo en Emby Web (con el parche de index.html); las apps nativas de Emby no tienen botón. Página de administración y «My links» ✅ (Chrome, escritorio + móvil).
  • Apps nativas de Emby: ➖ sin integración.

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

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

Share Links es código propio, escrito desde cero por MediaLab Works; no contiene código de terceros. Su reproductor usa el hls.js que incluye Emby, que el plugin no distribuye.

Requisitos

  • Emby Server 4.10.1 o posterior
  • Para invitados fuera de tu red: una dirección del servidor a la que puedan acceder
  • Cashier opcional: cuotas de uso compartido por plan

Última versión

0.1.6
publicada el 20 oct 2026
Ver todos los cambios →