HTTP-прокси Widevine с AWS Lambda - PullRequest
       102

HTTP-прокси Widevine с AWS Lambda

0 голосов
/ 12 сентября 2018

Я создаю лицензионный прокси Widevine с AWS Lambda + Serverless и тестирую его через Shaka Player со стандартным контентом: https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd. API ContentKey работает нормально, но если я пытаюсь использовать конечную точку Lambda в качестве URL-адрес лицензии с содержимым DRM в кодировке CENC, воспроизведение завершается неудачно, поскольку проигрыватель Shaka пытается выполнить запрос CONNECT, который не выполняется в Lambda с Unsupported HTTP method, первый запрос POST для SERVICE_CERTIFICATE работает, второй - с PAYLOAD для запроса сертификата не удается. Конкретно это:

curl -H 'Host: drm.*****.com:443' -H 'Proxy-Connection: keep-alive' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36' -X CONNECT 'https://drm.******.com'

Анализируя трафик с Чарльзом, ошибка: Client SSL handshake failed - Remote host closed connection during handshake и приводит к Unsupported HTTP method.

EDIT: Поэтому игрок Shaka делает запрос на ключи для дешифрования ресурса по URL лицензии Widevine, выполняя его на Lambda и за API Gateway. Первый POST-запрос для service_certificate (payload CAQ =) от игрока Shaka работает. Второй запрос (запрос на лицензию от проигрывателя Shaka) блокируется на шаге CONNECT, а затем соединение закрывается с помощью ответа неподдерживаемого метода HTTP от шлюза API.

Есть идеи, как заставить работать сервер лицензий?

1 Ответ

0 голосов
/ 03 октября 2018

Итак, после дополнительных исследований я обнаружил, что это невозможно сделать с использованием Serverless и AWS Lambda, поскольку метод HTTP, используемый проигрывателем Shaka (например) для загрузки контента CENC, не поддерживается.

...