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

Я создаю лицензионный прокси Widevine с AWS Lambda + Serverless и тестирую его с помощью Shaka Player со стандартным контентом: https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd. ContentKey API работает нормально, но если я попытаюсь использовать конечную точку Lambda в качестве URL-адреса лицензии с содержимым DRM в кодировке CENC, произойдет сбой воспроизведения, поскольку проигрыватель Shaka попытается создать CONNECT запрос, который не удается в лямбда с 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,

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

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

1 ответ

Решение

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

Другие вопросы по тегам