Widevine HTTP proxy with AWS Lambda



我正在使用AWS Lambda + Serverless构建一个Widevine许可证代理,并通过具有标准内容的Shaka Player进行测试:https://storage.googleapis.com/wvmedia/cenc/h264/tears/tears.mpd。ContentKeyAPI 工作正常,但如果我尝试将 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'

与查尔斯一起分析流量,失败是:Client SSL handshake failed - Remote host closed connection during handshake并导致Unsupported HTTP method

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

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

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

最新更新