Tạo phiên phát
Request and consume the DRM-X Universal Playback Session Contract with authentication, trusted Content IDs, and bounded authorization.
Quy trình cấp quyền phát video
Backend quyết định ai được xem. DRM-X cung cấp thông tin cấp quyền phát. Trình phát dùng thông tin đó để yêu cầu giấy phép DRM.
- Người xem
Đăng nhập vào dịch vụ của bạn và yêu cầu xem video.
- Backend của bạn
Kiểm tra giao dịch mua, gói đăng ký hoặc quyền xem khác của người dùng.
- DRM-X
Áp dụng các quy tắc đã chọn và trả về cấu hình cùng thông tin cấp quyền phát.
- Trình phát
Dùng thông tin cấp quyền nhận được để yêu cầu giấy phép DRM cần thiết cho việc phát video.
Tạo một phiên chạy phát lại chung#
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",
"platformCapabilities": {
"clientPlatform": "web",
"drmSystems": ["widevine"],
"manifestTypes": ["dash"],
"maximumHeight": 2160,
"persistentState": false,
"sdkVersion": "1.2.0-beta.4"
}
}
Một câu trả lời hợp đồng thành công bao gồm các bản tuyên bố có thẩm quyền, có sẵn các biến thể, một DRM-giấy phép đặc biệt URLMột cuộc sống ngắn ngủi DRM License Token hoặc quyền ủy nhiệm khách hàng, lộ trình phóng thích, cấp phép cao nhất, và cho phép đường ray. Cache-Control: no-store.
Dùng một phiên chạy không thể đoán trước ID cho mỗi lần thử phát lại. ID thông qua các thiết bị đánh bại đếm ngược cùng thời điểm.
Ví dụ phản hồi thành công
Ví dụ này dùng URL mẫu không hoạt động và token giữ chỗ. Hãy đọc các bộ mô tả lồng nhau; bí danh tương thích được cung cấp cho các tích hợp cũ.
{
"contractVersion": 1,
"playbackMode": "streaming",
"sessionId": "c9006ed8-58c8-45db-9ed0-311d1047c210",
"contentId": "course-12-lesson-4",
"drmSystem": "widevine",
"manifestUrl": "https://media.example.test/course-12/manifest.mpd",
"manifestUrls": {"dash": "https://media.example.test/course-12/manifest.mpd"},
"expiresAt": "2026-10-26T12:10:00Z",
"drm": {
"system": "widevine",
"licenseServerUrl": "https://license6.drm-x.com/v1/licenses/widevine",
"drmLicenseToken": "REDACTED_EXAMPLE_ONLY",
"tokenType": "Bearer",
"fairPlayCertificateUrl": null
},
"release": {
"url": "https://license6.drm-x.com/v1/playback-sessions/release",
"method": "POST",
"authorizationScheme": "Bearer"
},
"policy": {"maximumHeight": 1080, "allowedTrackTypes": ["AUDIO", "SD", "HD"]},
"tracks": {"audioLanguageSelection": true, "subtitleLanguageSelection": true, "languageTagStandard": "BCP-47"},
"platformCapabilities": null,
"playerBranding": null,
"token": "REDACTED_EXAMPLE_ONLY",
"tokenType": "Bearer",
"licenseServerUrl": "https://license6.drm-x.com/v1/licenses/widevine",
"fairPlayCertificateUrl": null,
"releaseUrl": "https://license6.drm-x.com/v1/playback-sessions/release",
"maximumHeight": 1080,
"allowedTrackTypes": ["AUDIO", "SD", "HD"]
}
Xác thực và các trường yêu cầu tin cậy#
Gọi cái này đi API từ hậu phương của bạn với một dự án API Khách hàng có license-tokens:createDùng môi trường UUID dạng siteIdNgười xem xác thực của bạn gọi điểm kết thúc của bạn; điểm kết thúc của bạn cung cấp các trường tin cậy bên dưới.
| Tìm kiếm | Nghĩa là | Quy tắc hợp nhất |
|---|---|---|
contentId | Tài liệu tham khảo nội dung được xuất bản | Giải quyết từ danh mục tin cậy sau khi kiểm tra phúc lợi xã hội. |
subject | Bộ nhận diện trình xem ổn định của bạn | Derive từ phiên chạy xác thực, không phải là người dùng ứng dụng khách ID. |
drmSystem | widevine, playready, fairplay, hoặc wiseplay | Khớp điều đã chọn DRM đến trình phát Khả năng. |
sessionId | Danh tính của nỗ lực phát lại này | Tạo ra một giá trị không thể đoán trước cho mỗi nỗ lực. |
contentType | vod hay live | Dùng kiểu đã đăng ký cho nội dung. |
playbackMode | streaming trong hợp đồng | Phần phát lại ngoại tuyến đòi hỏi phần mở rộng hợp đồng sau. |
licensePolicyTemplate / licensePolicy | Name | Hãy chọn trên máy phục vụ của bạn; đừng cung cấp cả hai. Xem quy tắc chính sách. |
platformCapabilities | Nền tảng, DRM hệ thống, kiểu trình bày và gợi ý thiết bị | Gửi khả năng rõ ràng với sự tích hợp mới. Chúng mô tả ứng dụng khách, không ghi đè lên chính sách chứng nhận. |
Tiêu thụ các ghi chú đáp ứng#
Dùng hợp đồng lồng nhau v1 descripters. Đừng xây dựng các đường dẫn chứng nhận từ các dự đoán hoặc thay thế các URL đã đăng ký trình phát Đầu vào.
| Trường đáp ứng | Cách sử dụng nó |
|---|---|
contractVersion | Kiểm tra xem phiên bản hợp đồng trả lại được hỗ trợ bởi sự tích hợp của bạn. |
manifestUrl / manifestUrls | Tải danh sách đã chọn hoặc một biến thể tương thích với trả lại. |
expiresAt | Sự giải thoát của giấy phép bị hạn chế này. |
drm | Đọc system, licenseServerUrl, drmLicenseToken, tokenTypevà tùy chọn fairPlayCertificateUrl. một ủy nhiệm hiệu suất khách hàng có thể thay thế quyền truy cập tới trình duyệt bằng phiên chạy bị hạn chế riêng. |
release | Sử dụng nó url, method, và authorizationScheme để phát hành phiên chạy khi phát lại kết thúc. |
policy | Danh dự maximumHeight và allowedTrackTypesNhà cung cấp vẫn thực thi chính sách đã được ký. |
tracks | Đọc khả năng chọn ngôn ngữ/phụ và tiêu chuẩn thẻ ngôn ngữ. |
Trả lại của bạn trình phát trả lời với Cache-Control: no-storeKhông bao giờ chuyển tiếp dự án Access Key cho trình duyệt. Giới hạn quyền sở hữu đầu trang tới các đường dẫn chứng nhận và giấy phép trả về.
Xử lý lỗi và gỡ bỏ vùng đặt trước#
Kiểm tra HTTP Trạng thái và Máy đọc được codeGiữ lại requestId Đối với rắc rối bắn súng và tôn trọng retryable; một chính sách bị từ chối hoặc không hợp lệ cần một quyết định đúng, không phải một vòng lặp thử lại. Xem Gặp lỗi khi phát lại phiên chạy.
Phát hành đặt chỗ trên trạm dừng, phát lại thay thế, lỗi thiết bị cuối, và tắt ứng dụng. Một nỗ lực phát lại mới có một phiên chạy mới ID.
POST https://license6.drm-x.com/v1/playback-sessions/release
Authorization: Bearer REDACTED_EXAMPLE_ONLY
Accept: application/json
HTTP/1.1 200 OK
{"contractVersion":1,"released":true,"code":"license_session_released","requestId":"example-request-id"}
Dùng URL giải phóng và cơ chế xác thực được trả về với cùng DRM License Token. Không cần nội dung yêu cầu. Yêu cầu giải phóng lặp lại đã xác thực trả về HTTP 200 với released false và code license_session_not_active. Xác thực hết hạn hoặc không hợp lệ có thể thất bại trước khi giải phóng; hãy lấy xác thực mới cho lần phát mới. Thử lại lỗi dịch vụ tạm thời với thời gian chờ tăng dần và số lần giới hạn.
Hợp đồng công khai này mô tả phát trực tuyến. Endpoint ngoại tuyến do khách hàng sở hữu và giấy phép lâu dài gắn với thiết bị có quy trình riêng; không dùng lại phản hồi trực tuyến này làm giấy phép ngoại tuyến.
DRM-X 6.0