使用许可证字符串在 ExoPlayer 上播放 widevine DRM 保护的内容
Using a license string to play widevine DRM protected content on ExoPlayer
我正在尝试在 ExoPlayer (v2.5.4) 上播放受 Widevine DRM 保护的破折号文件。我无权访问许可证服务器,但有一个代理服务器,我可以调用 API 来检索许可证响应。许可证服务器包含以下响应:
- Base64 编码的许可证字符串
- ContentKeys,它是两个字符串的列表(看起来又是 base64 编码)
有没有办法直接在ExoPlayer中传递这些值?本质上,我正在尝试在没有 URL 的情况下播放受 DRM 保护的内容。类似问题:https://github.com/google/ExoPlayer/issues/3107
Widevine 和其他 DRM 系统实际上会对许可请求和响应进行加密,因此仅获取许可响应的副本不会以您可以访问的方式为您提供内容的媒体解密密钥,如果是的话你是什么意思。换句话说,它构建的许可证响应只有设备上的 DRM 客户端才能正确读取并提取密钥。
如果您的意思是在您的播放器发出 Widevine 请求和许可服务器之间存在一些代理,那么只要代理不更改或更新请求和响应,这应该无关紧要。
您的意思可能是您实际上可以访问媒体加密密钥本身 - 如果是这样,您可以简单地自己在您的应用程序或设备上单独解密内容并将其提供给播放器,或者您可以更新通过另一种方法显示并提供密钥,例如 DASH 中的 Clearkey 机制。
我正在尝试在 ExoPlayer (v2.5.4) 上播放受 Widevine DRM 保护的破折号文件。我无权访问许可证服务器,但有一个代理服务器,我可以调用 API 来检索许可证响应。许可证服务器包含以下响应:
- Base64 编码的许可证字符串
- ContentKeys,它是两个字符串的列表(看起来又是 base64 编码)
有没有办法直接在ExoPlayer中传递这些值?本质上,我正在尝试在没有 URL 的情况下播放受 DRM 保护的内容。类似问题:https://github.com/google/ExoPlayer/issues/3107
Widevine 和其他 DRM 系统实际上会对许可请求和响应进行加密,因此仅获取许可响应的副本不会以您可以访问的方式为您提供内容的媒体解密密钥,如果是的话你是什么意思。换句话说,它构建的许可证响应只有设备上的 DRM 客户端才能正确读取并提取密钥。
如果您的意思是在您的播放器发出 Widevine 请求和许可服务器之间存在一些代理,那么只要代理不更改或更新请求和响应,这应该无关紧要。
您的意思可能是您实际上可以访问媒体加密密钥本身 - 如果是这样,您可以简单地自己在您的应用程序或设备上单独解密内容并将其提供给播放器,或者您可以更新通过另一种方法显示并提供密钥,例如 DASH 中的 Clearkey 机制。