Volver al Blog
Plataforma

Widevine y navegadores headless: lista de límites de DRM

Separa límites de pantalla, CDM, robustez y licencia con una matriz reproducible para depurar DRM en automatización.

BotBrowser Team

Documentación

Quieres la documentación estructurada de Plataforma?

Este artículo forma parte de la biblioteca editorial. Para pasos de configuración, material de referencia y actualizaciones continuas, entra en la sección de docs.

BotBrowser puede repetir una prueba DRM autorizada en un perfil declarado, pero no entrega un CDM propietario, no concede derechos y no convierte headless en una pantalla segura por hardware. Esta guía es distinta de disponibilidad de Widevine CDM en navegadores automatizados: aquella comprueba la primera llamada EME; aquí se separan pantalla, módulo, robustez y licencia.

Cuatro puntos separan negociación del módulo, robustez, salida protegida y licencia

Resumen

“Falló DRM en headless” no identifica la causa. Puede fallar antes de seleccionar el CDM, aceptar solo robustez de software, restringir la salida o recibir un rechazo del servicio de licencias. Registra versión, perfil, modo de pantalla y código HTTP en cada ejecución.

Contenido

Cuatro límites

La disponibilidad de requestMediaKeySystemAccess() puede fallar antes de contactar al servidor. Usa la prueba de disponibilidad de Widevine y llama a ese resultado “negociación del módulo”, no “reproducción”.

Una respuesta positiva tampoco demuestra HW_SECURE_ALL: un escritorio o display virtual puede ofrecer solo software. Además, la reproducción puede empezar y terminar en output-restricted si la ruta de salida no cumple la política. Por último, el challenge puede ser rechazado por cuenta, región, HTTP o entitlement. Guarda códigos y estados, nunca tokens ni mensajes opacos.

Matriz reproducible

Usa el mismo fixture HTTPS y un perfil nuevo por fila:

FilaCambioResultado que se registraLectura
Aheadless, solicitud predeterminadaéxito o NotSupportedErrornegociación del módulo
Bheaded, mismo perfilcomparación con Amodo de pantalla
CSW_SECURE_DECODE frente a HW_SECURE_ALLrobustez aceptadanivel de seguridad negociado
Dchallenge en servicio de prueba autorizadoHTTP y código del proveedordecisión de licencia
Edisplay virtualrestricción o ruta de reservaprotección de salida

Conserva un JSON como {"build":"Chrome 155.0.8059.80","mode":"headless","profile":"fresh-temporary","access":"supported","licenseStatus":null}. Es un artefacto medido, no una promesa universal.

Lectura de fallos

Si todas las filas rechazan, compara binario y argumentos. Si software funciona y hardware no, documenta el límite de la máquina o el requisito del proveedor. Si EME funciona y falla la licencia, revisa estado HTTP, cuenta de prueba y región. Si el estado cambia después de comenzar, registra keystatuseschange y la salida.

No copies un CDM ni desactives controles de seguridad para que pase una prueba. Para consistencia entre modos, consulta consistencia de perfiles headless y headed; para configuración, configuración Widevine de BotBrowser.

Límite de BotBrowser

Con la build y entitlement adecuados, BotBrowser puede mantener el perfil y la política --bot-widevine por contexto. No fabrica un CDM, no cambia una decisión de cuenta, no garantiza hardware seguro ni prueba que todos los títulos funcionen en todos los hosts.

Conclusión

Headless es un modo de presentación. Divide disponibilidad, robustez, salida y licencia en filas separadas, repite el fixture tras cada actualización y conserva el resultado medido.

Fuentes

#Widevine#DRM#headless#Automatización#Privacidad

Lleva BotBrowser de la investigación a producción

Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.