Cashier para Jellyfin — guía de instalación

Instalación

Necesitas Jellyfin Server 12.2 o superior y una cuenta de MediaLab Works con una licencia que cubra el plugin (una suscripción activa, una licencia de por vida dentro de su período de actualizaciones, el paquete de Jellyfin o la prueba gratuita de 30 días).

Desde tu repositorio de plugins (recomendado). Jellyfin instala y actualiza el plugin por sí solo.

  1. En tu cuenta de MediaLab Works abre Licenses → Jellyfin plugin repository y haz clic en Create address. Cópialo: es privado (contiene un token), así que no lo compartas; puedes regenerarlo o revocarlo en cualquier momento.
  2. En Jellyfin abre Dashboard → Plugins → Repositories, haz clic en +, dale un nombre (por ejemplo MediaLab Works), pega la dirección y guarda.
  3. En Dashboard → Plugins → Catalog busca Cashier by MediaLab, haz clic en Install y reinicia Jellyfin.

El repositorio lista solo los plugins que cubren tus licencias, y solo las versiones que permiten. Sus enlaces de descarga están firmados y caducan a las pocas horas, así que Jellyfin siempre lee una lista nueva.

Desde el catálogo público. https://medialab.works/jellyfin/manifest.json lista cada plugin publicado de MediaLab Works con su compilación pública; medialab Server lo añade por sí solo. Puedes añadirlo del mismo modo para instalar un plugin antes de tener una clave: el plugin entonces pide la licencia, o inicia la prueba, en su página License. Con una licencia de por vida cuyo período de actualizaciones ha terminado, mantente en tu repositorio privado, que ofrece solo las versiones que tu licencia permite.

Manualmente, desde un archivo zip.

  1. En Account → Licenses descarga jf-cashier_x.y.z.zip (el SHA-256 del archivo se muestra junto al botón).
  2. Extráelo en una carpeta nueva Cashier by MediaLab_x.y.z.0 dentro de la carpeta de plugins de Jellyfin:
    • Linux (paquete): /var/lib/jellyfin/plugins/
    • Docker (imagen oficial): /config/plugins/ en el volumen de configuración
    • Windows: %ProgramData%\Jellyfin\Server\plugins\
  3. Reinicia Jellyfin.

Activación de la licencia

  1. Abre la página del plugin en Dashboard → Plugins → Cashier by MediaLab y haz clic en Open License page.
  2. Pega tu clave de licencia y haz clic en Activate with key. El plugin contacta con el servidor de licencias, vincula la clave a este servidor de Jellyfin y muestra la licencia como Active.
  3. ¿Aún no tienes clave? En la misma página escribe tu correo e inicia la prueba gratuita de 30 días (se necesita tarjeta, nada que pagar hoy) o compra una licencia; el plugin se activa solo cuando el pago se ha hecho.

La licencia se comprueba una vez al día y en cada arranque de Jellyfin. Sin internet, el plugin sigue funcionando durante 7 días tras la última comprobación exitosa. Sin una licencia válida, el plugin detiene su trabajo y solo su página License sigue funcionando (prueba, clave, renovación); no se borra nada y todo se reanuda en cuanto la licencia es válida de nuevo. Move license (release this server) en la misma página libera la clave para otro servidor.

Actualizaciones y vuelta atrás

  • Desde el repositorio: Jellyfin muestra las versiones nuevas en Dashboard → Plugins y puede actualizar el plugin automáticamente; reinicia Jellyfin para cargar la nueva versión.
  • Desde la página License del plugin: con una licencia válida, Install update instala la versión más nueva que tu licencia permite y Roll back to x.y.z vuelve a la versión anterior (por ejemplo, si algo dejó de funcionar tras una actualización). Reinicia Jellyfin después de cualquiera de las dos. Ambos paquetes se comprueban contra la suma de verificación publicada por el servidor de licencias.
  • Una licencia de por vida recibe las versiones publicadas durante su período de actualizaciones; después, el plugin sigue funcionando en la última versión que puede usar.
  • Tras Roll back to x.y.z, la actualización automática de Jellyfin para ese plugin se desactiva hasta el siguiente Install update en la página License, de modo que la tarea programada Update Plugins (en el arranque y cada día) no vuelva a traer la versión nueva.
  • Licencia de por vida y actualizaciones automáticas. El catálogo público de Jellyfin (https://medialab.works/jellyfin/manifest.json) siempre ofrece la versión más nueva. Cuando el período de actualizaciones de una licencia de por vida ha terminado, las versiones publicadas después no están licenciadas: si las actualizaciones automáticas de plugins de Jellyfin instalan una, el plugin se detiene con «version not licensed» hasta que vuelves atrás con Roll back to x.y.z en su página License o compras un pase de actualizaciones. Para evitarlo, no dejes que Jellyfin actualice este plugin automáticamente: añade tu repositorio privado de plugins, que ofrece solo las versiones que tu licencia permite, en lugar del catálogo público, o quita los desencadenantes de la tarea programada Update Plugins en Dashboard → Scheduled Tasks (esto detiene las actualizaciones automáticas de todos los plugins).

Código fuente

El código fuente GPL-3.0 de cada versión está en Account → Licenses (Source code), junto a la descarga, como archivo .tar.gz creado a partir del commit exacto de esa versión.

Configuración

Instala primero Registration by MediaLab y activa su licencia, configura su dirección pública y su SMTP, y después abre Dashboard → Cashier.

  1. Keys: pega tu clave secreta de Stripe (sk_…, o mejor una clave restringida rk_…), haz clic en Save and test y después en Create the webhook automatically.
  2. Define el service name que se muestra a los clientes y la public address del servidor (por ejemplo https://jellyfin.example.com), usada para el regreso desde Stripe y para el webhook.
  3. Revisa los plans (período, streams simultáneos, precio) y haz clic en Save and send to Stripe: los precios se crean en tu cuenta de Stripe. Un precio cambiado crea un precio nuevo en Stripe; los suscriptores existentes conservan el suyo hasta que cambian de plan.
  4. Define los días de prueba y el período de gracia, y después activa la venta.

Uso diario

  • Los clientes nuevos eligen un plan en la página de registro y pagan; su cuenta se activa cuando Stripe confirma el pago.
  • Las listas Subscribers y Payments muestran quién paga qué; el diario muestra cada cambio de estado.
  • Desactivar la venta deja todas las cuentas como están.

Solución de problemas

  • Los pagos no activan las cuentas: el webhook no puede llegar al servidor. Comprueba que la dirección pública sea accesible por HTTPS desde internet; Cashier también concilia con Stripe cada 15 minutos.
  • No llegan correos a los clientes: comprueba los ajustes SMTP de Registration.

Derechos sobre el contenido

Cashier cobra a tus usuarios a través de tu propia cuenta de Stripe. Solo tú eres responsable de tener los derechos sobre el contenido o el servicio por el que cobras (por ejemplo, las películas, series o canales de tu servidor); MediaLab Works solo proporciona el software y no es parte de tus ventas. Stripe puede cerrar o restringir una cuenta que cobre por contenido sin tener los derechos: consulta la lista de negocios restringidos de Stripe.

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