Django 受保护视频
结合 Django 身份验证、管理员维护的视频映射和有时间限制的访问授权,集成 Universal Player。
播放授权的流程
您的后端决定谁可以观看。DRM-X 提供播放授权,播放器使用该授权请求 DRM 许可证。
- 观看用户
登录您的服务并请求播放视频。
- 您的后端
检查用户的购买记录、订阅状态或其他观看权限。
- DRM-X
应用所选播放规则,返回播放配置和授权信息。
- 播放器
使用返回的授权信息,请求播放所需的 DRM 许可证。
安装 Django 应用#
将源码包中的 django 目录安装到应用环境。在 INSTALLED_APPS 中加入 drmx,引入 drmx.urls,启用 Django 会话和身份验证中间件,然后执行数据库迁移。请保持 CsrfViewMiddleware 启用。
pip install ./django
python manage.py migrate
# urls.py
path("protected/", include("drmx.urls"))
配置凭据与内容#
在 settings.DRMX 中配置 SITE_ID、SITE_KEY、ACCESS_KEY、INSTANCE_ID,以及可选的 POLICY。密钥应从主机环境加载。INSTANCE_ID 是稳定的站点标识,用于区分不同应用中的播放用户标识。
在 Django admin 中打开 Protected videos 并添加记录。DRM-X 6.0 Universal Player 区域集中显示 Content ID、内容类型、保护策略和启用状态,并提供字段说明。为已登录用户创建 AccessGrant,设置开始时间和可选到期时间。仅启用视频不会授予观看权限;撤销授权或禁用视频后,新的播放请求会被拒绝。
登录后访问 /protected/VIDEO_ID/。页面会向 /protected/VIDEO_ID/session/ 请求会话。如果已有课程或订阅模型,可将 can_play 替换为您的服务器端规则,但应保留有效用户、已启用视频和具体视频权限的检查。
CSRF 与部署#
已发布的 Web Component 不支持自定义会话请求头。此应用将经过掩码处理的 Django CSRF token 放入同源接口 URL,并使用 Django 标准的 Cookie 和来源检查明确验证。请勿移除此验证,也不要为播放器页面启用跨用户共享缓存。
请勿在访问日志中记录查询字符串;使用 HTTPS 和安全会话 Cookie,并保留 no-referrer 设置。已在 Django 6.0.8 上通过六项测试,覆盖授权生命周期、CSRF、来源、内容绑定,以及服务器控制的身份和策略。真实 DRM 播放仍需要使用您的已发布内容进行验证。
DRM-X 6.0