تتيح واجهة برمجة التطبيقات الآن إمكانية وضع علامة "محتوى مخصّص للأطفال" على أحداث البث المباشر، ويحتوي مورد
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 إدراج نقاط تشغيل "الإعلانات أثناء التشغيل" على فترات تبلغ
خمس دقائق.يُرجى العِلم أنّ القيمة تحدّد الوقت بين بداية نقاط البدء المتعاقبة. وهذا يعني أنّ الفاصل الزمني لا يتم قياسه من نهاية نقطة بدء إلى بداية النقطة التالية. |