أمثلة بلغات الواجهة الخلفية
افهم مسار التشغيل المشترك وحدّد دالة التحقق التي يجب تعديلها في Node.js أو Django أو Laravel أو PHP أو ASP.NET أو Java.
موقعك يقرّر من يمكنه المشاهدة#
احتفظ بنظام تسجيل الدخول والمشتريات والعضوية والتسجيل الحالي. يزوّد تطبيقك المستخدم الحالي وContent ID المصرّح به. يستدعي SDK خدمة DRM-X ويحمّل المشغّل الفيديو المحمي.
ربط واحد بتطبيقك الحالي
أنت مسؤول عن تسجيل الدخول وقرار الصلاحية. يتولى SDK والمشغّل التشغيل المحمي.
- الاحتفاظ بتسجيل الدخول
يسجّل المشاهد الدخول عبر موقعك الحالي.
- ربط الاستعلام
يتحقق تطبيقك من الوصول ويُرجع DRM-X Content ID للدرس المختار.
- الاستدعاء عبر SDK
يستخدم SDK للخادم بيانات اعتماد الخادم لطلب تشغيل مصرّح به من DRM-X.
- عرض المشغّل
يحصل المشغّل على ترخيص DRM ويشغّل المحتوى المشفّر المنشور.
فهم معرّفَي الفيديو#
| القيمة | مثال | مصدره |
|---|---|---|
| معرّف فيديو الموقع | lesson-123 | سجل الدرس أو المنتج أو الفيديو لديك. |
| DRM-X Content ID | your-published-content-id | المحتوى المحمي المنشور في DRM-X. |
| معرّف المستخدم | customer-456 | جلسة تسجيل الدخول الموثّقة لديك. |
اربط الدرس بـ Content ID الخاص به باستخدام قاعدة بياناتك أو API أو شفرة تطبيقك الحالية. العثور على فيديو لا يثبت أن هذا المستخدم يحق له مشاهدته؛ تحقق من الصلاحية قبل إرجاعه.
الإعداد مرة واحدة، ثم التكامل#
- شفّر فيديو واحدًا وانشره وانسخ Content ID الخاص به.
- أنشئ بيانات اعتماد التشغيل للبيئة نفسها. استخدم Site ID وSite Key وAccess Key على الخادم.
- نزّل الحزمة الكاملة أو حزمة منصتك. ثبّت SDK باستخدام مدير الحزم لديك.
- اربط دالة التحقق من صلاحية المستخدم للمحتوى، ثم أضف المشغّل إلى صفحتك.
يعمل 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, Laravel | DRMX_SITE_ID, DRMX_SITE_KEY, DRMX_ACCESS_KEY |
| ASP.NET Core وFramework | DRMX_PLAYBACK_SITE_ID, DRMX_PLAYBACK_SITE_KEY, DRMX_PLAYBACK_ACCESS_KEY |
حمّل هذه القيم في عملية الخادم. Content ID قيمة خاصة بكل فيديو؛ لا تستبدل بيانات الاعتماد المشتركة أو الإعدادات العامة لتبديل المستخدمين أو الفيديوهات. أبقِ اختيار السياسة على الخادم.
PHP: ربط موقعك الحالي#
SDK بإصدار معاينة ومثال تطبيق وشفرة مصدرية. احتفظ ببنية المجلدات بعد الاستخراج.
كل المنصات والحزمة الكاملة · فهم عملية التكامل
- الإعداد
بيئة الخادم
اضبط DRMX_SITE_ID وDRMX_SITE_KEY وDRMX_ACCESS_KEY.
- منح الإذن
examples/sdk/php/index.phpعدّل findAuthorizedVideo($userId, $videoId) واقرأ معرّف المستخدم من جلستك الحالية.
- التضمين
صفحة الدرس لديك
أعد استخدام ترميز المشغّل واحتفظ بـ 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 أو قاعدة بيانات. تحفظ الطريقتان بيانات الاعتماد على خادمك وتتطلبان فحص الصلاحيات الخاص بك.
- التشغيل الأول
config/drmx.phpاضبط siteId وsiteKey وaccessKey وcontent.id وcontent.type وlicensePolicyTemplate المطابق. احتفظ ببقية المصفوفة.
- عملاؤك
src/bootstrap.phpاربط authenticated_user_id() بتسجيل الدخول لديك؛ واستبدل user_can_play_content() بفحص حديث للشراء أو العضوية أو التسجيل.
- كتالوج الفيديو لديك
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 أو أي تكامل آخر. يظل خادمك يتحقق من صلاحية المستخدم الحالي قبل طلب التشغيل.
- النشر أو التسجيل مرة واحدة
DRM-X content settingsتأكد من تسجيل روابط وسائط DASH/HLS المحمية الصحيحة لـ Content ID الخاص بك.
- ربط موقعك
دالة التحقق من الصلاحية لديك
تحقق من تسجيل الدخول والشراء أو العضوية أو التسجيل في الدورة. أرجع Content ID المسموح به.
- تشغيل
DRM-X playback sessionيحدّد DRM-X الحزمة المنشورة ويُرجع ملف البيان المناسب وDRM License Token.
إذا كان ملف البيان المسجّل مفقودًا، فصحّح النشر أو تسجيل روابط الوسائط في DRM-X. لا تضف رابطًا عشوائيًا يقدّمه المتصفح كحل بديل. نقطة النهاية الأصلية للعمل دون اتصال في عرض PHP الكامل مثال متقدم منفصل؛ وتوثَّق ارتباطاتها اليدوية الحالية في advanced/OFFLINE.md.
DRM-X 6.0