DRM-X 6.0 鸽子和橄榄枝标志DRM-X 6.0文档
◎ 简体中文

Django 受保护视频

结合 Django 身份验证、管理员维护的视频映射和有时间限制的访问授权,集成 Universal Player。

查看 Markdown现场实例更新于 2026-09-15

播放授权的流程

您的后端决定谁可以观看。DRM-X 提供播放授权,播放器使用该授权请求 DRM 许可证。

  1. 观看用户

    登录您的服务并请求播放视频。

  2. 您的后端

    检查用户的购买记录、订阅状态或其他观看权限。

  3. DRM-X

    应用所选播放规则,返回播放配置和授权信息。

  4. 播放器

    使用返回的授权信息,请求播放所需的 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 播放仍需要使用您的已发布内容进行验证。