إنشاء جلسة تشغيل
اطلب واستخدم عقد Universal Playback Session Contract من DRM-X مع المصادقة ومعرّفات Content IDs الموثوقة والتفويض المحدود.
إنشاء دورة عالمية للعزف#
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-preview.6"
}
}
A successful Contract v1 response includes the authoritative manifest, available manifest variants, a DRM-specific license URL, a short-lived DRM License Token or client proxy authorization, a release route, the licensed maximum altitude, and allowed tracks. Return it with Cache-Control: no-store.
استخدم دورة واحدة غير متوقعة ID لكل محاولة حقيقية للإسترجاع، إعادة استخدام ID
التوثيق ومجالات الطلب الموثوق بها#
اتصلي بـ API من مظهركِ مع زبون مشروع API الذي لديه license-tokens:create استخدمي البيئة UUID كـ siteId
| الميدان | معناه | قاعدة التكامل |
|---|---|---|
contentId | المراجع المنشورة للمحتوى | حل من مدونتك الموثوقة بعد التحقق من الاستحقاق. |
subject | جهاز تحديد هوية المشاهد | متحللة من الدورة الموثّقة، وليس مستعمل مزوّد بالزبائن (ID). |
drmSystem | widevine، playready، fairplay، أو wiseplay | DRMمطابقاً لقدرات المشغّل |
sessionId | هوية هذه المحاولة المفاجئة | توليد قيمة جديدة لا يمكن التنبؤ بها لكل محاولة. |
contentType | vod أو live | استخدمي النوع المسجل للمحتوى |
playbackMode | streamingفي العقد | التلاعب المباشر يتطلب تمديداً لاحقاً للعقد |
licensePolicyTemplate / licensePolicy | سياسة أو سياسة عرفية مسمّاة | إختاروا على خادمكم، لا توردوا كلاهما، انظر قواعد السياسة |
platformCapabilities | المنهاج، DRMالنظم، أنواع البيانات، وتلميحات الأجهزة | إرسال قدرات صريحة مع إدماجات جديدة، وهي تصف العميل، ولا تلغي سياسة الترخيص. |
Consume the response descriptors#
إستخدم المجندون المستأجرون للعقود لا تقوم بتشييد رخص من التخمينات أو الاستعاضة عن البيانات المسجلة باشتراكات (المشغّل)
| مجال الاستجابة | كيفية استخدامه |
|---|---|
contractVersion | تأكد من أن نسخة العقد المُعاد مُدعمة بدمجك |
manifestUrl / manifestUrls | وضع قائمة مختارة ذات حجية أو متغير متوافق مع الوراء. |
expiresAt | إنتهاء هذا التصريح المقيد. |
drm | اقرأ system، licenseServerUrl، drmLicenseToken، tokenType، والخيار fairPlayCertificateUrl. |
release | استخدمي (url) و(method) و(authorizationScheme) لإفراج الجلسة عندما تنتهي المباراة |
policy | الشرف maximumHeight و allowedTrackTypes المُقدّم ما زال يُنفّذ السياسة الموقّعة |
tracks | قراءة القدرة السمعية/الموضوعية على اختيار اللغة وقاعدة اللغة. |
Re your المشغّل response with Cache-Control: no-store. never forward the project Access Key to the browser. Restrict authorization headers to the returned license and certificate routes.
الأخطاء اليدوية والتحفظات#
افحص حالة HTTP والحقل القابل للقراءة آليًا code. احتفظ بـ requestId لاستكشاف الأخطاء والتزم بـ retryable؛ يتطلب رفض صلاحية المشاهدة أو بطلان السياسة تصحيح القرار، وليس تكرار المحاولة في حلقة. راجع مرجع أخطاء جلسات التشغيل.
أطلقي التحفظ على التوقّف، واستبدال اللاعبين، والأخطاء النهائية، وإغلاق التطبيق، ومحاولة إعادة العزف الجديدة تحصل على دورة جديدة ID.
DRM-X 6.0