Media Services v3 مع نظرة عامة على قالب ترخيص Widevine

تمكّنك Azure Media Services من تشفير المحتوى الخاص بك باستخدام Google Widevine. توفر Media Services أيضاً خدمة لتقديم تراخيص Widevine. يمكنك استخدام واجهات برمجة تطبيقات Azure Media Services لتكوين تراخيص Widevine. عندما يحاول أحد اللاعبين تشغيل المحتوى المحمي بواسطة Widevine، يتم إرسال طلب إلى خدمة تسليم الترخيص للحصول على الترخيص. إذا وافقت خدمة الترخيص على الطلب، تقوم الخدمة بإصدار الترخيص. يتم إرساله إلى العميل ويتم استخدامه لفك تشفير المحتوى المحدد وتشغيله.

ملاحظة

Widevine غير متوفر في منطقة GovCloud.

تم تنسيق طلب ترخيص Widevine كرسالة JSON.

{
    "payload":"<license challenge>",
    "content_id": "<content id>"
    "provider": "<provider>"
    "allowed_track_types":"<types>",
    "content_key_specs":[
        {
            "track_type":"<track type 1>"
        },
        {
            "track_type":"<track type 2>"
        },
        …
    ],
    "policy_overrides":{
        "can_play":<can play>,
        "can persist":<can persist>,
        "can_renew":<can renew>,
        "rental_duration_seconds":<rental duration>,
        "playback_duration_seconds":<playback duration>,
        "license_duration_seconds":<license duration>,
        "renewal_recovery_duration_seconds":<renewal recovery duration>,
        "renewal_server_url":"<renewal server url>",
        "renewal_delay_seconds":<renewal delay>,
        "renewal_retry_interval_seconds":<renewal retry interval>,
        "renew_with_usage":<renew with usage>
    }
}

ملاحظة

يمكنك إنشاء رسالة فارغة من دون قيم، فقط "{}". ثم يتم إنشاء قالب الترخيص مع الافتراضيات. يعمل الافتراضي لمعظم الحالات. يجب أن تستخدم سيناريوهات تسليم الترخيص المستندة إلى Microsoft الإعدادات الافتراضية دائمًا. إذا كنت بحاجة إلى تعيين قيمتي "provider" و"content_id"، فيجب أن يتطابق الموفر مع بيانات اعتماد Widevine.

رسالة JSON

الاسم القيمة الوصف
payload سلسلة بترميز Base64 طلب الترخيص المرسل من قِبَل العميل.
content_id سلسلة بترميز Base64 المعرف المستخدم لاشتقاق معرّف المفتاح ومفتاح المحتوى لكل content_key_specs.track_type.
الموفر سلسلة تُستخدم للبحث عن مفاتيح المحتوى والنُهج. إذا تم استخدام تسليم مفتاح Microsoft لتسليم ترخيص Widevine، فسيتم تجاهل هذه المعلمة.
policy_name سلسلة اسم وثيقة مسجلة سابقا. ‏‏اختياري.
allowed_track_types enum SD_ONLY أو SD_HD. يتحكم في تحديد مفاتيح المحتوى المضمنة في الترخيص.
content_key_specs صفيف من هياكل JSON، راجع قسم "المواصفات الرئيسية للمحتوى". تحكم أدق حول مفاتيح المحتوى التي يجب إرجاعها. لمزيد من المعلومات، راجع قسم "مواصفات مفتاح المحتوى". يمكن تحديد واحد فقط من قيم allowed_track_types وcontent_key_specs.
use_policy_overrides_exclusively Boolean أو true أو false استخدم سمات النهج المحددة بواسطة policy_overrides، واحذف كل النُهج المخزنة مسبقًا.
policy_overrides بنية JSON، راجع قسم "تجاوزات النهج" إعدادات النهج لهذا الترخيص. في حالة وجود نهج محددة مسبقًا لهذا الأصل، يتم استخدام هذه القيم المحددة.
session_init بنية JSON، راجع قسم "تهيئة الجلسة". يتم تمرير البيانات الاختيارية إلى الترخيص.
parse_only Boolean أو true أو false تم تحليل طلب الترخيص، ولكن لم يتم إصدار أي ترخيص. ومع ذلك، يتم إرجاع القيم من طلب الترخيص في الاستجابة.

المواصفات الرئيسية للمحتوى

في حالة وجود نهج موجودة مسبقاً، فلا داعي لتحديد أي من القيم في مواصفات مفتاح المحتوى. تُستخدم النهج الموجودة مسبقاً المرتبطة بهذا المحتوى لتحديد حماية المخرجات، مثل حماية المحتوى الرقمي ذي النطاق الترددي العالي (HDCP) ونظام إدارة النسخ العام (CGMS). إذا لم يتم تسجيل نهج موجودة مسبقاً في خادم ترخيص Widevine، فيمكن لموفر المحتوى إدخال القيم في طلب الترخيص.

يجب تحديد كل قيمة content_key_specs لجميع المسارات، بغض النظر عن خيار use_policy_overrides_exclusively.

الاسم القيمة الوصف
content_key_specs. track_type سلسلة اسم نوع المسار. إذا تم تحديد content_key_specs في طلب الترخيص، فتأكد من تحديد جميع أنواع المسارات بشكل صريح. يؤدي عدم القيام بذلك إلى عدم إعادة التشغيل بعد 10 ثوانٍ.
content_key_specs
security_level
UInt32 يحدد متطلبات متانة العميل للتشغيل.
- مطلوب تشفير المربع الأبيض المستند إلى البرامج.
- مطلوب تشفير برمجيات ووحدة فك ترميز مبهمة.
- يجب إجراء عمليات المواد الأساسية والتشفير في بيئة تنفيذ موثوقة مدعومة بالأجهزة.
- يجب إجراء تشفير المحتوى وفك تشفيره ضمن بيئة تنفيذ موثوقة مدعومة بالأجهزة.
- يجب التعامل مع التشفير وفك التشفير وكل معالجات الوسائط (المضغوطة وغير المضغوطة) ضمن بيئة تنفيذ موثوقة مدعومة بالأجهزة.
content_key_specs
required_output_protection.hdc
سلسلة، واحدة من HDCP_NONE، HDCP_V1، HDCP_V2 يشير إلى ما إذا كان HDCP مطلوبًا.
content_key_specs
المفتاح
Base64-
سلسلة مشفرة
مفتاح المحتوى لاستخدامه لهذا المسار. إذا تم تحديده، فإن track_type أو key_id مطلوب. يمكن لموفر المحتوى استخدام هذا الخيار لإدخال مفتاح المحتوى لهذا المسار بدلًا من السماح لخادم ترخيص Widevine بإنشاء مفتاح أو البحث عنه.
content_key_specs.key_id سلسلة ثنائية بترميز Base64، 16 بايت معرّف فريد للمفتاح.

تجاوزات النهج

الاسم القيمة الوصف
policy_overrides.can_play Boolean أو true أو false يشير إلى أن تشغيل المحتوى مسموح به. الوضع الافتراضي خطأ.
policy_overrides.can_persist Boolean أو true أو false يشير إلى أن الترخيص قد يستمر في التخزين غير المتطاير للاستخدام دون اتصال. الوضع الافتراضي خطأ.
policy_overrides.can_renew Boolean أو true أو false يشير إلى أن تجديد هذا الترخيص مسموح به. إذا كان هذا صحيحًا، يمكن تمديد مدة الترخيص بنبض القلب. الوضع الافتراضي خطأ.
policy_overrides.license_duration_seconds int64 يشير إلى الفترة الزمنية لهذا الترخيص المحدد. تشير القيمة 0 إلى عدم وجود حد للمدة. الافتراضي هو 0.
policy_overrides.rental_duration_seconds int64 يشير إلى الفترة الزمنية أثناء السماح بالتشغيل. تشير القيمة 0 إلى عدم وجود حد للمدة. الافتراضي هو 0.
policy_overrides.playback_duration_seconds int64 تبدأ نافذة العرض الزمنية بعد بدء التشغيل خلال مدة الترخيص. تشير القيمة 0 إلى عدم وجود حد للمدة. الافتراضي هو 0.
policy_overrides.renewal_server_url سلسلة يتم توجيه جميع طلبات Heartbeat (التجديد) لهذا الترخيص إلى عنوان URL المحدد. يستخدم هذا الحقل فقط إذا كان can_renew صحيحاً.
policy_overrides.renewal_delay_seconds int64 كم ثانية بعد وقت بدء الترخيص قبل محاولة التجديد لأول مرة. يستخدم هذا الحقل فقط إذا كان can_renew صحيحًا. الافتراضي هو 0.
policy_overrides.renewal_retry_interval_seconds int64 يحدد التأخير بالثواني بين طلبات تجديد الترخيص اللاحقة، في حالة الفشل. يستخدم هذا الحقل فقط إذا كان can_renew صحيحاً.
policy_overrides.renewal_recovery_duration_seconds int64 الإطار الزمني الذي يمكن أن يستمر فيه التشغيل أثناء محاولة التجديد، ولكنه غير ناجح بسبب مشاكل الخلفية في خادم الترخيص. تشير القيمة 0 إلى عدم وجود حد للمدة. يستخدم هذا الحقل فقط إذا كان can_renew صحيحاً.
policy_overrides.renew_with_usage Boolean أو true أو false يشير إلى إرسال الترخيص للتجديد عند بدء الاستخدام. يستخدم هذا الحقل فقط إذا كان can_renew صحيحًا.

تهيئة الجلسة

الاسم القيمة الوصف
provider_session_token سلسلة بترميز Base64 يتم تمرير رمز الجلسة هذا مرة أخرى في الترخيص وهو موجود في عمليات التجديد اللاحقة. لا يستمر الرمز المميز للجلسة بعد الجلسات.
provider_client_token سلسلة بترميز Base64 رمز العميل لإرساله مرة أخرى في استجابة الترخيص. إذا احتوى طلب الترخيص على رمز عميل، فسيتم تجاهل هذه القيمة. يستمر الرمز المميز للعميل بعد جلسات الترخيص.
override_provider_client_token Boolean أو true أو false إذا كان خطأ وكان طلب الترخيص يحتوي على رمز عميل، فاستخدم الرمز المميز من الطلب حتى إذا تم تحديد رمز عميل في هذه البنية. إذا كان هذا صحيحًا، فاستخدم دائمًا الرمز المميز المحدد في هذه البنية.

ملاحظات إضافية

  • Widevine هي خدمة تقدمها شركة .Google Inc وتخضع لشروط الخدمة ونهج الخصوصية الخاصة بشركة Google، Inc.

الحصول على التعليمات والدعم

يمكنك الاتصال بخدمات الوسائط مع الأسئلة أو متابعة تحديثاتنا بإحدى الطرق التالية: