DRM-X 6.0 حمام وشعار فرع الزيتونDRM-X 6.0الوثائق
◎ العربية

أمثلة بلغات الواجهة الخلفية

افهم مسار التشغيل المشترك وحدّد دالة التحقق التي يجب تعديلها في Node.js أو Django أو Laravel أو PHP أو ASP.NET أو Java.

عرض Markdownأمثلة قابلة للتجربةآخر تحديث 2026-09-25

موقعك يقرّر من يمكنه المشاهدة#

احتفظ بنظام تسجيل الدخول والمشتريات والعضوية والتسجيل الحالي. يزوّد تطبيقك المستخدم الحالي وContent ID المصرّح به. يستدعي SDK خدمة DRM-X ويحمّل المشغّل الفيديو المحمي.

ربط واحد بتطبيقك الحالي

أنت مسؤول عن تسجيل الدخول وقرار الصلاحية. يتولى SDK والمشغّل التشغيل المحمي.

  1. الاحتفاظ بتسجيل الدخول

    يسجّل المشاهد الدخول عبر موقعك الحالي.

  2. ربط الاستعلام

    يتحقق تطبيقك من الوصول ويُرجع DRM-X Content ID للدرس المختار.

  3. الاستدعاء عبر SDK

    يستخدم SDK للخادم بيانات اعتماد الخادم لطلب تشغيل مصرّح به من DRM-X.

  4. عرض المشغّل

    يحصل المشغّل على ترخيص DRM ويشغّل المحتوى المشفّر المنشور.

فهم معرّفَي الفيديو#

القيمةمثالمصدره
معرّف فيديو الموقعlesson-123سجل الدرس أو المنتج أو الفيديو لديك.
DRM-X Content IDyour-published-content-idالمحتوى المحمي المنشور في DRM-X.
معرّف المستخدمcustomer-456جلسة تسجيل الدخول الموثّقة لديك.

اربط الدرس بـ Content ID الخاص به باستخدام قاعدة بياناتك أو API أو شفرة تطبيقك الحالية. العثور على فيديو لا يثبت أن هذا المستخدم يحق له مشاهدته؛ تحقق من الصلاحية قبل إرجاعه.

الإعداد مرة واحدة، ثم التكامل#

  1. شفّر فيديو واحدًا وانشره وانسخ Content ID الخاص به.
  2. أنشئ بيانات اعتماد التشغيل للبيئة نفسها. استخدم Site ID وSite Key وAccess Key على الخادم.
  3. نزّل الحزمة الكاملة أو حزمة منصتك. ثبّت SDK باستخدام مدير الحزم لديك.
  4. اربط دالة التحقق من صلاحية المستخدم للمحتوى، ثم أضف المشغّل إلى صفحتك.

يعمل SDK على محتوى منشور مسبقًا. لا يحل محل أداة التغليف أو نظام الدفع لديك. قد تحتاج تبعيات التشغيل الخارجية إلى الإنترنت أثناء التثبيت.

اختيار لغتك#

اختر لغة لعرض خريطة مواضع التعديل الخاصة بها.

Node.js / Express

عدّل تطبيقك: server.mjs

الربط: authorize(userId, videoId)

أرجع ارتباط المحتوى المصرّح به أو null. اقرأ المستخدم من وسيط تسجيل الدخول الحالي.

افتح الدليل وأوامر التثبيت ←

Python / Django

عدّل تطبيقك: authorization.py

الربط: authorize(user, video_id)

أرجع قاموسًا يحتوي على content_id، أو None. سجّله باسم DRMX['AUTHORIZE'] في settings.py.

افتح الدليل وأوامر التثبيت ←

PHP / Laravel

عدّل تطبيقك: app/Services/DrmxAccess.php

الربط: ContentAuthorizer.authorize(user, videoId)

أرجع مصفوفة محتوى مصرّحًا به أو null. اربط خدمتك في AppServiceProvider.

افتح الدليل وأوامر التثبيت ←

PHP دون إطار عمل

عدّل تطبيقك: index.php

الربط: findAuthorizedVideo(userId, videoId)

أرجع مصفوفة محتوى مصرّحًا به أو null. اربط هوية جلسة PHP الحالية لديك.

افتح الدليل وأوامر التثبيت ←

C# / ASP.NET Core

عدّل تطبيقك: Program.cs

الربط: QuickStartCatalog.FindAuthorizedVideoAsync

أرجع QuickStartVideo أو null. يتحقق IDrmXContentEntitlement من Content ID المطلوب بمقارنته بتلك النتيجة.

افتح الدليل وأوامر التثبيت ←

C# / ASP.NET Framework

عدّل تطبيقك: App_Code/DrmXPlayback.cs

الربط: ApplicationServices.Authorize

أرجع true فقط لمستخدم وContent ID ونوع محتوى مصرّح بهم. هذا مهايئ مصدري لـ Windows/IIS.

افتح الدليل وأوامر التثبيت ←

Java / Spring Boot

عدّل تطبيقك: DrmxAccess.java

الربط: ContentEntitlement.authorize(userId, videoId)

أرجع Optional<AuthorizedVideo> أو Optional.empty(). اربط المتحكم وbean الصلاحيات بمستودعك الحالي.

افتح الدليل وأوامر التثبيت ←

إعداد الخادم#

أمثلةمتغيرات البيئة
Node, Django, Java, PHP SDK, LaravelDRMX_SITE_ID, DRMX_SITE_KEY, DRMX_ACCESS_KEY
ASP.NET Core وFrameworkDRMX_PLAYBACK_SITE_ID, DRMX_PLAYBACK_SITE_KEY, DRMX_PLAYBACK_ACCESS_KEY

حمّل هذه القيم في عملية الخادم. Content ID قيمة خاصة بكل فيديو؛ لا تستبدل بيانات الاعتماد المشتركة أو الإعدادات العامة لتبديل المستخدمين أو الفيديوهات. أبقِ اختيار السياسة على الخادم.

PHP: ربط موقعك الحالي#

تنزيل حزمة هذه المنصة

SDK بإصدار معاينة ومثال تطبيق وشفرة مصدرية. احتفظ ببنية المجلدات بعد الاستخراج.

كل المنصات والحزمة الكاملة · فهم عملية التكامل

  1. الإعداد

    بيئة الخادم

    اضبط DRMX_SITE_ID وDRMX_SITE_KEY وDRMX_ACCESS_KEY.

  2. منح الإذنexamples/sdk/php/index.php

    عدّل findAuthorizedVideo($userId, $videoId) واقرأ معرّف المستخدم من جلستك الحالية.

  3. التضمين

    صفحة الدرس لديك

    أعد استخدام ترميز المشغّل واحتفظ بـ videoId المختار في نقطة نهاية الجلسة.

cd examples/sdk/php
composer install
# Set server credentials and DRMX_LOCAL_DEMO=1 for a localhost demo only.
php -S 127.0.0.1:8106 index.php

للاختبار الأول، استبدل your-published-content-id داخل findAuthorizedVideo. افتح http://127.0.0.1:8106/?videoId=1 واستخدم Local demo sign in. يحتاج PHP إلى دعم cURL وZIP؛ استخدم PHP 8.2 أو أحدث.

في تطبيقك، استبدل دالة العرض باستعلامك الخاص. استدعاء المستودع التالي توضيحي؛ نفّذه باستخدام قاعدة بياناتك:

function findAuthorizedVideo(string $userId, string $videoId): ?array {
    $video = customerFindAuthorizedVideo($userId, $videoId);
    if ($video === null) return null;
    return ['contentId' => $video['drmx_content_id'],
            'contentType' => 'vod', 'title' => $video['title'],
            'policy' => 'multi-tier-standard'];
}

اقرأ $userId من نظام المصادقة المعتاد على الخادم. احتفظ بفحوص الأصل والطلبات والتطابق الدقيق للمحتوى والنوع في المثال. اختر سياسة تطابق المحتوى المنشور. ينفّذ PlaybackClient طلب DRM-X؛ ولا يمكنه استنتاج قواعد المشتريات لديك.

لغات أخرى والتكامل عبر API#

يمكن لـ Go وRuby ولغات الخادم الأخرى استدعاء Playback Session API بعد التحقق من هوية المستخدم وصلاحية الوصول إلى المحتوى. لا يتضمن هذا الإصدار مكتبات SDK لـ Go أو Ruby. يُفضّل استخدام SDK المرفق لمسارات التكامل السبعة أعلاه.

التحقق قبل النشر#

  • سجّل الدخول كمستخدم مسموح له وشغّل فيديو منشورًا في متصفح مدعوم.
  • اختبر مستخدمين لم يسجّلوا الدخول وآخرين لم يدفعوا، ثم ألغِ الوصول أو اجعله منتهيًا. يجب رفض طلبات الجلسات الجديدة.
  • غيّر Content ID أو معرّف فيديو الموقع في المتصفح. يجب أن يتحقق الخادم من الاختيار الجديد.
  • اضبط أصل HTTPS العام بدقة، واحتفظ بحماية الجلسات وCSRF في إطار العمل، وعطّل شفرة الهوية التجريبية.

للجلسات وتراخيص DRM الحالية مدد صلاحية مستقلة. تُفحص تغييرات الصلاحيات عند الطلبات الجديدة؛ ولا تمحو ترخيصًا سبق إصداره.

PHP: تشغيل الموقع التجريبي الكامل#

جرّب عرض PHP المباشر · نزّل عرض PHP الكامل · SHA-256

اختر مثال PHP SDK أعلاه لإضافة تكامل صغير باستخدام Composer إلى موقعك الحالي. اختر هذا العرض الكامل للحصول على موقع جاهز للتشغيل يتضمن أمثلة لقائمة التشغيل ووكيل الرموز والتشخيص. يستخدم العرض الكامل مهايئًا مصدريًا ويتطلب PHP 8.2+ مع cURL، ولا يحتاج إلى Composer أو قاعدة بيانات. تحفظ الطريقتان بيانات الاعتماد على خادمك وتتطلبان فحص الصلاحيات الخاص بك.

  1. التشغيل الأولconfig/drmx.php

    اضبط siteId وsiteKey وaccessKey وcontent.id وcontent.type وlicensePolicyTemplate المطابق. احتفظ ببقية المصفوفة.

  2. عملاؤكsrc/bootstrap.php

    اربط authenticated_user_id() بتسجيل الدخول لديك؛ واستبدل user_can_play_content() بفحص حديث للشراء أو العضوية أو التسجيل.

  3. كتالوج الفيديو لديكsrc/bootstrap.php + public/index.php

    استبدل دوال الكتالوج التجريبية باستعلام الفيديو الحالي لديك. اعرض Content ID ونوعًا مصرّحًا بهما فقط؛ واحتفظ بفحوص الخادم لكل طلب جلسة.

# Windows, inside the extracted drmx-php-sample folder:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run-local.ps1
# macOS / Linux:
bash ./run-local.sh

افتح http://127.0.0.1:8086/ واضغط Play. يحدّد التشغيل عبر الإنترنت ملف البيان المسجّل تلقائيًا. يسجّل العرض المحلي دخول مشاهد اختبار؛ وهذا فحص أولي للتشغيل فقط.

لموقعك، اضبط demo.allowLogin وdemo.autoAuthenticateLocalhost وdemo.autoAuthenticatePublicDemo على false في config/drmx.php، أو عطّل متغيرات العملية المكافئة لها. استخدم تسجيل الدخول وفحص الصلاحيات الحاليين لديك؛ ولا تستخدم قائمة صلاحيات جلسة العرض كقاعدة بيانات للمشتريات. يعالج الملفان المرفقان public/api/playback-session.php وplayback-release.php API التشغيل؛ فاحتفظ بالتحقق من الطلبات وربطها بالمحتوى. اجعل جذر الملفات العام هو public/ واستخدم توجيه خادم الويب لديك. أداة التشغيل المرفقة مخصصة للاختبار المحلي.

دوال الكتالوج المساعدة هي demo_content_id() وdemo_content_type() وplayer_playlist() وconfigured_content(). في الموقع متعدد الفيديوهات، استخرج هذه القيم من كتالوجك الحالي؛ ويجب أن يتحقق فحص الصلاحيات من هذا الاختيار نفسه. لا تحتاج إلى مزامنة المشتريات مع جداول DRM-X. لتراخيص DRM الصادرة مدد صلاحية مستقلة؛ ويُعاد التحقق من إلغاء الوصول عند إنشاء جلسات جديدة.

راجع README المرفق للتفاصيل الكاملة عن السياسات والاستضافة ووكيل الرموز والعمل الأصلي دون اتصال. قبل الإصدار، اختبر التشغيل المصرّح به والمستخدمين المرفوضين والمُلغاة صلاحياتهم واستبدال المحتوى وStop والمتصفحات المدعومة عبر HTTPS.

Content ID واحد، أيًا كانت وسيلة التخزين#

لا تحتاج إلى رابط ملف البيان في تكامل البث لديك. مع 1aicloud أو تخزين S3 المضبوط، يستخدم DRM-X روابط الوسائط المسجّلة عند نشر الحزمة. للملفات المشفّرة المرفوعة إلى خادمك الخاص، سجّل روابط وسائط DASH/HLS في DRM-X أولًا. ثم استخدم Content ID نفسه في PHP أو ASP.NET أو أي تكامل آخر. يظل خادمك يتحقق من صلاحية المستخدم الحالي قبل طلب التشغيل.

  1. النشر أو التسجيل مرة واحدةDRM-X content settings

    تأكد من تسجيل روابط وسائط DASH/HLS المحمية الصحيحة لـ Content ID الخاص بك.

  2. ربط موقعك

    دالة التحقق من الصلاحية لديك

    تحقق من تسجيل الدخول والشراء أو العضوية أو التسجيل في الدورة. أرجع Content ID المسموح به.

  3. تشغيلDRM-X playback session

    يحدّد DRM-X الحزمة المنشورة ويُرجع ملف البيان المناسب وDRM License Token.

إذا كان ملف البيان المسجّل مفقودًا، فصحّح النشر أو تسجيل روابط الوسائط في DRM-X. لا تضف رابطًا عشوائيًا يقدّمه المتصفح كحل بديل. نقطة النهاية الأصلية للعمل دون اتصال في عرض PHP الكامل مثال متقدم منفصل؛ وتوثَّق ارتباطاتها اليدوية الحالية في advanced/OFFLINE.md.