ה-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 יכולה להוסיף נקודות התחלה של מודעות באמצע הסרטון במרווחי זמן של חמש דקות.הערך מציין את הזמן בין תחילת נקודות העצירה הבאות. כלומר, המרווח לא נמדד מהסוף של נקודת עצירה אחת לתחילת הנקודה הבאה. |