اکنون API از توانایی علامتگذاری پخش زنده شما به عنوان «ساخته شده برای بچهها» پشتیبانی میکند و منبع
liveBroadcast
اکنون دارای خاصیتی است که وضعیت «ساخته شده برای بچهها» آن پخش زنده را مشخص میکند. شرایط خدمات YouTube API و خطمشیهای برنامهنویس نیز در 10 ژانویه 2020 بهروزرسانی شد. برای اطلاعات بیشتر، لطفاً به تاریخچه بازبینی سرویس YouTube Live Streaming API و شرایط خدمات YouTube API Services مراجعه کنید. یک منبع liveBroadcast
رویدادی را نشان میدهد که از طریق ویدیوی زنده در YouTube پخش میشود.
روش ها
API از روش های زیر برای منابع liveBroadcasts
پشتیبانی می کند:
- list
- فهرستی از پخشهای YouTube را برمیگرداند که با پارامترهای درخواست API مطابقت دارند. اکنون آن را امتحان کنید .
- insert
- پخش ایجاد می کند. اکنون آن را امتحان کنید .
- update
- پخش را به روز می کند. به عنوان مثال، می توانید تنظیمات پخش تعریف شده در شیء
contentDetails
منبعliveBroadcast
را تغییر دهید. اکنون آن را امتحان کنید . - delete
- پخش را حذف می کند. اکنون آن را امتحان کنید .
- bind
- پخش YouTube را به یک جریان متصل می کند یا پیوند موجود بین پخش و جریان را حذف می کند. یک پخش فقط می تواند به یک جریان ویدیویی متصل شود، اگرچه یک جریان ویدیویی ممکن است به بیش از یک پخش محدود شود. اکنون آن را امتحان کنید .
- transition
- وضعیت پخش زنده YouTube را تغییر میدهد و هر فرآیند مرتبط با وضعیت جدید را آغاز میکند. برای مثال، وقتی وضعیت پخش را به
testing
انتقال میدهید، YouTube شروع به انتقال ویدیو به جریان مانیتور آن پخش میکند. قبل از فراخوانی این روش، باید تأیید کنید که مقدار ویژگیstatus.streamStatus
برای جریان محدود شده به پخش شماactive
است. اکنون آن را امتحان کنید . - cuepoint
- یک نقطه نشانه را در یک پخش زنده درج می کند. نقطه نشانه ممکن است باعث وقفه تبلیغاتی شود.
نمایندگی منابع
ساختار 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 نوع منبع API را مشخص می کند. مقدار 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 ) مشخص شده است. Creator Studio از توانایی ایجاد پخش بدون برنامه ریزی زمان شروع پشتیبانی می کند. در این حالت، هر زمان که مالک کانال شروع به پخش کند، پخش شروع می شود. برای این پخش ها، مقدار datetime مطابق با زمان صفر UNIX است و این مقدار را نمی توان از طریق API یا در Creator Studio تغییر داد. |
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 یک جریان پیش فرض و یک پخش پیش فرض برای کانال ایجاد می کند. این استریم نحوه ارسال ویدیوی زنده توسط مالک کانال به یوتیوب را مشخص میکند و پخش به این صورت است که بینندگان چگونه میتوانند جریان پیشفرض را ببینند. مالک کانال میتواند از روشهای liveStreams.list و liveBroadcasts.list برای شناسایی این منابع استفاده کند.هنگامی که یک کانال شروع به پخش ویدیو به جریان پیش فرض خود می کند، ویدیو در پخش پیش فرض کانال قابل مشاهده است. هنگامی که جریان به پایان می رسد، YouTube پخش کامل شده را به یک ویدیوی YouTube تبدیل می کند و به ویدیو یک شناسه ویدیوی YouTube اختصاص می دهد. پس از تکمیل تبدیل، ویدیو در لیست ویدیوهای آپلود شده کانال قرار می گیرد. این ویدئو بلافاصله پس از پایان پخش در دسترس نیست و مدت تاخیر مربوط به طول واقعی پخش است. |
snippet. liveChatId | string شناسه چت زنده YouTube پخش. با این شناسه، می توانید از روش های منبع liveChatMessage برای بازیابی، درج یا حذف پیام های چت استفاده کنید. همچنین میتوانید ناظران چت را اضافه یا حذف کنید، کاربران را از شرکت در چتهای زنده منع کنید، یا ممنوعیتهای موجود را حذف کنید. |
status | object شی status حاوی اطلاعاتی درباره وضعیت رویداد است. |
status. lifeCycleStatus | string وضعیت پخش وضعیت را می توان با استفاده از روش liveBroadcasts.transition API به روز کرد.مقادیر معتبر برای این ویژگی عبارتند از:
|
status. privacyStatus | string وضعیت حریم خصوصی پخش توجه داشته باشید که پخش دقیقاً یک ویدیوی YouTube را نشان می دهد، بنابراین تنظیمات حریم خصوصی با تنظیمات پشتیبانی شده برای ویدیوها یکسان است. علاوه بر این، می توانید این فیلد را با تغییر منبع پخش یا با تنظیم فیلد privacyStatus منبع ویدیوی مربوطه تنظیم کنید.مقادیر معتبر برای این ویژگی عبارتند از:
|
status. recordingStatus | string وضعیت ضبط پخش مقادیر معتبر برای این ویژگی عبارتند از:
|
status. madeForKids | boolean این مقدار نشان می دهد که آیا پخش به عنوان کارگردان کودک تعیین شده است یا خیر. این مقدار ویژگی فقط خواندنی است. |
status. selfDeclaredMadeForKids | boolean در یک درخواست liveBroadcasts.insert ، این ویژگی به مالک کانال اجازه میدهد پخش را بهعنوان کارگردانی کودک تعیین کند. در یک درخواست liveBroadcasts.list ، ارزش ویژگی تنها در صورتی برگردانده میشود که مالک کانال درخواست API را مجاز کرده باشد. |
contentDetails | object شی contentDetails حاوی اطلاعاتی درباره محتوای ویدیویی رویداد است، مانند اینکه آیا محتوا میتواند در یک پخشکننده ویدیوی تعبیهشده نشان داده شود یا اینکه بایگانی میشود و بنابراین پس از پایان رویداد برای مشاهده در دسترس است. |
contentDetails. boundStreamId | string این مقدار به طور منحصربهفرد live stream متصل به پخش را مشخص میکند. |
contentDetails. boundStreamLastUpdateTimeMs | datetime تاریخ و زمانی که جریان زنده به آن ارجاع داده شده توسط boundStreamId آخرین بار به روز شد. |
contentDetails. monitorStream | object شی monitorStream حاوی اطلاعاتی درباره جریان مانیتور است که پخش کننده می تواند از آن برای بازبینی محتوای رویداد قبل از نمایش عمومی پخش جریانی استفاده کند. |
contentDetails.monitorStream. enableMonitorStream | boolean این مقدار تعیین می کند که آیا جریان مانیتور برای پخش فعال است یا خیر. اگر پخش جریانی مانیتور فعال باشد، YouTube محتوای رویداد را در یک جریان ویژه که فقط برای مصرف پخش کننده در نظر گرفته شده است، پخش می کند. پخشکننده میتواند از جریان برای بررسی محتوای رویداد و همچنین شناسایی زمانهای بهینه برای درج نشانهها استفاده کند. اگر قصد دارید یک مرحله testing برای پخش خود داشته باشید یا اگر می خواهید برای رویداد خود تاخیر پخش داشته باشید، باید این مقدار را روی true تنظیم کنید. علاوه بر این، اگر مقدار این ویژگی true باشد، باید قبل از اینکه بتوانید پخش خود را به حالت live انتقال دهید، به حالت testing منتقل کنید. (اگر مقدار ویژگی false باشد، پخش شما نمی تواند مرحله testing داشته باشد، بنابراین می توانید پخش را مستقیماً به حالت live انتقال دهید.)هنگامی که update a broadcast ، اگر درخواست API شما شامل قسمت contentDetails در مقدار پارامتر part باشد، این ویژگی باید تنظیم شود. با این حال، وقتی insert a broadcast ، ویژگی اختیاری است و مقدار پیشفرض true دارد.مهم: وقتی پخش در حالت testing یا live است، این ویژگی را نمی توان به روز کرد. |
contentDetails.monitorStream. broadcastStreamDelayMs | unsigned integer اگر ویژگی enableMonitorStream را روی true تنظیم کرده باشید، این ویژگی طول تاخیر پخش زنده را تعیین می کند.هنگامی که update a broadcast ، اگر درخواست API شما شامل قسمت contentDetails در مقدار پارامتر part باشد، این ویژگی باید تنظیم شود. با این حال، هنگامی که insert a broadcast ، ویژگی اختیاری است و مقدار پیش فرض آن 0 است. این مقدار نشان می دهد که پخش تاخیر پخش ندارد. توجه: وقتی پخش در حالت testing یا live است، این ویژگی را نمی توان به روز کرد. |
contentDetails.monitorStream. embedHtml | string کد HTML که پخش کننده ای را تعبیه می کند که جریان مانیتور را پخش می کند. |
contentDetails. enableEmbed | boolean این تنظیم نشان می دهد که آیا می توان ویدیوی پخش شده را در یک پخش کننده تعبیه شده پخش کرد یا خیر. اگر انتخاب کنید که ویدیو را بایگانی کنید (با استفاده از ویژگی enableArchive )، این تنظیم برای ویدیوی بایگانی شده نیز اعمال خواهد شد.هنگامی که update a broadcast ، اگر درخواست API شما شامل قسمت contentDetails در مقدار پارامتر part باشد، این ویژگی باید تنظیم شود. با این حال، وقتی insert a broadcast ، ویژگی اختیاری است و مقدار پیشفرض true دارد.توجه: وقتی پخش در حالت testing یا live است، این ویژگی را نمی توان به روز کرد. |
contentDetails. enableDvr | boolean این تنظیم تعیین میکند که آیا بینندگان میتوانند هنگام تماشای ویدیو به کنترلهای DVR دسترسی داشته باشند یا خیر. کنترلهای DVR بیننده را قادر میسازد تا تجربه پخش ویدیو را با مکث، برگرداندن یا ارسال سریع محتوا کنترل کند. مقدار پیش فرض این ویژگی true است.هنگامی که update a broadcast ، اگر درخواست API شما شامل قسمت contentDetails در مقدار پارامتر part باشد، این ویژگی باید تنظیم شود. با این حال، وقتی insert a broadcast ، ویژگی اختیاری است و مقدار پیشفرض true دارد.مهم: اگر میخواهید پخش را بلافاصله پس از پایان پخش در دسترس قرار دهید، باید مقدار را روی true تنظیم کنید و همچنین مقدار ویژگی enableArchive را روی true تنظیم کنید. علاوه بر این، پس از اینکه پخش در حالت testing یا live است، این ویژگی را نمی توان به روز کرد. |
contentDetails. recordFromStart | boolean این تنظیم نشان می دهد که آیا YouTube به طور خودکار ضبط پخش را پس از تغییر وضعیت رویداد به زنده شروع می کند یا خیر. مقدار پیشفرض این ویژگی true است و تنها در صورتی میتوان آن را روی false تنظیم کرد که کانال پخش مجاز باشد ضبط را برای پخش زنده غیرفعال کند.اگر کانال شما مجوز غیرفعال کردن ضبطها را نداشته باشد و سعی کنید پخشی را با ویژگی recordFromStart روی false قرار دهید، API یک خطای Forbidden را برمیگرداند. علاوه بر این، اگر کانال شما این مجوز را نداشته باشد و سعی کنید یک پخش را به روز کنید تا ویژگی recordFromStart را روی false تنظیم کنید، API یک خطای modificationNotAllowed را برمی گرداند.هنگامی که update a broadcast ، اگر درخواست API شما شامل قسمت contentDetails در مقدار پارامتر part باشد، این ویژگی باید تنظیم شود. با این حال، وقتی insert a broadcast ، ویژگی اختیاری است و مقدار پیشفرض true دارد.مهم: همچنین اگر میخواهید پخش بلافاصله پس از پایان پخش در دسترس باشد، باید مقدار ویژگی enableDvr را روی true تنظیم کنید. اگر مقدار این ویژگی را روی true تنظیم کنید، اما ویژگی enableDvr را نیز روی true تنظیم نکنید، ممکن است حدود یک روز تأخیر وجود داشته باشد تا ویدیوی بایگانی شده برای پخش در دسترس قرار گیرد.توجه: وقتی پخش در حالت testing یا live است، این ویژگی را نمی توان به روز کرد. |
contentDetails. enableClosedCaptions | boolean این ویژگی از 17 دسامبر 2015 منسوخ شده است. به جای آن از ویژگی contentDetails.closedCaptionsType استفاده کنید.این تنظیم نشان میدهد که آیا عنوان بسته HTTP POST برای این پخش فعال است یا خیر. برای کلاینتهای API که قبلاً از این ویژگی استفاده میکنند:
|
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 میتواند در فواصل زمانی پنج دقیقه، نقطههای نشانه تبلیغات میانی را درج کند.توجه داشته باشید که مقدار زمان بین شروع نقاط نشانه متوالی را مشخص می کند. یعنی فاصله از انتهای یک نقطه نشانه تا شروع نقطه دیگر اندازه گیری نمی شود. |