بررسی اجمالی
این راهنما برای توسعه دهندگان برنامه های سرویس گیرنده API در نظر گرفته شده است که از منابع liveStream
و liveBroadcast
مستقیم کانال های YouTube برای پخش محتوای زنده استفاده می کنند. هدف آن این است که به شما کمک کند تا اطمینان حاصل کنید که برنامه شما بهخوبی با حذف پخشهای پیشفرض و جریانهای پیشفرض مقابله میکند، و اگر هر یک از عبارات زیر برای برنامه شما اعمال شود، برای شما مرتبط است:
- این مقدار ویژگی
isDefaultBroadcast
منبعliveBroadcast
را بررسی می کند. - این مقدار ویژگی
isDefaultStream
منبعliveStream
را بررسی می کند. متد
liveBroadcasts.list
فراخوانی میکند و مقدار پارامترbroadcastType
را رویpersistent
تنظیم میکند. از تاریخ انصراف:- اگر مقدار پارامتر
broadcastType
persistent
باشد، روشliveBroadcasts.list
هیچ نتیجهای را بر نمیگرداند. - اگر مقدار پارامتر
broadcastType
all
باشد، روشliveBroadcasts.list
پخشهای مداومی را که قبل از آن زمان وجود داشته است را برنمیگرداند.
- اگر مقدار پارامتر
اگر برنامه شما تحت تأثیر قرار گرفته است، لطفاً به بخش Updating your application مراجعه کنید، که تغییرات رویه ای را که ممکن است برنامه شما در نتیجه این منسوخ شدن نیاز داشته باشد توضیح می دهد. این بخش مراحل خاصی را در راهنمای پخش زنده مشخص میکند که اگر کلاینت API شما در حال حاضر از پخش و پخش پیشفرض استفاده میکند، معمولاً آنها را دنبال نمیکند.
چه اتفاقی می افتد؟
از سال 2015، YouTube به طور خودکار یک پخش جریانی پیشفرض و یک پخش پیشفرض برای یک کانال زمانی که آن کانال برای پخش زنده فعال شده بود، ایجاد کرده است. جریان پیشفرض بهطور نامحدود وجود داشت و نمیتوان آن را حذف کرد. به طور مشابه، پخش پیش فرض دائمی در نظر گرفته شد. همیشه وجود داشته است، زمان شروع یا پایان مربوط به آن نبود، و به یک رویداد خاص مقید نبود.
از تاریخ منسوخ شدن ذکر شده در بالا، YouTube دیگر پخشها و پخشهای پیشفرض ایجاد نخواهد کرد. این تغییر بر برنامه های مشتری که برای پخش محتوای زنده به آن منابع متکی هستند، تأثیر می گذارد. همچنین بر برنامههایی که رابط کاربری در آنها برای تمایز بین منابع پیشفرض و سایر پخشها و جریانهایی که صاحبان کانال ایجاد کردهاند، سفارشی شده است، تأثیر میگذارد.
به جای تکیه بر منابع پیشفرض، مشتریان API باید منابع liveBroadcast
و liveStream
را ایجاد و مدیریت کنند و این منابع را به یکدیگر متصل کنند.
در حال به روز رسانی برنامه شما
برای بررسی سریع اصطلاحات، پخش یک رویداد را نشان میدهد که میتوان آن را در یوتیوب تماشا کرد و یک جریان مکانیزمی برای ارسال محتوای ویدیویی واقعی به YouTube است. یک پخش می تواند و باید دقیقاً به یک جریان متصل شود.
مهاجرت از پخش های پیش فرض
قبل از این لغو، مشتریان API میتوانستند بین استفاده از پخش پیشفرض کانال یا ایجاد یک پخش ویژه رویداد یکی را انتخاب کنند. پخش پیشفرض یک منبع دائمی بود که میتوانست برای چندین رویداد مجدداً استفاده شود، در حالی که یک منبع پخش ویژه رویداد منبعی یکبار مصرف است که دقیقاً با یک ویدیوی YouTube مطابقت دارد.
اگر برنامه مشتری شما از روش liveBroadcasts.list
فراخوانی کند و یکی از موارد زیر را انجام دهد، از پخش پیش فرض استفاده می کند:
- مقدار پارامتر
broadcastType
را رویpersistent
تنظیم می کند. این درخواست فقط پخش پیش فرض را بازیابی می کند. - مقدار پارامتر
broadcastType
را رویall
تنظیم می کند، سپس منبعliveBroadcast
را در پاسخ API که مقدار ویژگیisDefaultBroadcast
برای آنtrue
است، شناسایی می کند.
پس از لغو، YouTube فقط از پخشهای ویژه رویداد پشتیبانی میکند. این بدان معنی است که به جای تکیه بر پخش پیش فرض، برنامه های مشتری باید منابع liveBroadcast
برای هر رویداد پخش جداگانه ایجاد کنند.
برای ایجاد یک منبع liveBroadcast
، روش liveBroadcasts.insert
را فراخوانی کنید. این فرآیند در مرحله 1.1 راهنمای "زندگی یک پخش" توضیح داده شده است.
اگر قبلاً این کار را انجام نداده است، رابط کاربری شما همچنین باید مکانیسمهایی را برای کاربران فراهم کند تا بین پخشهای ویژه رویدادهای آینده تمایز و انتخاب کنند.
مهاجرت از جریان های پیش فرض
یک جریان به شما امکان میدهد محتوای صوتی و تصویری را به YouTube منتقل کنید و تنظیماتی را برای نحوه پخش محتوای خود در YouTube تعیین میکند. اگر پخش در زمانهای مختلف اتفاق بیفتد، معمولاً پخشکنندهها از یک جریان برای بسیاری از پخشهای مختلف استفاده مجدد میکنند.
حتی اگر برنامه شما نمی تواند از جریان پیش فرض استفاده کند، می تواند یک جریان قابل استفاده مجدد ایجاد کند که می تواند برای هر پخش مجدد استفاده شود. برای ایجاد یک منبع liveStream
، با پیروی از دستورالعملهای مرحله 1.2 راهنمای "زندگی یک پخش"، روش liveStreams.insert
را فراخوانی کنید. به طور پیش فرض، جریان های جدید ایجاد شده قابل استفاده مجدد هستند. با این حال، اگر ترجیح میدهید، میتوانید ویژگی contentDetails.isReusable
را روی false
تنظیم کنید تا جریانهای یکبار مصرف ایجاد کنید و یک رابطه یک به یک بین پخشها و جریانها برقرار کنید.
لیست زیر شامل چهار ویژگی است، علاوه بر عنوان جریان و توضیحات جریان ، که می توانید هنگام ایجاد یک جریان جدید تنظیم کنید. این لیست مقادیری را نشان می دهد که جریان های پیش فرض برای هر ویژگی استفاده می کنند، که احتمالاً تنظیماتی هستند که می خواهید در یک برنامه مشتری استفاده کنید اگر از استفاده از جریان های پیش فرض مهاجرت کنید.
-
cdn.frameRate
-variable
-
cdn.ingestionType
-rtmp
-
cdn.resolution
-variable
-
contentDetails.isReusable
-true
اتصال پخش به جریان ها
قبل از شروع پخش زنده در YouTube، هر منبع liveBroadcast
باید دقیقاً به یک جریان متصل شود. (پخش در زمان ایجاد به هیچ جریانی محدود نمی شود.)
فرآیند اتصال به طور خودکار برای پخش پیشفرض انجام میشد که به طور جدایی ناپذیری به جریان پیشفرض متصل بود. با این حال، پس از تاریخ منسوخ شدن، برنامه های مشتری باید آن فرآیند را برای همه پخش ها مدیریت کنند.
برای اتصال پخش به یک جریان، روش liveBroadcasts.bind
را همانطور که در مرحله 1.3 راهنمای «زندگی پخش» توضیح داده شده است، فراخوانی کنید.
- اگر از یک جریان قابل استفاده مجدد استفاده می کنید، می توانید یک جریان یک بار ایجاد کنید و سپس هر پخش را به آن جریان متصل کنید.
- اگر از یک جریان قابل استفاده مجدد استفاده نمی کنید، باید یک پخش و یک جریان ایجاد کنید و سپس این دو را به هم متصل کنید.
در حال تست پخش شما
وقتی از پخش پیشفرض استفاده نمیکنید، میتوانید پخش خود را آزمایش کنید. برای انجام آزمایش، پخشکنندهای را جاسازی میکنید که به شما امکان میدهد ویدیوی پخش شده را همانطور که برای بینندگان YouTube ظاهر میشود پیشنمایش کنید، اما پخش برای سایر بینندگان قابل مشاهده نیست.
اگر مشتری API شما قبلاً از پخش و پخش پیشفرض استفاده میکرد و میخواهید مرحله آزمایشی را به فرآیند پخش خود اضافه کنید، به مرحله 3 راهنمای «زندگی یک پخش» مراجعه کنید.
اگر میخواهید جریان خود را آزمایش کنید، وقتی پخشی را وارد میکنید، باید ویژگی contentDetails.monitorStream.enableMonitorStream را روی true
و خاصیت contentDetails.enableAutoStart را روی false
تنظیم کنید. این مقادیر پیش فرض برای هر دو ویژگی هستند.
با استفاده از ویژگی های شروع خودکار و توقف خودکار
پخش پیشفرض بهطور خودکار هر زمان که پخش ویدیو را در جریان پیشفرض شروع کردید شروع میشود. به طور مشابه، پخش پیشفرض پس از توقف پخش ویدیو به پایان رسید. هر جلسه پخش جریانی با استفاده از آن منابع پیشفرض، متعاقباً به یک ویدیو در کانال شما تبدیل شد.
در حالی که ویژگیهای شروع خودکار و توقف خودکار رفتار پیشفرض برای پخشهای پیشفرض بودند، این ویژگیها اختیاری هستند و باید برای پخشهای دیگر فعال شوند. اگر میخواهید از این ویژگیها استفاده کنید، وقتی یک پخش را وارد میکنید، باید مقادیر ویژگی contentDetails.enableAutoStart و contentDetails.enableAutoStop را روی true
تنظیم کنید. این ویژگیها مستقل هستند، بنابراین میتوانید از یکی استفاده کنید و دیگری را نه.
اگر ویژگیهای شروع خودکار و توقف خودکار را برای پخشهای جدید فعال نکنید، مشتری API شما باید با روش liveBroadcasts.transition تماس بگیرد تا هنگام شروع و پایان پخش ویدیو، وضعیت پخش را بهروزرسانی کند. در راهنمای "زندگی یک پخش"، مراحل 4.3 و مرحله 5.2 را برای دستورالعملهای مدیریت این انتقالها در ابتدا و انتهای پخش ببینید.
،
بررسی اجمالی
این راهنما برای توسعه دهندگان برنامه های سرویس گیرنده API در نظر گرفته شده است که از منابع liveStream
و liveBroadcast
مستقیم کانال های YouTube برای پخش محتوای زنده استفاده می کنند. هدف آن این است که به شما کمک کند تا اطمینان حاصل کنید که برنامه شما بهخوبی با حذف پخشهای پیشفرض و جریانهای پیشفرض مقابله میکند، و اگر هر یک از عبارات زیر برای برنامه شما اعمال شود، برای شما مرتبط است:
- این مقدار ویژگی
isDefaultBroadcast
منبعliveBroadcast
را بررسی می کند. - این مقدار ویژگی
isDefaultStream
منبعliveStream
را بررسی می کند. متد
liveBroadcasts.list
فراخوانی میکند و مقدار پارامترbroadcastType
را رویpersistent
تنظیم میکند. از تاریخ انصراف:- اگر مقدار پارامتر
broadcastType
persistent
باشد، روشliveBroadcasts.list
هیچ نتیجهای را بر نمیگرداند. - اگر مقدار پارامتر
broadcastType
all
باشد، روشliveBroadcasts.list
پخشهای مداومی را که قبل از آن زمان وجود داشته است را برنمیگرداند.
- اگر مقدار پارامتر
اگر برنامه شما تحت تأثیر قرار گرفته است، لطفاً به بخش Updating your application مراجعه کنید، که تغییرات رویه ای را که ممکن است برنامه شما در نتیجه این منسوخ شدن نیاز داشته باشد توضیح می دهد. این بخش مراحل خاصی را در راهنمای پخش زنده مشخص میکند که اگر کلاینت API شما در حال حاضر از پخش و پخش پیشفرض استفاده میکند، معمولاً آنها را دنبال نمیکند.
چه اتفاقی می افتد؟
از سال 2015، YouTube به طور خودکار یک پخش جریانی پیشفرض و یک پخش پیشفرض برای یک کانال زمانی که آن کانال برای پخش زنده فعال شده بود، ایجاد کرده است. جریان پیشفرض بهطور نامحدود وجود داشت و نمیتوان آن را حذف کرد. به طور مشابه، پخش پیش فرض دائمی در نظر گرفته شد. همیشه وجود داشته است، زمان شروع یا پایان مربوط به آن نبود، و به یک رویداد خاص مقید نبود.
از تاریخ منسوخ شدن ذکر شده در بالا، YouTube دیگر پخشها و پخشهای پیشفرض ایجاد نخواهد کرد. این تغییر بر برنامه های مشتری که برای پخش محتوای زنده به آن منابع متکی هستند، تأثیر می گذارد. همچنین بر برنامههایی که رابط کاربری در آنها برای تمایز بین منابع پیشفرض و سایر پخشها و جریانهایی که صاحبان کانال ایجاد کردهاند، سفارشی شده است، تأثیر میگذارد.
به جای تکیه بر منابع پیشفرض، مشتریان API باید منابع liveBroadcast
و liveStream
را ایجاد و مدیریت کنند و این منابع را به یکدیگر متصل کنند.
در حال به روز رسانی برنامه شما
برای بررسی سریع اصطلاحات، پخش یک رویداد را نشان میدهد که میتوان آن را در یوتیوب تماشا کرد و یک جریان مکانیزمی برای ارسال محتوای ویدیویی واقعی به YouTube است. یک پخش می تواند و باید دقیقاً به یک جریان متصل شود.
مهاجرت از پخش های پیش فرض
قبل از این لغو، مشتریان API میتوانستند بین استفاده از پخش پیشفرض کانال یا ایجاد یک پخش ویژه رویداد یکی را انتخاب کنند. پخش پیشفرض یک منبع دائمی بود که میتوانست برای چندین رویداد مجدداً استفاده شود، در حالی که یک منبع پخش ویژه رویداد منبعی یکبار مصرف است که دقیقاً با یک ویدیوی YouTube مطابقت دارد.
اگر برنامه مشتری شما از روش liveBroadcasts.list
فراخوانی کند و یکی از موارد زیر را انجام دهد، از پخش پیش فرض استفاده می کند:
- مقدار پارامتر
broadcastType
را رویpersistent
تنظیم می کند. این درخواست فقط پخش پیش فرض را بازیابی می کند. - مقدار پارامتر
broadcastType
را رویall
تنظیم می کند، سپس منبعliveBroadcast
را در پاسخ API که مقدار ویژگیisDefaultBroadcast
برای آنtrue
است، شناسایی می کند.
پس از لغو، YouTube فقط از پخشهای ویژه رویداد پشتیبانی میکند. این بدان معنی است که به جای تکیه بر پخش پیش فرض، برنامه های مشتری باید منابع liveBroadcast
برای هر رویداد پخش جداگانه ایجاد کنند.
برای ایجاد یک منبع liveBroadcast
، روش liveBroadcasts.insert
را فراخوانی کنید. این فرآیند در مرحله 1.1 راهنمای "زندگی یک پخش" توضیح داده شده است.
اگر قبلاً این کار را انجام نداده است، رابط کاربری شما همچنین باید مکانیسمهایی را برای کاربران فراهم کند تا بین پخشهای ویژه رویدادهای آینده تمایز و انتخاب کنند.
مهاجرت از جریان های پیش فرض
یک جریان به شما امکان میدهد محتوای صوتی و تصویری را به YouTube منتقل کنید و تنظیماتی را برای نحوه پخش محتوای خود در YouTube تعیین میکند. اگر پخش در زمانهای مختلف اتفاق بیفتد، معمولاً پخشکنندهها از یک جریان برای بسیاری از پخشهای مختلف استفاده مجدد میکنند.
حتی اگر برنامه شما نمی تواند از جریان پیش فرض استفاده کند، می تواند یک جریان قابل استفاده مجدد ایجاد کند که می تواند برای هر پخش مجدد استفاده شود. برای ایجاد یک منبع liveStream
، با پیروی از دستورالعملهای مرحله 1.2 راهنمای "زندگی یک پخش"، روش liveStreams.insert
را فراخوانی کنید. به طور پیش فرض، جریان های جدید ایجاد شده قابل استفاده مجدد هستند. با این حال، اگر ترجیح میدهید، میتوانید ویژگی contentDetails.isReusable
را روی false
تنظیم کنید تا جریانهای یکبار مصرف ایجاد کنید و یک رابطه یک به یک بین پخشها و جریانها برقرار کنید.
لیست زیر شامل چهار ویژگی است، علاوه بر عنوان جریان و توضیحات جریان ، که می توانید هنگام ایجاد یک جریان جدید تنظیم کنید. این لیست مقادیری را نشان می دهد که جریان های پیش فرض برای هر ویژگی استفاده می کنند، که احتمالاً تنظیماتی هستند که می خواهید در یک برنامه مشتری استفاده کنید اگر از استفاده از جریان های پیش فرض مهاجرت کنید.
-
cdn.frameRate
-variable
-
cdn.ingestionType
-rtmp
-
cdn.resolution
-variable
-
contentDetails.isReusable
-true
اتصال پخش به جریان ها
قبل از شروع پخش زنده در YouTube، هر منبع liveBroadcast
باید دقیقاً به یک جریان متصل شود. (پخش در زمان ایجاد به هیچ جریانی محدود نمی شود.)
فرآیند اتصال به طور خودکار برای پخش پیشفرض انجام میشد که به طور جدایی ناپذیری به جریان پیشفرض متصل بود. با این حال، پس از تاریخ منسوخ شدن، برنامه های مشتری باید آن فرآیند را برای همه پخش ها مدیریت کنند.
برای اتصال پخش به یک جریان، روش liveBroadcasts.bind
را همانطور که در مرحله 1.3 راهنمای «زندگی پخش» توضیح داده شده است، فراخوانی کنید.
- اگر از یک جریان قابل استفاده مجدد استفاده می کنید، می توانید یک جریان یک بار ایجاد کنید و سپس هر پخش را به آن جریان متصل کنید.
- اگر از یک جریان قابل استفاده مجدد استفاده نمی کنید، باید یک پخش و یک جریان ایجاد کنید و سپس این دو را به هم متصل کنید.
در حال تست پخش شما
وقتی از پخش پیشفرض استفاده نمیکنید، میتوانید پخش خود را آزمایش کنید. برای انجام آزمایش، پخشکنندهای را جاسازی میکنید که به شما امکان میدهد ویدیوی پخش شده را همانطور که برای بینندگان YouTube ظاهر میشود پیشنمایش کنید، اما پخش برای سایر بینندگان قابل مشاهده نیست.
اگر مشتری API شما قبلاً از پخش و پخش پیشفرض استفاده میکرد و میخواهید مرحله آزمایشی را به فرآیند پخش خود اضافه کنید، به مرحله 3 راهنمای «زندگی یک پخش» مراجعه کنید.
اگر میخواهید جریان خود را آزمایش کنید، وقتی پخشی را وارد میکنید، باید ویژگی contentDetails.monitorStream.enableMonitorStream را روی true
و خاصیت contentDetails.enableAutoStart را روی false
تنظیم کنید. این مقادیر پیش فرض برای هر دو ویژگی هستند.
با استفاده از ویژگی های شروع خودکار و توقف خودکار
پخش پیشفرض بهطور خودکار هر زمان که پخش ویدیو را در جریان پیشفرض شروع کردید شروع میشود. به طور مشابه، پخش پیشفرض پس از توقف پخش ویدیو به پایان رسید. هر جلسه پخش جریانی با استفاده از آن منابع پیشفرض، متعاقباً به یک ویدیو در کانال شما تبدیل شد.
در حالی که ویژگیهای شروع خودکار و توقف خودکار رفتار پیشفرض برای پخشهای پیشفرض بودند، این ویژگیها اختیاری هستند و باید برای پخشهای دیگر فعال شوند. اگر میخواهید از این ویژگیها استفاده کنید، وقتی یک پخش را وارد میکنید، باید مقادیر ویژگی contentDetails.enableAutoStart و contentDetails.enableAutoStop را روی true
تنظیم کنید. این ویژگیها مستقل هستند، بنابراین میتوانید از یکی استفاده کنید و دیگری را نه.
اگر ویژگیهای شروع خودکار و توقف خودکار را برای پخشهای جدید فعال نکنید، مشتری API شما باید با روش liveBroadcasts.transition تماس بگیرد تا هنگام شروع و پایان پخش ویدیو، وضعیت پخش را بهروزرسانی کند. در راهنمای "زندگی یک پخش"، مراحل 4.3 و مرحله 5.2 را برای دستورالعملهای مدیریت این انتقالها در ابتدا و انتهای پخش ببینید.