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
تحدّد هذه السمة نوع الخطأ الذي يؤثر في البث.
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 لتحديد ساحة المشاركات.