Widevine DRM - полезный груз запроса тела
Я работаю над интеграцией плеера, который должен проигрывать потоки, защищенные с помощью Widevine DRM, в браузере.
Я проверил некоторых известных игроков:
- DashJs - https://github.com/Dash-Industry-Forum/dash.js/wiki
- ShakaPlayer - https://github.com/google/shaka-player
К счастью, эти проигрыватели предоставляют некоторые образцы потока, защищенного с помощью Widevine DRM.
Мой вопрос касается выполнения XHR для получения ключа DRM. В любом защищенном потоке Widevine я вижу (в devtools) как минимум 2 XHR для сервера лицензий.
Давайте рассмотрим пример: https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/Manifest_1080p.mpd
Этот поток доступен в:
- DashJs ( https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html): "Тестовый контент Axinom (современный) > 1080p с PlayReady и Widevine DRM, одна клавиша "
- ShakaPlayer ( https://shaka-player-demo.appspot.com/demo/): "Аксином> Мульти-DRM"
На Chrome (65.0.3325.181), когда я загружаю поток, я могу сделать 2 XHR (давайте опустим предполетный "OPTIONS" xhr):
- СООБЩЕНИЕ
https://drm-widevine-licensing.axtest.net/AcquireLicense
- Запрос
X-AxDRM-Message
заголовок, специфичный для Axinom - Запрос
Content-Length: 2
- Полезная нагрузка запроса равна
\x08\x04
(Щелкните правой кнопкой мыши на XHR, затем "Копировать как cURL" и вставьте его в любой текстовый редактор) - отклик
Content-Length: 706
- Запрос
- СООБЩЕНИЕ
https://drm-widevine-licensing.axtest.net/AcquireLicense
- Запрос
X-AxDRM-Message
специфичный для Axinom заголовок - Запрос
Content-Length: 3929
- Запрос полезной нагрузки с определенным количеством данных
- отклик
Content-Length: 426
- Запрос
Я не понимаю, почему есть 2 XHR? Более того, первый XHR с двумя символами \x08\x04
всегда отправляется независимо от выбранного потока (в случае потока Widevine DRM), есть ли конкретное значение?
2 ответа
В первом запросе действительно есть конкретное значение. Но точное значение не является общедоступным знанием. Вам потребуется связаться с Widevine и получить сертификат CWIP.
Первый запрос на сертификат сервиса Widevine
Второй запрос является фактическим запросом лицензии
Вы можете прочитать больше об этом на https://www.widevine.com/product_news.html
Смотрите раздел Update - Chrome 59 and Service Certificates