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