تتيح واجهة برمجة التطبيقات الآن إمكانية وضع علامة "محتوى مخصّص للأطفال" على أحداث البث المباشر، ويحتوي مورد
liveBroadcast
الآن على سمة
تحدّد حالة "محتوى مخصّص للأطفال" لبث مباشر معيّن. تم أيضًا تعديل بنود الخدمة وسياسات المطوّرين الخاصة بخدمات واجهة برمجة تطبيقات YouTube
في 10 كانون الثاني (يناير) 2020. لمزيد من
المعلومات، يُرجى الاطّلاع على سجلّات المراجعات الخاصة بملف YouTube Live Streaming API Service وبنود خدمة YouTube API Services.
يمثّل مورد 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 تحدّد هذه الإعدادات ما إذا كان بإمكان المشاهدين الوصول إلى عناصر التحكّم في DVR أثناء مشاهدة الفيديو. تتيح عناصر التحكّم في ميزة "تسجيل الفيديوهات" للمشاهد التحكّم في تجربة تشغيل الفيديو من خلال إيقافه مؤقتًا أو إرجاعه أو تقديمه سريعًا. القيمة التلقائية لهذه السمة هي 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 إدراج نقاط تشغيل "الإعلانات أثناء التشغيل" على فترات تبلغ
خمس دقائق.يُرجى العِلم أنّ القيمة تحدّد الوقت بين بداية نقاط البدء المتعاقبة. وهذا يعني أنّ الفاصل الزمني لا يتم قياسه من نهاية نقطة بدء إلى بداية النقطة التالية. |