DRM — Widevine, PlayReady y FairPlay
Actualizado el 06 oct. 2026Castreon puede cifrar un canal con los tres sistemas DRM que usan los dispositivos para el contenido de pago: Widevine (Android, Chrome, Firefox, Android TV, la mayoría de las Smart TV), PlayReady (Windows, Edge, Xbox, Smart TV) y FairPlay (Safari, iPhone, iPad, Apple TV). La imagen y el sonido solo se pueden descifrar en la parte protegida del dispositivo, con una licencia que tu proveedor DRM da a cada espectador.
Disponible desde Castreon 1.0.5, en el plan Enterprise. Para un cifrado sencillo en todos los planes, consulta Cifrado HLS con AES-128.
Quién hace qué
| Qué hace | |
|---|---|
| Castreon | en cada arranque del canal pide a tu proveedor DRM una clave nueva (CPIX), cifra el canal y publica DASH y HLS con la información DRM que necesitan los reproductores |
| Tu proveedor DRM (por ejemplo DoveRunner) | guarda las claves y da las licencias a los reproductores |
| Tu plataforma (app, web, middleware) | decide quién puede ver y crea un token de licencia para cada espectador |
Castreon nunca emite licencias y no ve a tus abonados. El empaquetado lo hace Shaka Packager, incluido en Castreon (licencia BSD) — no hay que instalar nada más.
Qué necesitas
- Una licencia Enterprise en el servidor.
- Una cuenta en un proveedor DRM que entregue las claves por CPIX — por ejemplo DoveRunner (antes PallyCon). El plan del proveedor debe incluir los sistemas DRM que quieras (FairPlay necesita además un certificado Apple FairPlay Streaming, que el proveedor te explica).
- Canales en H.264 o HEVC.
- HTTPS para los reproductores web: los navegadores solo permiten DRM en páginas HTTPS.
1. Conecta tu proveedor DRM
Ajustes → DRM:
- En Proveedor DRM elige:
- DoveRunner (PallyCon) — pega solo el KMS Token de DoveRunner Console → Multi-DRM → DRM Settings; Castreon compone la dirección por sí mismo;
- Otro proveedor (CPIX) — pega la dirección CPIX completa de tu proveedor, con el token incluido (solo HTTPS).
- Guardar. En Servidor KMS aparecen el proveedor y el nombre de su servidor; el token no se vuelve a mostrar nunca — ni en el panel, ni en la API, ni en el registro de auditoría, ni en el informe de diagnóstico.
- Probar la conexión pide una clave de prueba para cada entrega. Debes ver DASH (CENC) con PlayReady y Widevine, y HLS (CBCS) con FairPlay, Widevine y PlayReady.
El estado arriba a la derecha muestra Listo cuando la licencia, el proveedor y Shaka Packager están en orden.
2. Añade la salida DRM a un canal
- Abre el canal → Editar → Añadir salida y elige DRM en Tipo.
- Content ID — el nombre con el que el proveedor guarda la clave. Vacío significa el nombre corto del canal. Letras, dígitos, punto, guion y guion bajo.
- Elige las entregas:
- DASH · Widevine + PlayReady (CENC)
- HLS · FairPlay + Widevine + PlayReady (CBCS)
- Si quieres, cambia Duración de segmento (s) (por defecto 4) y Segmentos en la lista (por defecto 6).
- Guarda. El canal se reinicia con la salida DRM.
Las demás salidas del canal funcionan como antes y no se cifran. Para un canal de pago, deja solo la salida DRM (y, si las necesitas, salidas push hacia tus propios sistemas).
Las direcciones y los content ID
Para un canal con el nombre corto canal1, Entrega muestra:
| Fila en Entrega | Valor |
|---|---|
| DRM · DASH (Widevine, PlayReady) | http://<dominio>/live/canal1/drm/dash/manifest.mpd |
| DRM · DASH · content ID | canal1 |
| DRM · HLS (FairPlay, Widevine, PlayReady) | http://<dominio>/live/canal1/drm/hls/master.m3u8 |
| DRM · HLS · content ID | canal1-hls |
DASH y HLS usan claves distintas (CENC y CBCS no deben compartir una clave), así que tienen content ID distintos: el de HLS termina en -hls. El token de licencia que crea tu plataforma debe usar el content ID de la entrega que abre el reproductor.
Se aplican el mismo Token para reproductores y las mismas Direcciones permitidas que en las demás salidas.
Qué entrega para qué dispositivo
| Dispositivo | Entrega | DRM |
|---|---|---|
| Móviles y tabletas Android, Android TV, Fire TV | DASH | Widevine (ExoPlayer / Media3) |
| Chrome, Firefox, Edge, Opera en el ordenador | DASH | Widevine (Edge también PlayReady) — con Shaka Player, dash.js, Video.js, Bitmovin, THEOplayer… |
| Samsung (Tizen), LG (webOS) y otras Smart TV | DASH | PlayReady o Widevine |
| Apps de Windows, Xbox | DASH | PlayReady |
| Safari en Mac, iPhone, iPad, Apple TV | HLS | FairPlay (AVPlayer, Safari) |
Tu reproductor necesita: la dirección de la entrega, la dirección del servidor de licencias de tu proveedor y el token de licencia del espectador (DoveRunner: en la cabecera pallycon-customdata-v2). Para FairPlay necesita además la dirección del certificado FairPlay de tu proveedor.
El token de licencia
Tu plataforma crea el token en su servidor, para cada espectador, con el content ID, el tipo de DRM y las reglas (por ejemplo cuánto tiempo vale la licencia), y lo firma con las claves de tu cuenta del proveedor (DoveRunner: Site ID, Site Key y Access Key). Guarda esas claves en tu servidor — nunca en la app ni en la página web. El formato exacto lo describe tu proveedor.
Cómo se comporta
- Una clave nueva en cada arranque. Cuando el canal se reinicia, los reproductores cargan el manifiesto nuevo y piden por sí mismos una licencia nueva.
- El proveedor no responde: el canal no entrega nada en las direcciones DRM y lo vuelve a intentar. El contenido nunca llega sin cifrar a las direcciones DRM.
- Sin licencia Enterprise, sin proveedor configurado o con un códec que Shaka no admite (AV1, VP9, MPEG-2 copiado): el canal arranca sin la salida DRM y su registro dice por qué; las demás salidas siguen funcionando.
- Reloj para el directo: el manifiesto DASH indica a los reproductores la hora del servidor (desde
/live/time, con un servidor de hora público de reserva), así que también los dispositivos con el reloj mal encuentran los segmentos actuales. Con el Dominio público enhttps://…, los reproductores usan la dirección completa de tu servidor. - Las claves recibidas del proveedor solo se guardan mientras el canal funciona, solo Castreon puede leerlas y se borran al detenerlo.
Si no funciona
- Probar la conexión: «… rechazó la petición de claves: HTTP 401 (o 403) — revisa el token de la dirección KMS» — el KMS Token (o la dirección CPIX) es incorrecto o se regeneró en el proveedor.
- «el proveedor DRM envía las claves cifradas para un destinatario» — desactiva el cifrado de claves (CPIX con certificado) en la cuenta del proveedor; la conexión ya es HTTPS.
- «el proveedor DRM no envió los datos de FairPlay» (u otro sistema) — el sistema no está activo en el plan del proveedor.
- El registro del canal dice «atención: la salida DRM está desactivada — …» — sigue el motivo: el plan, los ajustes del proveedor, el códec del perfil o la fuente.
- El reproductor carga el manifiesto pero no recibe licencia — el problema está en el token de licencia o en la cuenta del proveedor: el content ID (con
-hlspara HLS), el tipo de DRM, el tiempo de validez, las claves del proveedor. Las herramientas de prueba del proveedor (en DoveRunner: DevConsole) muestran el código de error exacto. - Ninguna imagen en el navegador, ningún error — la página o el flujo están en HTTP; los navegadores solo permiten DRM por HTTPS.