LiveStreams

يحتوي مورد liveStream على معلومات حول بث الفيديو الذي تنقله إلى YouTube. وتوفر ساحة المشاركات المحتوى الذي سيتم بثه لمستخدمي YouTube. بعد الإنشاء، يمكن ربط مورد liveStream بمورد liveBroadcast واحد أو أكثر.

الطُرق

تتوافق واجهة برمجة التطبيقات مع الطرق التالية لموردَين (liveStreams):

list
عرض قائمة بتدفقات الفيديو المطابقة لمعلمات طلب البيانات من واجهة برمجة التطبيقات. التجربة الآن
إدراج
لإنشاء بث فيديو. يمكّنك البث من إرسال الفيديو إلى YouTube، مما يتيح لك بث الفيديو بعد ذلك إلى جمهورك. التجربة الآن
تحديث
لتحديث بث فيديو. إذا تعذّر تحديث المواقع التي تريد تغييرها، عليك إنشاء مصدر بيانات جديد باستخدام الإعدادات المناسبة. التجربة الآن
حذف
حذف بث فيديو. التجربة الآن

تمثيل الموارد

تعرض بنية JSON التالية تنسيق مورد liveStreams:

{
 
"kind": "youtube#liveStream",
 
"etag": etag,
 
"id": string,
 
"snippet": {
   
"publishedAt": datetime,
   
"channelId": string,
   
"title": string,
   
"description": string,
   
"isDefaultStream": boolean
 
},
 
"cdn": {
   
"ingestionType": string,
   
"ingestionInfo": {
     
"streamName": string,
     
"ingestionAddress": string,
     
"backupIngestionAddress": string
   
},
   
"resolution": string,
   
"frameRate": string
 
},
 
"status": {
   
"streamStatus": string,
   
"healthStatus": {
     
"status": string,
     
"lastUpdateTimeSeconds": unsigned long,
     
"configurationIssues": [
       
{
         
"type": string,
         
"severity": string,
         
"reason": string,
         
"description": string
       
}
     
]
   
}
 
},
 
"contentDetails": {
   
"closedCaptionsIngestionUrl": string,
   
"isReusable": boolean
 
}
}

أماكن إقامة

يحدد الجدول التالي الخصائص التي تظهر في هذا المورد:

أماكن إقامة
kind string
تحدد نوع مورد واجهة برمجة التطبيقات. ستكون القيمة youtube#liveStream.
etag etag
Etag لهذا المورد.
id string
المعرّف الذي يعيّنه YouTube لتعريف البث بشكل فريد.
snippet object
يحتوي الكائن snippet على تفاصيل أساسية عن البث، بما في ذلك القناة والعنوان والوصف.
snippet.publishedAt datetime
يشير إلى تاريخ إنشاء البث ووقته. يتم تحديد القيمة بتنسيق ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
المعرّف الذي يستخدمه YouTube لتحديد القناة التي تبث البث بشكل فريد
snippet.title string
عنوان البث يجب أن يتراوح طول القيمة بين حرف واحد و128 حرفًا.
snippet.description string
وصف مجموعة البث لا يمكن أن تكون القيمة أطول من 10000 حرف.
snippet.isDefaultStream boolean
سيتم إيقاف هذا الموقع الإلكتروني في 1 أيلول (سبتمبر) 2020 أو بعده. في ذلك الوقت، سيتوقّف YouTube عن إنشاء بث تلقائي وبث تلقائي عندما تكون القناة مؤهلة للبث المباشر. يُرجى الاطّلاع على إعلان الإيقاف للحصول على مزيد من التفاصيل.
تشير هذه السمة إلى ما إذا كان هذا البث هو البث التلقائي للقناة أم لا.

آلية عمل مجموعات البث التلقائية

عند تفعيل قناة على YouTube لبث مباشر، ينشئ YouTube بثًا تلقائيًا وبثًا تلقائيًا للقناة. يحدّد البث كيف يمكن لمالك القناة إرسال فيديو مباشر إلى YouTube، ويمثّل البث طريقة رؤية المشاهدين للبث التلقائي. يمكن لمالك القناة استخدام الطريقتين liveStreams.list وliveBroadcasts.list لتحديد هذه الموارد.

ثمة بث تلقائي لقناة معيّنة إلى أجل غير مسمى، وليس له وقت بدء أو وقت انتهاء مرتبط بها، ولا يمكن حذفه. على مالك القناة فقط البدء في إرسال وحدات بت للفيديو ويستمر البث تلقائيًا.

عند انتهاء البث، يحوّل YouTube البث الكامل إلى فيديو على YouTube ويحدّد معرّف الفيديو على YouTube. بعد اكتمال الإحالة الناجحة، يتم تضمين الفيديو في قائمة الفيديوهات التي تم تحميلها على القناة. لا يكون الفيديو متاحًا على الفور بعد انتهاء البث، ويكون طول مدة التأخير مرتبطًا بالطول الفعلي للبث.
cdn object
يعرّف الكائن cdn إعدادات شبكة عرض المحتوى في البث المباشر (CDN). توفر هذه الإعدادات تفاصيل حول الطريقة التي تبث بها المحتوى على YouTube.
cdn.format string
تم إيقاف هذا الموقع الإلكتروني منذ 18 نيسان (أبريل) 2016، ولن يكون متاحًا اعتبارًا من 17 آب (أغسطس) 2020. وإذا تعذّر تنفيذ هذا الطلب، سيتعذّر تنفيذ الطلبات.

بدلاً من ذلك، استخدِم السمتَين cdn.frameRate وcdn.resolution لتحديد عدد اللقطات في الثانية ودرجة الدقة بشكل منفصل.
cdn.ingestionType string
الطريقة أو البروتوكول المستخدَم لنقل الفيديو المضمَّن.

القيم الصالحة لهذا الموقع هي:
  • dash
  • hls
  • rtmp (يشمل ذلك بروتوكول RTMPS)
cdn.ingestionInfo object
يحتوي كائن ingestionInfo على معلومات يوفّرها YouTube لتتمكّن من نقلها إلى YouTube.
cdn.ingestionInfo.streamName string
اسم مجموعة البث التي يعيّنها YouTube إلى الفيديو المضمّن.
cdn.ingestionInfo.ingestionAddress string
عنوان URL الأساسي لعرض المحتوى الذي يجب استخدامه لبث الفيديو على YouTube في حال استخدام بروتوكول RTMP أو DASH أو HLS يجب بث الفيديو إلى عنوان URL هذا.

بناءً على التطبيق أو الأداة التي تستخدمها لترميز بث الفيديو، قد تحتاج إلى إدخال عنوان URL للبث واسم البث بشكل منفصل أو قد تحتاج إلى دمجهما بالتنسيق التالي:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
عنوان URL للعرض الاحتياطي الذي يجب استخدامه لبث الفيديو على YouTube في حال استخدام بروتوكول RTMP أو DASH أو بروتوكول HLS. ويمكنك بث المحتوى الذي ترسله إلى ingestionAddress إلى عنوان URL هذا في آنٍ واحد.
cdn.ingestionInfo.rtmpsIngestionAddress string
عنوان URL للعرض الأساسي الذي يجب استخدامه لبث الفيديو على YouTube في حال استخدام بروتوكول RTMPS عليك بث الفيديو إلى عنوان URL هذا.

استنادًا إلى التطبيق أو الأداة التي تستخدمها لترميز بث الفيديو، قد تحتاج إلى إدخال عنوان URL للبث واسم البث بشكل منفصل أو قد تحتاج إلى دمجهما بالتنسيق التالي:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
عنوان URL للعرض الاحتياطي الذي يجب استخدامه لبث الفيديو إلى YouTube في حال استخدام بروتوكول RTMPS
cdn.resolution string
درجة دقة بيانات الفيديو الوارد.

القيم الصالحة لهذا الموقع هي:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: استخدِم هذا الإعداد للإشارة إلى أنّ منصة YouTube سترصد تلقائيًا درجة دقة الفيديو الذي تم بثّه. يجب أيضًا ضبط cdn.frameRate على variable.
    يمكنك زيارة "مركز مساعدة YouTube" للاطّلاع على إعدادات برنامج الترميز المقترَحة.
cdn.frameRate string
معدل عرض الإطارات لبيانات الفيديو الواردة.

القيم الصالحة لهذا الموقع هي:
  • 30fps
  • 60fps
  • variable: استخدم هذا الإعداد للإشارة إلى أنه يجب على YouTube اكتشاف معدل عرض الإطارات للفيديو الذي يتم بثه تلقائيًا. يجب أيضًا ضبط cdn.resolution على variable.
    يمكنك زيارة "مركز مساعدة YouTube" للاطّلاع على إعدادات برنامج الترميز المقترَحة.
status object
يحتوي الكائن status على معلومات حول حالة البث المباشر.
status.streamStatus string
حالة البث:

القيم الصالحة لهذا الموقع هي:
  • active – ساحة المشاركات في حالة نشطة؛ مما يعني أن المستخدم يتلقى البيانات عبر ساحة المشاركات.
  • created – تم إنشاء ساحة المشاركات ولكنها لا تحتوي على إعدادات CDN صالحة.
  • error – هناك حالة خطأ في ساحة المشاركات.
  • inactive – ساحة المشاركات في حالة غير نشطة، مما يعني أن المستخدم لا يتلقى بيانات عبر البث.
  • ready – يتضمن البث المباشر إعدادات شبكة عرض محتوى (CDN) صالحة.
status.healthStatus object
يحتوي هذا العنصر على معلومات عن حالة سلامة البث المباشر، ويمكن استخدامها لتحديد مشاكل البث وتشخيصها وحلّها.
status.healthStatus.status string
رمز حالة هذا البث:

القيم الصالحة لهذا الموقع هي:
  • good: ما مِن مشاكل ضبط تبلغ درجة الخطورة warning أو أسوأ منها.
  • ok – ليست هناك مشاكل في الإعداد تكون درجة الخطورة لها error.
  • bad – حدثت مشكلة في ساحة المشاركات وتكون درجة الخطورة هي error.
  • noData – لا تتوفّر لدى خوادم البث المباشر على YouTube أيّ معلومات حول حالة البث المباشر.
status.healthStatus.lastUpdateTimeSeconds unsigned long
آخر مرة تم فيها تعديل الحالة الصحية لمجموعة البث. تعكس القيمة طابعًا زمنيًا لـ UNIX بالثواني.
status.healthStatus.configurationIssues[] list
يحتوي هذا العنصر على قائمة بمشاكل الضبط التي تؤثّر في البث.
status.healthStatus.configurationIssues[].type string
تحدّد هذه السمة نوع الخطأ الذي يؤثر في البث.
مشكلات التهيئة
audioBitrateHigh
السبب:تحقق من إعدادات الصوت
الوصف:يبلغ معدل البت الحالي للبث الصوتي %(actual) أعلى من معدل البت الموصى به. ننصحك باستخدام معدل نقل بيانات للبث الصوتي يبلغ %(expected)s.
audioBitrateLow
السبب:تحقق من إعدادات الصوت
الوصف:إنّ معدل البت الحالي للبث الصوتي (%(actual)s) أقل من المعدل الموصى به. ننصحك باستخدام معدل نقل بيانات للبث الصوتي يبلغ %(expected)s.
audioBitrateMismatch
السبب:تحقق من البث الثانوي
الوصف:في التكوين الحالي، تختلف معدلات بت الصوت لبث الفيديو الأساسي عن معدلات بت الصوت لبث الفيديو الاحتياطي. يجب إعداد مجموعات البث وتعيين معدل البت للصوت نفسه.
audioCodec
السبب:تحقق من إعدادات الصوت
الوصف:تمّ ترميز البث الصوتي باستخدام برنامج ترميز غير متوافق. يُرجى ضبط برنامج متوافق لترميز البث الصوتي (مثلاً AAC أو MP3).
audioCodecMismatch
السبب:البث الثانوي سيئ
الوصف:في التكوين الحالي، يستخدم بث الفيديو الأساسي وبث الفيديو الاحتياطي برامج مختلفة لترميز الصوت. يجب تهيئة مجموعات البث لاستخدام برنامج ترميز الصوت نفسه.
audioSampleRate
السبب:تحقق من إعدادات الصوت
الوصف:يبلغ معدل العينة الحالي %(actual). ويُذكر أن معدلات العينات الموصى بها هي 44,1 كيلو هرتز و48 كيلو هرتز.
audioSampleRateMismatch
السبب:البث الثانوي سيئ
الوصف:في التكوين الحالي، تختلف معدلات عينة الصوت لبث الفيديو الأساسي عن معدلات عينة الصوت لبث الفيديو المباشر. يجب إعداد مجموعات البث وتعيين معدل عينة الصوت نفسه.
audioStereoMismatch
السبب:البث الثانوي سيئ
الوصف:في تهيئة الإعدادات الحالية، يستخدم بث الفيديو الأساسي وبث الفيديو الاحتياطي قنوات صوتية مختلفة. عليك تعيين القناة الصوتية نفسها لمجموعات البث.
audioTooManyChannels
السبب:تحقق من إعدادات الصوت
الوصف:يحتوي المقطع الصوتي على أكثر من قناتين، ولكن تتوفر قناة واحدة (أحادية) أو قناتين (استريو) فقط. يُرجى تصحيح عدد القنوات الصوتيّة.
badContainer
السبب:إعدادات الفيديو غير صحيحة
الوصف:يُرجى تغيير تنسيق حاوية الفيديو. تنسيق الحاوية الحالي غير صحيح لهذه التهيئة.
bitrateHigh
السبب:تحقق من إعدادات الفيديو
الوصف:إنّ معدل البت الحالي للبث (%(actual)s) أعلى من معدل البت الموصى به. ننصحك باستخدام معدل نقل بيانات للبث يبلغ %(expected)s.
bitrateLow
السبب:إخراج الفيديو منخفض
الوصف:إنّ معدل البت الحالي للبث (%(actual)s) أقل من معدل البت الموصى به. ننصحك باستخدام معدل نقل بيانات للبث يبلغ %(expected)s.
framerateMismatch
السبب:تحقق من البث الثانوي
الوصف:في التكوين الحالي، تختلف معدلات عرض الإطارات لبث الفيديو الأساسي عن معدلات عرض الإطارات الاحتياطية. يجب تكوين مجموعات البث وتعيين معدل عرض الإطارات نفسه.
frameRateHigh
السبب:عدد اللقطات مرتفع
الوصف:معدل عرض الإطارات الحالي مرتفع جدًا. يُرجى ضبط معدل عرض الإطارات على %(framerate)s إطار في الثانية أو أقل.
gopMismatch
السبب:البث الثانوي سيئ
الوصف:في التكوين الحالي، تختلف أوقات عرض الإطارات الأساسية لبث الفيديو الاحتياطي عن معدل عرض الإطارات الأساسية. يجب ضبط مجموعات البث على فترة تكرار الإطارات الأساسية نفسها.
gopSizeLong
السبب:إعدادات الفيديو غير صحيحة
الوصف:يُرجى ضبط فترة تكرار الإطارات الرئيسية على أربع ثوانٍ أو أقل. إنّ فترة تكرار إرسال الإطارات الأساسيّة أقل من اللازم حاليًا، ما سيؤدي إلى حدوث تخزين مؤقت. يبلغ معدل تكرار الإطارات الأساسية الحالي %(actual_gop).1f ثانية. يُرجى العِلم أنّ أخطاء العرض قد تؤدي إلى إنشاء مجموعة صور (GOP) بأحجام غير صحيحة.
gopSizeOver
السبب:تحقق من إعدادات الفيديو
الوصف:يُرجى ضبط فترة تكرار الإطارات الرئيسية على أربع ثوانٍ أو أقل. إنّ فترة تكرار إرسال الإطارات الرئيسية أقلّ من اللازم، ما قد يؤدي إلى حدوث تخزين مؤقت. يبلغ معدل تكرار الإطارات الأساسية الحالي %(actual_gop).1f ثانية. يُرجى العِلم أنّ أخطاء العرض قد تؤدي إلى إنشاء مجموعة صور (GOP) بأحجام غير صحيحة.
gopSizeShort
السبب:تحقق من إعدادات الفيديو
الوصف:إنّ حجم مجموعة الصور صغير جدًا ما قد يؤدي إلى خفض جودة الصورة. تبلغ فترة تكرار الإطارات الرئيسية المقترحة أربع ثوانٍ. يبلغ معدل تكرار الإطارات الأساسية الحالي %(actual_gop).1f ثانية. ويمكن أن تؤدي أخطاء العرض إلى إنشاء GOP بأحجام غير صحيحة.
multipleAudioStreams
السبب:تحقق من إعدادات الصوت
الوصف:تتضمن مجموعة البث مقاطع صوتية متعددة في حين يجب أن تتضمن بثًا صوتيًا واحدًا فقط.
multipleVideoStreams
السبب:إعدادات الفيديو غير صحيحة
الوصف:تتضمن مجموعة البث فيديوهات متعددة في حين يجب أن تتضمن بث فيديو واحدًا فقط.
noAudioStream
السبب:عدم توفُّر صوت
الوصف:لا تتضمن مجموعة البث أي بث صوتي في حين يجب أن تتضمن بثًا صوتيًا واحدًا بالضبط.
noVideoStream
السبب:لا يتوفر فيديو
الوصف:لا تتضمن مجموعة البث أي بث فيديو في حين يجب أن تتضمن بث فيديو واحدًا بالضبط.
openGop
السبب:إعدادات الفيديو غير صحيحة
الوصف:يُرجى تغيير إعدادات برنامج ترميز الفيديو إلى "مجموعة صور (GOP) مغلقة". يبدو أنها معيّنة إلى مجموعة صور "GOP" مفتوحة ولا يدعمها YouTube.
resolutionMismatch
السبب:البث الثانوي سيئ
الوصف:في التكوين الحالي، تختلف درجة دقة البث لبث الفيديو الأساسي عن درجة دقة بث الفيديو الاحتياطي. يجب تهيئة مجموعات البث للحصول على الدقة نفسها.
videoBitrateMismatch
السبب:تحقق من البث الثانوي
الوصف:في التكوين الحالي، تختلف معدلات بت الفيديو لبث الفيديو الأساسي عن معدلات البت لبث الفيديو الاحتياطي. يجب إعداد مجموعات البث وتعيين معدل نقل البيانات نفسه للفيديو.
videoCodec
السبب:إعدادات الفيديو غير صحيحة
الوصف:تم ترميز الفيديو باستخدام برنامج ترميز غير معتمد. يرجى تعيين برنامج ترميز معتمد لترميز بث الفيديو (مثلاً H.264).
videoCodecMismatch
السبب:البث الثانوي سيئ
الوصف:في التكوين الحالي، يستخدم بث الفيديو الأساسي وبث الفيديو الاحتياطي برامج مختلفة لترميز الفيديو. يجب تكوين مجموعات البث وتعيين برامج ترميز الفيديو نفسها.
videoIngestionStarved
السبب:إخراج الفيديو منخفض
الوصف:لا يتلقى YouTube ما يكفي من الفيديو للحفاظ على سلاسة البث. وبالتالي، سيتم تخزين الفيديو مؤقتًا لدى المشاهدين.
videoInterlaceMismatch
السبب:البث الثانوي سيئ
الوصف:في التكوين الحالي، يختلف تداخل الفيديو الأساسي عن بث الفيديو الاحتياطي. يجب تهيئة مجموعات البث للحصول على التداخل نفسه.
videoProfileMismatch
السبب:البث الثانوي سيئ
الوصف:في التكوين الحالي، يختلف الملف الشخصي لبث الفيديو الأساسي عن بث الفيديو الاحتياطي. يجب تهيئة ساحات المشاركات للحصول على الملف الشخصي نفسه.
videoResolutionSuboptimal
السبب:تحقق من درجة الدقة
الوصف:يُرجى التحقّق من درجة دقة الفيديو. تبلغ درجة الدقة الحالية (%(actual_w)dx%(actual_h)d)، وهي ليست درجة الدقة المثالية.
videoResolutionUnsupported
السبب:درجة دقة غير معتمدة
الوصف:عليك تغيير درجة دقة الفيديو. تبلغ درجة الدقة الحالية (%(actual_w)dx%(actual_h)d)، وهي غير معتمدة لهذه التهيئة. تبلغ درجة دقة الفيديو المتوقعة (%(expected_w)dx%(expected_h)d).
status.healthStatus.configurationIssues[].severity string
تشير إلى مدى خطورة المشكلة في ساحة المشاركات.

القيم الصالحة لهذا الموقع هي:
  • info – يتم بث الفيديو للمشاهدين بدون أن يؤثر ذلك سلبًا في أدائه.
  • warning – يتم بث الفيديو للمشاهدين، ولكن الأداء ليس مثاليًا.
  • error – لا يمكن بث الفيديو للمشاهدين.
status.healthStatus.configurationIssues[].reason string
وصف موجز للمشكلة يحدد مستند مشكلات التهيئة لموارد البث المباشر السبب المرتبط بكل نوع من أنواع مشكلات التهيئة.
status.healthStatus.configurationIssues[].description string
وصف تفصيلي للمشكلة. يوفر الوصف، كلما أمكن، معلومات حول كيفية حل المشكلة. يسرد مستند مشاكل التهيئة لموارد البث المباشر جميع أنواع مشاكل التهيئة والأوصاف المرتبطة بها.
contentDetails object
يحتوي الكائن content_details على معلومات حول البث، بما في ذلك عنوان URL لعرض الترجمة والشرح.
contentDetails.closedCaptionsIngestionUrl string
عنوان URL لعرض المحتوى الذي يتم إرسال الترجمة والشرح إليه
contentDetails.isReusable boolean
تحدّد هذه العلامة ما إذا كان البث قابلاً لإعادة الاستخدام، ما يعني أنّه يمكن ربطه بأحداث بث متعدّدة. من الشائع أن يعيد المذيعون استخدام البث نفسه للعديد من مجموعات البث المختلفة إذا كانت تتم عمليات البث هذه في أوقات مختلفة.

في حال ضبط هذه القيمة على false، لن يكون البث قابلاً لإعادة الاستخدام، ما يعني أنّه لا يمكن ربطه إلا ببث واحد فقط. تختلف مجموعات البث غير القابلة لإعادة الاستخدام عن مجموعات البث القابلة لإعادة الاستخدام في النقاط التالية:
  • ويمكن بث محتوى غير قابل لإعادة الاستخدام على بث واحد فقط.
  • قد يتم حذف البث غير القابل لإعادة الاستخدام بواسطة عملية تلقائية بعد انتهاء البث.
  • لا تدرج طريقة liveStreams.list مجموعات البث غير القابلة لإعادة الاستخدام في حالة استدعاء الطريقة وتعيين معلمة mine على true. والطريقة الوحيدة لاستخدام هذه الطريقة لاسترداد المورد لمصدر بيانات غير قابل لإعادة الاستخدام هي استخدام المعلمة id لتحديد ساحة المشاركات.