# 播放您的第一个受保护视频

从发布视频开始接入 DRM-X 6.0 Web 播放：创建仅具备必要权限的服务端凭据，确认用户的观看权限，再加载已登记的 Manifest。

从第一个视频到受保护的播放

加密视频、接入后端并测试播放。Access Key 应始终保存在服务器端。

- 01**登录**

打开 DRM-X Console，选择您的环境。

- 02**打包加密并发布**

完成视频打包加密，等待其状态变为 Published。

- 03**创建 API client**

仅授予 license-tokens:create 权限，并在显示 Access Key 时妥善保存。

- 04**配置后端**

设置凭据和 Content ID，选择播放规则，并检查用户是否有权观看。

- 05**测试播放**

通过后端请求播放会话。播放器随后请求 DRM 许可证，并播放加密视频。

打包加密并发布视频，配置后端，然后使用兼容播放器测试播放。

## 1. 发布一个加密视频[#](#1-publish-one-protected-file)

- **选择环境。**接入测试时使用 Development 环境，上线时另行创建 Production 环境的凭据。
- **打开 Package content。**需要广泛兼容性时选择 Single Key；需要分别控制 AUDIO、SD、HD 和 UHD 的保护规则时，选择 Multi-key Quality Tiered。
- **等待状态变为 Published。**复制该内容的 Content ID。播放时，DRM-X 会查找已登记的 DASH 或 HLS Manifest，不能使用客户端随意提供的 Manifest URL。



## 2. 创建仅具备必要权限的服务端接入[#](#2-create-a-least-privilege-server-integration)

在 Console → Integrations 中创建仅具有 `license-tokens:create` 权限的 Playback API 客户端。复制 Site ID、Site Key 和仅显示一次的 Access Key，并将三者保存在服务器端。切勿将 Access Key 放入 JavaScript、APK、IPA 或电视应用中。

**正式上线前的建议**为方便首次测试，示例允许直接在服务端代码中填写配置。正式上线前，请将 Access Key 移入安全凭据存储或受保护的环境配置，并更换任何曾经泄露的凭据。



## 3. 修改示例中标出的三类服务端设置[#](#3-change-the-three-marked-server-settings)

```
// Server-side only
siteId: "your-development-environment-uuid"
siteKey: "drmx_your_environment_scoped_client_id"
accessKey: "paste-the-one-time-access-key"

contentId: "your-published-content-id"
licensePolicyTemplate: "multi-tier-standard"
```

随后，将示例中的登录与观看权限检查替换为实际业务逻辑，例如验证登录会话、订阅、购买记录、课程报名、租赁期限或活动观看资格。



## 4. 请求播放，并在结束后释放会话[#](#4-request-playback-then-release-it)

每次尝试播放时，都生成一个新的、不可预测的会话 ID。请求成功后，在返回给客户端的响应中设置 `Cache-Control: no-store`。停止播放、切换内容、出现无法恢复的错误或关闭应用时，释放该会话占用的并发名额。

- 不要直接采用播放器提交的 `subject`、策略 JSON、Manifest URL 或许可证 URL；这些值应由可信的服务端逻辑确定。
- 仅向接口返回的 DRM 许可证和 FairPlay 证书地址发送授权请求头。
- 日志中只记录关联 ID 和各阶段的处理结果，不要记录 Token、密钥、DRM challenge 或许可证的二进制内容。

<!-- Canonical: https://docs.drm-x.com/zh-Hans/get-started/first-playback -->
<!-- Language: zh-Hans -->
