ה-API תומך עכשיו באפשרות לסמן שידורים חיים כתוכן 'במיוחד לילדים', ומשאבי
liveBroadcast
מכילים עכשיו מאפיין שמזהה את הסטטוס 'במיוחד לילדים' של השידור החי. ב-10 בינואר 2020 עודכנו גם התנאים וההגבלות של שירותי YouTube API וכללי המדיניות למפתחים. למידע נוסף, אפשר לעיין בהיסטוריית הגרסאות של שירות YouTube Live Streaming API ובתנאים ובהגבלות של שירותי YouTube API.
משאב liveBroadcast
מייצג אירוע שישודר ב-YouTube באמצעות סרטון בשידור חי.
Methods
ה-API תומך בשיטות הבאות למשאבי liveBroadcasts
:
- list
- מחזירה רשימה של שידורים ב-YouTube שתואמים לפרמטרים של בקשת ה-API. כדאי לנסות עכשיו.
- insert
- יצירת שידור. כדאי לנסות עכשיו.
- עדכון
- עדכון של שידור. לדוגמה, אפשר לשנות את הגדרות השידור שמוגדרות באובייקט
contentDetails
של המשאבliveBroadcast
. רוצים לנסות? - מחיקה
- מחיקת שידור. כדאי לנסות עכשיו.
- 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 יוצרת עבורו שידור ברירת מחדל ושידור ברירת מחדל. השידור מגדיר את האופן שבו הבעלים של הערוץ שולח סרטון בשידור חי ל-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 ישדר את תוכן האירוע בשידור מיוחד שמיועד רק לצפייה של המפיץ. המפיק יכול להשתמש בשידור כדי לבדוק את תוכן האירוע וגם כדי לזהות את הזמנים האופטימליים להוספת נקודות סימון. צריך להגדיר את הערך הזה כ- true אם אתם מתכוונים להשתמש בשלב testing בשידור או אם אתם רוצים להגדיר עיכוב שידור לאירוע. בנוסף, אם הערך של המאפיין הזה הוא true , צריך להעביר את השידור למצב testing לפני שאפשר להעביר אותו למצב live . (אם הערך של המאפיין הוא 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 מכיל מידע על פרטי המונטיזציה של השידור, למשל אם הכלי האוטומטי להצגת מודעות מופעל או אם ההוספה של מודעות באמצע הסרטון (midroll) מתעכבת. |
monetizationDetails.cuepointSchedule |
object העצם cuepointSchedule מציין את הגדרות האוטומציה של המודעות בשידור. |
monetizationDetails.cuepointSchedule.enabled |
boolean הערך הזה קובע אם המערכת תוסיף מודעות באופן אוטומטי לשידור. אם הערך הוא true , המערכת של YouTube תוסיף מודעות באמצע הסרטון לשידור באופן אוטומטי. לוח הזמנים להצגת המודעות יקבע על סמך הערך של שאר השדות באובייקט monetizationDetails.cuepointSchedule .
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetime הערך הזה מציין שמערכת YouTube לא תוסיף מודעות Midroll לשידור עד לתאריך ולשעה שצוינו. הערך מצוין בפורמט ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ). כדי להשהות מודעות, צריך להגדיר את הערך כתאריך ושעה עתידיים. אפשר גם להגדיר את ערך השדה כתאריך ושעה עתידיים בטווח הקרוב כדי לבטל את ההשהיה של המודעות כשהזמן עובר. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string הערך הזה מציין את האסטרטגיה שמערכת YouTube צריכה לפעול לפיה כדי לתזמן נקודות עצירה. הערכים התקינים הם:
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer הערך הזה מציין את המרווח, בשניות, בין ההוספה האוטומטית של מודעות במהלך השידור. לדוגמה, אם הערך הוא 300 , המערכת של YouTube יכולה להוסיף נקודות התחלה של מודעות באמצע הסרטון במרווחי זמן של חמש דקות.הערך מציין את הזמן בין תחילת נקודות העצירה הבאות. כלומר, המרווח לא נמדד מהסוף של נקודת עצירה אחת לתחילת הנקודה הבאה. |