تتيح واجهة برمجة التطبيقات الآن إمكانية وضع علامة "محتوى مخصّص للأطفال" على أحداث البث المباشر، ويحتوي مورد 
liveBroadcast الآن على سمة
  تحدّد حالة "محتوى مخصّص للأطفال" لبث مباشر معيّن. تم أيضًا تعديل بنود الخدمة وسياسات المطوّرين الخاصة بخدمات واجهة برمجة تطبيقات YouTube
 في 10 كانون الثاني (يناير) 2020. للمزيد من
  المعلومات، يُرجى الاطّلاع على سجلّات المراجعات الخاصة بملف YouTube Live Streaming API Service وبنود الخدمة الخاصة بخدمات YouTube API.
يمثّل مرجع liveBroadcast حدثًا سيتم بثّه على YouTube باستخدام فيديو مباشر.
الطُرق
تتيح واجهة برمجة التطبيقات الطرق التالية لموارد liveBroadcasts:
- list
- يعرض قائمة بأحداث البث على YouTube التي تتطابق مع مَعلمات طلب البيانات من واجهة برمجة التطبيقات. التجربة الآن
- إدراج
- إنشاء بثّ التجربة الآن
- تعديل
- تعديل بث على سبيل المثال، يمكنك تعديل إعدادات البث المحدّدة في عنصر contentDetailsلمصدرliveBroadcast. جرِّب ذلك الآن.
- حذف
- لحذف بث التجربة الآن
- bind
- يربط بثًا على YouTube ببث آخر أو يزيل ربطًا حاليًا بين بث وبث آخر. يمكن ربط البث بمجموعة بث فيديو واحدة فقط، ولكن يمكن ربط مجموعة بث فيديو بأكثر من بث واحد. التجربة الآن
- transition
- يؤدي هذا الإجراء إلى تغيير حالة بث مباشر على YouTube وبدء أي عمليات مرتبطة بالحالة الجديدة. على سبيل المثال، عند تغيير حالة البث إلى testing، تبدأ منصة YouTube في نقل الفيديو إلى مجموعة بث المراقبة الخاصة بهذا البث. قبل استدعاء هذه الطريقة، عليك التأكّد من أنّ قيمة السمةstatus.streamStatusللبث المرتبط بالبث هيactive. جرِّب ذلك الآن.
- نقطة البداية
- تُستخدَم هذه الميزة لإدراج نقطة بداية في بث مباشر. قد يؤدي نقطة البدء إلى تشغيل فاصل إعلاني.
تمثيل الموارد
تعرض بنية JSON التالية تنسيق مورد liveBroadcasts:
{
  "kind": "youtube#liveBroadcast",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "thumbnails": {
      (key): {
        "url": string,
        "width": unsigned integer,
        "height": unsigned integer
      }
    },
    "scheduledStartTime": datetime,
    "scheduledEndTime": datetime,
    "actualStartTime": datetime,
    "actualEndTime": datetime,
    "isDefaultBroadcast": boolean,
    "liveChatId": string
  },
  "status": {
    "lifeCycleStatus": string,
    "privacyStatus": string,
    "recordingStatus": string,
    "madeForKids": string,
    "selfDeclaredMadeForKids": string,
  },
  "contentDetails": {
    "boundStreamId": string,
    "boundStreamLastUpdateTimeMs": datetime,
    "monitorStream": {
      "enableMonitorStream": boolean,
      "broadcastStreamDelayMs": unsigned integer,
      "embedHtml": string
    },
    "enableEmbed": boolean,
    "enableDvr": boolean,
    "recordFromStart": boolean,
    "enableClosedCaptions": boolean,
    "closedCaptionsType": string,
    "projection": string,
    "enableLowLatency": boolean,
    "latencyPreference": boolean,
    "enableAutoStart": boolean,
    "enableAutoStop": boolean
  },
  "statistics": {
    "totalChatCount": unsigned long
  },
  "monetizationDetails": {
      "cuepointSchedule": {
        "enabled": boolean,
        "pauseAdsUntil": datetime,
        "scheduleStrategy": string,
        "repeatIntervalSecs": unsigned integer,
      }
    }
  }
}الخصائص
يحدِّد الجدول التالي السمات التي تظهر في هذا المرجع:
| الخصائص | |
|---|---|
| kind | stringلتحديد نوع مورد واجهة برمجة التطبيقات. ستكون القيمة youtube#liveBroadcast. | 
| etag | etagرقم تعريف Etag لهذا المرجع. | 
| id | stringالمعرّف الذي تحدّده منصة YouTube لتحديد البث بشكل فريد | 
| snippet | objectيحتوي العنصر snippetعلى تفاصيل أساسية عن الحدث، بما في ذلك عنوانه ووصفه ووقت بدئه وانتهائه. | 
| snippet.publishedAt | datetimeالتاريخ والوقت اللذان تمت فيهما إضافة البث إلى جدول البث المباشر على YouTube. يتم تحديد القيمة بتنسيق ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). | 
| snippet.channelId | stringالمعرّف الذي يستخدمه YouTube لتحديد القناة التي تنشر البث بشكلٍ فريد | 
| snippet.title | stringعنوان البث يُرجى العلم أنّ البث يمثّل فيديو واحدًا على YouTube بالضبط. يمكنك ضبط هذا الحقل من خلال تعديل مورد البث أو من خلال ضبط حقل titleلمورد الفيديو المقابل. | 
| snippet.description | stringوصف البث كما هو الحال مع الحقل title، يمكنك ضبط هذا الحقل من خلال تعديل مورد البث أو من خلال ضبط الحقلdescriptionلمصدر الفيديو المقابل. | 
| snippet.thumbnails | objectخريطة للصور المصغّرة المرتبطة بالبث بالنسبة إلى كل عنصر مُدمَج في هذا العنصر، يكون المفتاح هو اسم الصورة المصغّرة، والقيمة هي عنصر يحتوي على معلومات أخرى عن الصورة المصغّرة. | 
| snippet.thumbnails.(key) | objectفي ما يلي قيم المفاتيح الصالحة: 
 | 
| snippet.thumbnails.(key).url | stringعنوان URL للصورة. | 
| snippet.thumbnails.(key).width | unsigned integerعرض الصورة. | 
| snippet.thumbnails.(key).height | unsigned integerارتفاع الصورة. | 
| snippet.scheduledStartTime | datetimeالتاريخ والوقت المُجدوَلان لبدء البث يتم تحديد القيمة بتنسيق ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ).  يتيح "استوديو YouTube" إنشاء بث بدون تحديد وقت بدء. في هذه الحالة، يبدأ البث عندما يبدأ صاحب القناة البث. بالنسبة إلى هذه البثّات، تتطابق قيمةdatetimeمع وقت بداية حقبة نظام التشغيل Unix، ولا يمكن تغيير هذه القيمة باستخدام واجهة برمجة التطبيقات أو في "استوديو اليوتيوب". | 
| snippet.scheduledEndTime | datetimeالتاريخ والوقت المحدَّد لانتهاء البث يتم تحديد القيمة بتنسيق ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ). إذا لم يحدِّد موردliveBroadcastقيمة لهذه السمة، سيتم جدولة البث لمواصلته إلى أجل غير مسمى. وبالمثل، إذا لم تحدّد قيمة لهذا السمة، سيتعامل YouTube مع البث كما لو كان سيستمر إلى أجل غير مسمى. | 
| snippet.actualStartTime | datetimeالتاريخ والوقت اللذان بدأ فيهما البث فعليًا. لا تتوفّر هذه المعلومات إلا بعد أن تصبح حالة البث live. يتم تحديد القيمة بتنسيق ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). | 
| snippet.actualEndTime | datetimeالتاريخ والوقت اللذان انتهى فيهما البث فعليًا. لا تتوفّر هذه المعلومات إلا بعد أن تصبح حالة البث complete. يتم تحديد القيمة بتنسيق ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). | 
| snippet.isDefaultBroadcast | boolean
          سيتم إيقاف هذه السمة نهائيًا في 1 أيلول (سبتمبر) 2020 أو بعد هذا التاريخ. وفي هذه الحالة، ستوقف منصة YouTube
          إنشاء بث وبث تلقائيَين عند تفعيل ميزة البث المباشر
          في القناة. يمكنك الاطّلاع على الإشعار عن الإيقاف نهائيًا للحصول على مزيد من التفاصيل.
        تشير هذه السمة إلى ما إذا كان هذا البث هو البث التلقائي. طريقة عمل البثّات التلقائية عندما يتم تفعيل ميزة البث المباشر في قناة على YouTube، تنشئ منصة YouTube بثًا تلقائيًا وبثًا تلقائيًا للقناة. يحدّد البث كيفية إرسال مالك القناة لفيديو مباشر إلى YouTube، ويشير البث إلى الطريقة التي يمكن للمستخدمين من خلالها مشاهدة البث التلقائي. يمكن لصاحب القناة استخدام الطريقتَين liveStreams.listوliveBroadcasts.listلتحديد هذه الموارد.عندما تبدأ قناة ببث فيديو إلى البث التلقائي، يظهر الفيديو في البث التلقائي للقناة. عند انتهاء البث المباشر، تحوّل منصة YouTube البث المكتمل إلى فيديو على YouTube وتمنحه رقم تعريف. بعد اكتمال عملية التحويل، يتم تضمين الفيديو في قائمة الفيديوهات المحمَّلة على القناة. لا يتوفّر الفيديو بعد انتهاء البث مباشرةً، ويرتبط طول فترة التأخير بمدة البث الفعلية. | 
| snippet.liveChatId | stringمعرّف المحادثة المباشرة في البث على YouTube باستخدام هذا المعرّف، يمكنك استخدام طرق مورد liveChatMessageلاسترداد رسائل المحادثة أو إدراجها أو حذفها. يمكنك أيضًا إضافة مشرفين إلى المحادثة أو إزالتهم، وحظر المستخدمين من المشاركة في المحادثات المباشرة، أو إزالة الحظر الحالي. | 
| status | objectيحتوي العنصر statusعلى معلومات عن حالة الحدث. | 
| status.lifeCycleStatus | stringحالة البث يمكن تعديل الحالة باستخدام طريقة liveBroadcasts.transitionفي واجهة برمجة التطبيقات.القيم الصالحة لهذه السمة هي: 
 | 
| status.privacyStatus | stringحالة خصوصية البث يُرجى العلم أنّ البث يمثّل فيديو واحدًا على YouTube بالضبط، لذا تكون إعدادات الخصوصية متطابقة مع تلك المسموح بها للفيديوهات. بالإضافة إلى ذلك، يمكنك ضبط هذا الحقل من خلال تعديل مورد البث أو من خلال ضبط الحقل privacyStatusلمورد الفيديو المقابل.في ما يلي القيم الصالحة لهذه السمة: 
 | 
| status.recordingStatus | stringحالة تسجيل البث. في ما يلي القيم الصالحة لهذه السمة: 
 | 
| status.madeForKids | booleanتشير هذه القيمة إلى ما إذا كان البث موجهًا إلى الأطفال. قيمة هذه السمة للقراءة فقط. | 
| status.selfDeclaredMadeForKids | booleanفي طلب liveBroadcasts.insert، تسمح هذه السمة لمالك القناة بتصنيف البث على أنّه
        موجّه للأطفال. في طلبliveBroadcasts.list، لا يتم عرض قيمة السمة إلا إذا فوّض مالك القناة طلب واجهة برمجة التطبيقات. | 
| contentDetails | objectيحتوي العنصر contentDetailsعلى معلومات عن محتوى الفيديو الخاص بالحدث، مثل ما إذا كان يمكن عرض المحتوى في مشغّل فيديو مضمّن أو ما إذا كان سيتم أرشفته وبالتالي سيكون متاحًا للعرض بعد انتهاء الحدث. | 
| contentDetails.boundStreamId | stringتُحدِّد هذه القيمة بشكلٍ فريد live streamالمرتبط بالبث. | 
| contentDetails.boundStreamLastUpdateTimeMs | datetimeتاريخ ووقت آخر تعديل على البث المباشر المُشار إليه بالعنصر boundStreamId | 
| contentDetails.monitorStream | objectيحتوي عنصر monitorStreamعلى معلومات عن بث المراقبة الذي يمكن للمذيع استخدامه لمراجعة محتوى الحدث قبل عرض بث البث علنًا. | 
| contentDetails.monitorStream.enableMonitorStream | booleanتحدد هذه القيمة ما إذا كان بث المراقبة مفعّلاً للبث. إذا كان بث المراقبة مفعّلاً، ستبث منصة YouTube محتوى الحدث على بث خاص مخصّص للمذيع فقط. يمكن للمذيع استخدام البث لمراجعة محتوى الحدث وتحديد الأوقات المثالية لإدراج نقاط البدء. يجب ضبط هذه القيمة على trueإذا كنت تريد استخدام مرحلةtestingلبثك أو إذا كنت تريد تأخير البث لحدثك. بالإضافة إلى ذلك، إذا كانت قيمة هذا السمة هيtrue، عليك نقل البث إلى الحالةtestingقبل أن تتمكّن من نقله إلى الحالةlive. (إذا كانت قيمة السمة هيfalse، لا يمكن أن يتضمّن البث مرحلةtesting، لذا يمكنك نقل البث مباشرةً إلى الحالةlive).عند update a broadcast، يجب ضبط هذه السمة إذا كان طلب البيانات من واجهة برمجة التطبيقات يتضمّن الجزءcontentDetailsفي قيمة المَعلمةpart. ومع ذلك، عندinsert a broadcast، تكون السمة اختيارية ولها قيمة تلقائية هيtrue.ملاحظة مهمة: لا يمكن تعديل هذا السمة بعد أن يصبح البث في الحالة testingأوlive. | 
| contentDetails.monitorStream.broadcastStreamDelayMs | unsigned integerإذا ضبطت السمة enableMonitorStreamعلىtrue، تحدّد هذه السمة طول مدة تأخّر البث المباشر.عند update a broadcast، يجب ضبط هذه السمة إذا كان طلب البيانات من واجهة برمجة التطبيقات يتضمّن الجزءcontentDetailsفي قيمة المَعلمةpart. ومع ذلك، عندinsert a broadcast، تكون السمة اختيارية ولها قيمة تلقائية هي0. تشير هذه القيمة إلى أنّ البث المباشر لا يتضمّن أي تأخير. ملاحظة: لا يمكن تعديل هذه السمة بعد أن يصبح البث في الحالةtestingأوlive. | 
| contentDetails.monitorStream.embedHtml | stringرمز HTML الذي يضمِّن مشغّلاً لتشغيل بث الشاشة | 
| contentDetails.enableEmbed | booleanيشير هذا الإعداد إلى ما إذا كان يمكن تشغيل الفيديو البث في مشغّل مضمّن. إذا اخترت أرشفة الفيديو (باستخدام السمة enableArchive)، سيتم تطبيق هذا الإعداد أيضًا على الفيديو المؤرشف.عند update a broadcast، يجب ضبط هذه السمة إذا كان طلب البيانات من واجهة برمجة التطبيقات يتضمّن الجزءcontentDetailsفي قيمة المَعلمةpart. ومع ذلك، عندinsert a broadcast، تكون السمة اختيارية ولها قيمة تلقائية هيtrue.ملاحظة: لا يمكن تعديل هذه السمة بعد أن يصبح البث في الحالة testingأوlive. | 
| contentDetails.enableDvr | booleanيحدِّد هذا الإعداد ما إذا كان بإمكان المشاهدين الوصول إلى عناصر التحكّم في جهاز التسجيل الرقمي أثناء مشاهدة الفيديو. تتيح عناصر التحكّم في ميزة "تسجيل الفيديوهات" للمشاهد التحكّم في تجربة تشغيل الفيديو من خلال إيقافه مؤقتًا أو إرجاعه أو تقديمه بسرعة. القيمة التلقائية لهذا السمة هي true.عند update a broadcast، يجب ضبط هذه السمة إذا كان طلب البيانات من واجهة برمجة التطبيقات يتضمّن الجزءcontentDetailsفي قيمة المَعلمةpart. ومع ذلك، عندinsert a broadcast، تكون السمة اختيارية ولها قيمة تلقائية هيtrue.ملاحظة مهمة: يجب ضبط القيمة على trueوضبط قيمة السمةenableArchiveعلىtrueأيضًا إذا كنت تريد إتاحة التشغيل فور انتهاء البث. بالإضافة إلى ذلك، لا يمكن تعديل هذه السمة بعد أن يصبح البث في الحالةtestingأوlive. | 
| contentDetails.recordFromStart | booleanيشير هذا الإعداد إلى ما إذا كانت YouTube ستبدأ تلقائيًا بتسجيل البث بعد أن تتغيّر حالة الحدث إلى "بث مباشر". القيمة التلقائية لهذه السمة هي true، ولا يمكن ضبطها علىfalseإلا إذا كان مسموحًا للقناة المُشغّلة ببث المحتوى بإيقاف التسجيلات للبث المباشر.إذا لم تكن قناتك تملك الإذن بإيقاف التسجيلات، وحاولت إدراج بث مع ضبط السمة recordFromStartعلىfalse، ستعرض واجهة برمجة التطبيقات خطأForbidden. بالإضافة إلى ذلك، إذا لم تكن قناتك تملك هذا الإذن وحاولت تعديل بث لضبط السمةrecordFromStartعلىfalse، ستعرض واجهة برمجة التطبيقات خطأmodificationNotAllowed.عند update a broadcast، يجب ضبط هذه السمة إذا كان طلب البيانات من واجهة برمجة التطبيقات يتضمّن الجزءcontentDetailsفي قيمة المَعلمةpart. ومع ذلك، عندinsert a broadcast، تكون السمة اختيارية ولها قيمة تلقائية هيtrue.ملاحظة مهمة: يجب أيضًا ضبط قيمة السمة enableDvrعلىtrueإذا كنت تريد أن يكون التشغيل متاحًا فور انتهاء البث. إذا ضبطت قيمة هذه السمة علىtrueولكنّك لم تضبط أيضًا السمةenableDvrعلىtrue، قد يكون هناك تأخير لمدة يوم تقريبًا قبل أن يصبح الفيديو المؤرشف متاحًا للتشغيل.ملاحظة: لا يمكن تعديل هذه السمة بعد أن يصبح البث في الحالة testingأوlive. | 
| contentDetails.enableClosedCaptions | booleanتم إيقاف هذه السمة نهائيًا اعتبارًا من 17 كانون الأول (ديسمبر) 2015. استخدِم السمة contentDetails.closedCaptionsTypeبدلاً من ذلك.يشير هذا الإعداد إلى ما إذا كان خيار "الترجمة والشرح" عبر HTTP POST مفعّلاً لهذا البث. بالنسبة إلى عملاء واجهة برمجة التطبيقات الذين يستخدمون هذا الموقع حاليًا: 
 | 
| contentDetails.closedCaptionsType | stringملاحظة: تحلّ هذه السمة مكان سمة contentDetails.enableClosedCaptions.تشير هذه السمة إلى ما إذا كانت ميزة الترجمة والشرح مفعّلة في البث، وإذا كان الأمر كذلك، إلى نوع الترجمة والشرح الذي تقدّمه: 
 | 
| contentDetails.projection | stringيشير ذلك إلى تنسيق العرض لهذا البث. القيمة التلقائية للسمة هي rectangular.القيم الصالحة لهذه السمة هي: 
 | 
| contentDetails.enableLowLatency | booleanيشير هذا الحقل إلى ما إذا كان يجب ترميز هذا البث لتوفير بث بوقت استجابة منخفض. يمكن أن تقلّل عملية البث ذات الاستجابة المنخفضة من الوقت الذي يستغرقه ظهور الفيديو للمستخدمين الذين يشاهدون البث، إلا أنّها يمكن أن تؤثّر أيضًا في درجة الدقة لدى مشاهدي البث. | 
| contentDetails.latencyPreference | stringيشير إلى إعداد وقت الاستجابة الذي سيتم استخدامه لهذا البث. يمكن استخدام هذه السمة بدلاً من enableLowLatencyالتي لا تتيحultraLow.يمكن أن يقلل البث بوقت استجابة منخفض من الوقت الذي يستغرقه ظهور الفيديو للمستخدمين الذين يشاهدون البث، إلا أنّه يمكن أن يؤثر أيضًا في سلاسة التشغيل. يقلّل البث بوقت استجابة منخفض جدًا من الوقت الذي يستغرقه ظهور الفيديو للمشاهدين، ما يسهّل التفاعل معهم، ولكنّه لا يتيح استخدام الترجمة والشرح أو الدقة الأعلى من 1080p. في ما يلي القيم الصالحة لهذه السمة: 
 | 
| contentDetails.enableAutoStart | booleanيشير إلى ما إذا كان يجب بدء هذا البث تلقائيًا عند بدء بث الفيديو على live streamالمرتبط. | 
| contentDetails.enableAutoStop | booleanيشير هذا الحقل إلى ما إذا كان يجب إيقاف هذا البث تلقائيًا بعد دقيقة تقريبًا من إيقاف صاحب القناة لبث الفيديو في بث الفيديو المرتبط. | 
| statistics | objectيحتوي عنصر statisticsعلى إحصاءات ذات صلة بالبث المباشر. يمكن أن تتغيّر قيم هذه الإحصاءات أثناء البث، ولا يمكن استردادها إلا عندما يكون البث مباشرًا. | 
| statistics.totalChatCount | unsigned longإجمالي عدد رسائل المحادثة المباشرة المرتبطة بالبث تظهر السمة وقيمتها إذا كان البث مرئيًا للمستخدم وتم تفعيل ميزة المحادثة المباشرة فيه وكان يتضمّن رسالة واحدة على الأقل. يُرجى العِلم أنّ هذه السمة لن تحدّد قيمة بعد انتهاء البث. وبالتالي، لن يحدِّد هذا السمة عدد رسائل المحادثة في فيديو أرشيف لبث مباشر مكتمل. | 
| monetizationDetails | objectيحتوي العنصر monetizationDetailsعلى معلومات حول
      تفاصيل تحقيق الربح من البث، مثل ما إذا كان قد تم تفعيل أداة التشغيل التلقائي للإعلانات أو تأخّر إدراج الإعلانات أثناء التشغيل. | 
| monetizationDetails.cuepointSchedule | objectيحدِّد عنصر cuepointScheduleإعدادات التشغيل الآلي للإعلانات
        للبث. | 
| monetizationDetails.cuepointSchedule.enabled | booleanتحدد هذه القيمة ما إذا كان سيتم إدراج الإعلانات تلقائيًا في البث. إذا كانت القيمة هي true، سيُدرج YouTube تلقائيًا "الإعلانات أثناء التشغيل" في البث. سيتم تحديد جدول عرض الإعلانات بالاستناد إلى قيمة الحقول الأخرى في كائنmonetizationDetails.cuepointSchedule. | 
| monetizationDetails.cuepointSchedule.pauseAdsUntil | datetimeتشير هذه القيمة إلى أنّه لا يجوز لمنصة YouTube إدراج "الإعلانات أثناء التشغيل" في البث إلا بعد تحديد التاريخ والوقت المحدّدَين. يتم تحديد القيمة بالتنسيق ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) . يجب ضبط القيمة على تاريخ ووقت مستقبليَين لإيقاف الإعلانات مؤقتًا، ويمكن أيضًا ضبط قيمة الحقل على تاريخ ووقت مستقبليَين قريبَين لإلغاء إيقاف الإعلانات مؤقتًا بعد مرور الوقت. | 
| monetizationDetails.cuepointSchedule.scheduleStrategy | stringتحدِّد هذه القيمة الاستراتيجية التي يجب أن تتّبعها YouTube لجدولة نقاط البدء. في ما يلي القيم الصالحة : 
 | 
| monetizationDetails.cuepointSchedule.repeatIntervalSecs | unsigned integerتُحدِّد هذه القيمة الفاصل الزمني بين عمليات إدراج الإعلانات التلقائية أثناء البث، وذلك بالثواني. على سبيل المثال، إذا كانت القيمة هي 300، يمكن لمنصة YouTube إدراج نقاط تشغيل "الإعلانات أثناء التشغيل" على فترات تبلغ
        خمس دقائق.يُرجى العِلم أنّ القيمة تحدّد الوقت بين بداية نقاط البدء المتعاقبة. وهذا يعني أنّ الفاصل الزمني لا يتم قياسه من نهاية نقطة بدء إلى بداية النقطة التالية. |