许可证授权概述
后端确认用户有权观看后,使用 Playback Session API 请求播放授权。选择播放规则、接入播放器,并在播放结束时释放对应会话。
播放授权的流程
您的后端决定谁可以观看。DRM-X 提供播放授权,播放器使用该授权请求 DRM 许可证。
- 观看用户
登录您的服务并请求播放视频。
- 您的后端
检查用户的购买记录、订阅状态或其他观看权限。
- DRM-X
应用所选播放规则,返回播放配置和授权信息。
- 播放器
使用返回的授权信息,请求播放所需的 DRM 许可证。
创建播放会话#
POST https://api6.drm-x.com/api/v1/playback/environments/{siteId}/sessions
Accept: application/json
Content-Type: application/json
X-DRMX-Client-Id: {siteKey}
X-DRMX-Client-Secret: {accessKey}{
"contentId": "course-12-lesson-4",
"contentType": "vod",
"drmSystem": "widevine",
"subject": "customer-user-1001",
"sessionId": "new-unpredictable-id-per-playback",
"playbackMode": "streaming",
"licensePolicyTemplate": "multi-tier-standard",
"useEnvironmentDefaults": true,
"applicationId": "customer-web"
}除检测到的客户端能力外,请求参数都应来自可信的服务端数据。客户端能力也必须通过允许列表校验。观看权限、播放策略和 URL 应由后端确定,不能直接采用客户端提交的值。
选择策略模板#
| 模板 | 适用场景 |
|---|---|
single-software | 适用于使用单一密钥、优先兼容软件解密环境的内容。 |
single-hdcp | 适用于使用单一密钥、同时要求兼容设备启用数字输出保护的内容。 |
single-hardware | 适用于使用单一密钥、要求在具备相应硬件安全能力的设备上播放的高价值内容。 |
multi-tier-standard | 适用于使用多个密钥、需要分别设置 AUDIO、SD、HD 和 UHD 规则的内容。 |
使用自定义规则时,由服务器提交完整且经确认的 DRM-X License Policy JSON v2。licensePolicyTemplate 和 licensePolicy 只能选择其中一个,不能同时提交。
选择 direct-token 或客户自建代理#
Direct-token
接入步骤较少。客户端接收有效期较短的 DRM License Token,仅在请求接口返回的许可证或 FairPlay 证书地址时携带该 Token。
Token-proxy
您的服务器将实际 Token 保存在有容量限制和过期时间的缓存中,向客户端返回不可解析的引用标识及由您控制的代理 URL。该标识必须绑定用户、Content ID、DRM 系统和有效期。
处理播放结束与会话释放#
- 返回会话响应时设置
Cache-Control: no-store。 - 转发原生 DRM challenge 和响应时,必须保持二进制正文逐字节不变。
- 拒绝重定向,并限制证书、许可证和日志请求的大小。
- 停止播放、切换内容、出现无法恢复的错误或关闭应用时,调用响应中提供的会话释放接口。
- 不要在日志中记录授权请求头、成功的会话响应正文、许可证二进制内容、DRM challenge 或内容密钥。
许可证用量与计费#
许可证用量按成功签发的许可证计数。失败或被拒绝的请求不计费。
Standard 每月 $299,包含 20,000 个许可证。Professional 每月 $499,包含 50,000 个许可证。额度在每个按月计费周期重置,按年订阅也遵循此规则。
同一计量事件被重复处理时只计一次。新签发或续期时重新签发的许可证可再次计入用量。一位观众或一次播放可能需要多个许可证。
创建 DRM License Token、打包加密内容或上传文件本身不消耗播放许可证。
历史账单和计费周期保留原有条款、额度与计算结果。新购买的订阅按许可证用量计费。
未来的 PDF 和网页保护产品将针对文档或有明确范围和期限的网页保护会话定义成功签发的许可证。PDF 翻页、网页资源请求及重复使用仍有效的许可证不单独计费。这些未来规则不代表相关产品已可用于生产。
请查看当前价格页面,了解超额许可证的阶梯累进费用、可选托管服务及适用税费。
DRM-X 6.0