# إنشاء جلسة تشغيل

اطلب واستخدم عقد Universal Playback Session Contract من DRM-X مع المصادقة ومعرّفات Content IDs الموثوقة والتفويض المحدود.

كيف يُصرَّح بتشغيل الفيديو

يحدد خادم التطبيق من يحق له المشاهدة. توفر DRM-X تصريح التشغيل، ويستخدمه المشغّل لطلب ترخيص DRM.

- 01**المشاهد**

يسجّل الدخول إلى خدمتك ويطلب مشاهدة فيديو.

- 02**خادم التطبيق لديك**

يتحقق من عملية الشراء أو الاشتراك أو أي صلاحية أخرى للمشاهدة لدى المستخدم.

- 03**DRM-X**

تطبّق قواعد التشغيل المختارة وتعيد إعدادات التشغيل والتصريح.

- 04**المشغّل**

يستخدم التصريح المستلَم لطلب ترخيص DRM اللازم للتشغيل.

DRM-X يُنفّذُ السياسةَ الموقّعةَ، وسائلِ الإعلام المشفرة و DRM رخصِ إتّباع مساراتِ تسليم منفصلةِ.

API 

## إنشاء دورة عالمية للعزف[#](#create-a-universal-playback-session)



```
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





## التوثيق ومجالات الطلب الموثوق بها[#](#authentication-and-trusted-request-fields)

اتصلي بـ API من مظهركِ مع زبون مشروع API الذي لديه `license-tokens:create` استخدمي البيئة UUID كـ `siteId`

| الميدان | معناه | قاعدة التكامل | 
| --- | --- | --- |

| `contentId` | المراجع المنشورة للمحتوى | حل من مدونتك الموثوقة بعد التحقق من الاستحقاق. | 

| `subject` | جهاز تحديد هوية المشاهد | متحللة من الدورة الموثّقة، وليس مستعمل مزوّد بالزبائن (ID). | 

| `drmSystem` | `widevine`، `playready`، `fairplay`، أو `wiseplay` | DRMمطابقاً لقدرات المشغّل | 

| `sessionId` | هوية هذه المحاولة المفاجئة | توليد قيمة جديدة لا يمكن التنبؤ بها لكل محاولة. | 

| `contentType` | `vod` أو `live` | استخدمي النوع المسجل للمحتوى | 

| `playbackMode` | `streaming`في العقد | التلاعب المباشر يتطلب تمديداً لاحقاً للعقد | 

| `licensePolicyTemplate` / `licensePolicy` | سياسة أو سياسة عرفية مسمّاة | إختاروا على خادمكم، لا توردوا كلاهما، انظر [قواعد السياسة ](https://docs.drm-x.com/ar/license-service/policies) | 

| `platformCapabilities` | المنهاج، DRMالنظم، أنواع البيانات، وتلميحات الأجهزة | إرسال قدرات صريحة مع إدماجات جديدة، وهي تصف العميل، ولا تلغي سياسة الترخيص. | 



## Consume the response descriptors[#](#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.



## الأخطاء اليدوية والتحفظات[#](#handle-errors-and-release-reservations)

افحص حالة HTTP والحقل القابل للقراءة آليًا `code`. احتفظ بـ `requestId` لاستكشاف الأخطاء والتزم بـ `retryable`؛ يتطلب رفض صلاحية المشاهدة أو بطلان السياسة تصحيح القرار، وليس تكرار المحاولة في حلقة. راجع [مرجع أخطاء جلسات التشغيل](https://docs.drm-x.com/ar/api-reference/errors).

أطلقي التحفظ على التوقّف، واستبدال اللاعبين، والأخطاء النهائية، وإغلاق التطبيق، ومحاولة إعادة العزف الجديدة تحصل على دورة جديدة ID.

<!-- Canonical: https://docs.drm-x.com/ar/api-reference/playback-sessions -->
<!-- Language: ar -->
