带有AWS Lambda的Widevine HTTP代理

时间:2018-09-12 01:10:39

标签: amazon-web-services aws-lambda widevine shaka

我正在使用AWS Lambda + Serverless构建Widevine许可证代理,并通过Shaka Player进行测试,其标准内容为:https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpdContentKey API可以正常工作,但是如果我尝试使用Lambda端点作为带有CENC编码DRM内容的许可证URL,则回放会失败,因为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'

使用Charles分析流量,失败原因是:Client SSL handshake failed - Remote host closed connection during handshake,结果为Unsupported HTTP method

编辑: 因此,Shaka播放器正在请求密钥以解密资产到Widevine许可证URL,该密钥在Lambda上和API Gateway后面执行。 Shaka播放器对service_certificate的第一个POST请求(有效载荷CAQ =)起作用。第二个请求(来自Shaka播放器的许可证请求)在CONNECT步骤中阻塞,然后使用API​​网关的不支持的HTTP方法响应关闭连接。

关于如何使许可证服务器正常工作的任何想法?

1 个答案:

答案 0 :(得分:0)

因此,经过更多研究,我发现使用Serverless和AWS Lambda无法完成此操作,因为不支持Shaka播放器(例如)用于加载CENC内容的HTTP方法。