Airi

Sistemas DRM

Widevine, PlayReady, FairPlay y WisePlay hacen lo mismo para fabricantes distintos. Estas son las diferencias que te van a afectar.

Por qué necesitas más de uno #

Ningún sistema DRM funciona en todos los dispositivos, y no es un problema técnico que vaya a resolverse: cada uno pertenece a un fabricante que lo incorpora en su propio hardware y software. Apple no instala Widevine en un iPhone, ni Google instala FairPlay en Android.

Para llegar a todo el mundo hay que cifrar el contenido de forma que varios sistemas puedan abrirlo, cada uno con su propia licencia. Eso es lo que hace el estándar Common Encryption: un mismo archivo cifrado, varias cabeceras de protección, una por sistema.

Con tres cubres prácticamente todo

Widevine, PlayReady y FairPlay entre los tres alcanzan casi cualquier pantalla del mercado occidental. WisePlay solo hace falta si te diriges al ecosistema Huawei.

En Airi eso es la lista drmSystems al crear una clave. Cada sistema que añades genera los datos de protección correspondientes; la clave de cifrado es la misma para todos.

De un vistazo #

WidevinePlayReadyFairPlayWisePlay
FabricanteGoogleMicrosoftAppleHuawei
Dónde reproduceAndroid, Chrome, Firefox, Edge, Android TV, Chromecast, muchos televisoresWindows, Xbox, Edge, televisores Samsung y LG, descodificadoresiPhone, iPad, Mac (Safari), Apple TVDispositivos Huawei y HarmonyOS
Formato de streamingDASH y HLSDASH y HLSSolo HLSDASH y HLS
Esquemas de cifradocenc y cbcscenc y cbcs (desde PlayReady 4)Solo cbcscenc y cbcs
SeñalizaciónCaja psshCaja pssh + cabecera de protecciónEXT-X-KEY con URI skd://no hay psshCaja pssh
Niveles de seguridadL1 / L2 / L3SL150 / SL2000 / SL3000Sin niveles nombradosNiveles 1 a 3
Control de HDCPDistinto (ver abajo)

Widevine #

Fabricante
Google
System ID
edef8ba9-79d6-4ace-a3c8-27dcd51d21ed
En Airi
"widevine"

Es el sistema con más alcance: Android, los navegadores de escritorio basados en Chromium, Firefox, la mayoría de televisores conectados y los dispositivos Chromecast. Si solo vas a activar uno para empezar, activa este.

L1, L2 y L3

Widevine clasifica los dispositivos según cuánta parte del proceso ocurre dentro de un entorno seguro de hardware (un TEE), fuera del alcance del sistema operativo:

  • L1 — el descifrado y la decodificación de vídeo ocurren dentro del hardware seguro. Es lo que exigen los estudios para 4K y, muchas veces, para 1080p.
  • L2 — el descifrado va en hardware seguro, pero la decodificación no. Poco frecuente en la práctica.
  • L3 — todo en software. El dispositivo no tiene hardware seguro, o no lo expone. Es el caso de casi todos los navegadores de escritorio.

Lo que configuras en Airi

El campo security_level de la política va del 1 al 5 y expresa lo que el dispositivo debe cumplir para recibir la licencia. No es lo mismo que la etiqueta L1/L2/L3, aunque se correspondan a grandes rasgos:

`security_level`Qué exigeEquivale más o menos a
1Criptografía en softwareL3 — cualquier dispositivo
2Criptografía en software, con la clave protegida
3Criptografía dentro del hardware seguroTerritorio L1
4Además, decodificación en hardware seguro
5Toda la cadena en hardware, hasta la salida de vídeoL1 estricto

HDCP

HDCP protege el cable entre el dispositivo y la pantalla, para que no se pueda grabar la señal con un capturador. Se configura con hdcp:

  • HDCP_NONE — sin exigencia. Lo que permite reproducir en monitores viejos y en máquinas virtuales.
  • HDCP_V1 — protección básica; la cumple casi cualquier pantalla moderna.
  • HDCP_V2_2 — lo habitual para 4K. Deja fuera bastantes televisores y adaptadores anteriores a 2015.
  • HDCP_NO_DIGITAL_OUTPUT — prohíbe cualquier salida digital. Solo pantalla integrada.

También puedes cortar la salida analógica con disable_analog_output, y controlar la duración de la licencia y de la reproducción offline con license_duration_seconds, playback_duration_seconds y can_persist.

PlayReady #

Fabricante
Microsoft
System ID
9a04f079-9840-4286-ab92-e65be0885f95
En Airi
"playready"

Cubre el mundo Microsoft —Windows, Xbox, Edge— y, sobre todo, buena parte de los televisores conectados y descodificadores de operador. Muchos televisores Samsung y LG traen PlayReady además de, o en lugar de, Widevine.

Niveles de seguridad

NivelQué esCuándo usarlo
150Solo desarrollo y pruebas. No ofrece protección real.Nunca en producción.
2000Implementación en software. El nivel más extendido.Lo normal para SD y HD.
3000Implementación en hardware seguro.Para 4K y cuando el estudio lo exija.

Una particularidad

PlayReady, además de la caja pssh, devuelve una cabecera de protección (protectionHeader) que algunos empaquetadores necesitan por separado. La encontrarás en el campo drmSystemsData de la respuesta, junto al pssh.

Ojo también con el tipo: en PlayReady el nivel de seguridad es una cadena de texto ("2000"), no un número. Es la vocabulario del propio sistema y lo respetamos tal cual para que puedas contrastar cualquier traza con lo que tienes configurado.

FairPlay Streaming #

Fabricante
Apple
System ID
94ce86fb-07ff-4f43-adb8-93d2fa968ca2
En Airi
"fairplay"

El único camino para llegar a iPhone, iPad, Mac con Safari y Apple TV. También el más distinto de los cuatro: si algo se comporta de forma rara en tu integración, casi siempre es FairPlay.

Tres restricciones que conviene conocer antes de empezar

  1. Solo HLS. FairPlay no funciona sobre DASH. Si publicas únicamente DASH, los dispositivos Apple se quedan fuera.
  2. Solo cbcs. No admite cenc. Este es el motivo principal por el que hoy se recomienda empaquetar en cbcs.
  3. Necesitas un certificado de Apple. El servidor de licencias FairPlay requiere un certificado emitido por Apple a tu cuenta de desarrollador. Se solicita desde tu cuenta de Apple Developer y lo configura tu proveedor de DRM.

Qué se puede configurar

FairPlay no tiene niveles de seguridad numerados como Widevine o PlayReady. Su modelo de protección de salida lo gestiona el propio sistema operativo. Lo que sí controlas son las duraciones y la persistencia:

  • rental_duration_seconds — cuánto vale la licencia desde que se emite.
  • playback_duration_seconds — cuánto dura la ventana desde que se empieza a reproducir.
  • persistence_is_allowed — si se permite descargar para ver sin conexión.
  • lease_duration — para licencias de tipo préstamo.

WisePlay #

Fabricante
Huawei
System ID
3d5e6d35-9b9a-41e8-b843-dd3c6e72c42c
En Airi
"wiseplay"

El sistema de Huawei, presente en sus móviles con HMS, en HarmonyOS y en sus televisores. Importa sobre todo en el mercado chino y allí donde los dispositivos Huawei tienen peso, porque esos equipos no traen los servicios de Google y por tanto no traen Widevine.

Si tu audiencia está en Europa o América, es muy probable que no lo necesites. Actívalo solo si sabes que lo necesitas: cada sistema que añades no cuesta más dinero —el precio va por clave, no por sistema—, pero sí añade una pieza más que mantener y depurar.

Se configura con security_level (1 a 3), license_type (ONLINE o PERSISTENT) y license_duration_seconds. Internamente maneja fechas absolutas de inicio y caducidad, que calculamos por ti a partir de la duración.

Esquemas de cifrado: cenc y cbcs #

Esta es la decisión técnica que más caro sale equivocar, porque cambiarla obliga a volver a cifrar todo el catálogo.

Common Encryption define dos formas de cifrar los mismos bytes de vídeo:

`cenc``cbcs`
Cómo cifraAES en modo CTR, la muestra completaAES en modo CBC, por patrones (cifra un bloque de cada diez)
Widevine
PlayReadyDesde PlayReady 4
FairPlayNo
WisePlay

Qué elegir

Depende de si necesitas PlayReady y Apple a la vez, y la respuesta honesta es que con un solo juego de archivos no siempre se puede.

Tu casoQué empaquetar
Web y Android, sin Apple ni PlayReadycbcs o cenc, da igual. Widevine hace los dos.
Necesitas Applecbcs obligatorio para el HLS que sirve a FairPlay.
Necesitas PlayReady en navegadorcenc, porque muchos clientes de Edge no leen cbcs.
Necesitas los dosDos empaquetados: DASH en cenc para Widevine y PlayReady, HLS en cbcs para FairPlay. Es lo que hacen los servicios grandes.

Las claves son las mismas en los dos empaquetados: pides una vez y cifras dos. Lo que se duplica es el almacenamiento, no el coste de claves ni de licencias.

La elección no pasa por Airi

El esquema lo decides en tu empaquetador, no al pedir la clave: la misma clave sirve para ambos. Nosotros no vemos ni condicionamos ese paso.

Cómo elegir para tu caso #

Un catálogo normal, audiencia occidental

Widevine, PlayReady y FairPlay, empaquetado en cbcs. Nivel Equilibrado para 1080p y por debajo, Estricto solo si sirves 4K o el estudio lo exige.

Solo web, sin Apple

Widevine y PlayReady bastan. Ten presente que si algún día quieres llegar a Safari o a iPhone tendrás que reempaquetar, así que empaquetar ya en cbcs es una precaución barata.

Contenido con licencia de estudio

El contrato manda: normalmente exige hardware para 4K y a veces para 1080p. Configura una clave por calidad y aplica el nivel que te pidan a cada una — es exactamente el caso para el que existen las claves por calidad.

Mercado chino o dispositivos Huawei

Añade WisePlay a los tres anteriores. Los equipos Huawei recientes no tienen Widevine.