LiveStreams

משאב liveStream מכיל מידע על זרם הווידאו שאתה משדר ל-YouTube. הסרטון מספק את התוכן שישודר למשתמשי YouTube. לאחר היצירה של משאב liveStream, אפשר לשייך אותו למשאב אחד (liveBroadcast) או יותר.

שיטות

ה-API תומך בשיטות הבאות עבור משאבי liveStreams:

list
מחזיר רשימה של שידורי וידאו שתואמים לפרמטרים של בקשת ה-API. כדאי לנסות עכשיו.
הוספה
יצירת וידאו בסטרימינג. השידור מאפשר לך לשלוח את הסרטון ל-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
מזהה את סוג המשאב של ה-API. הערך יהיה youtube#liveStream.
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
השם של השידור. אורך הערך צריך להיות בין 1 ל-128 תווים.
snippet.description string
התיאור של השידור. הערך יכול לכלול עד 10,000 תווים.
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.
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
מזהה את סוג השגיאה שמשפיע על השידור.
בעיות בהגדרות
audioBitrateHigh
סיבה:יש לבדוק את הגדרות האודיו
תיאור:קצב העברת הנתונים הנוכחי של זרם האודיו %(actual) גבוה מקצב העברת הנתונים המומלץ. מומלץ להשתמש בקצב העברת נתונים של %(expected)s בקצב העברת נתונים של אודיו.
audioBitrateLow
סיבה:יש לבדוק את הגדרות האודיו
תיאור:קצב העברת הנתונים הנוכחי של שידור האודיו (%(actual)s) נמוך מקצב העברת הנתונים המומלץ. מומלץ להשתמש בקצב העברת נתונים של %(expected)s בקצב העברת נתונים של אודיו.
audioBitrateMismatch
סיבה:יש לבדוק את השידור המשני
תיאור:בתצורה הנוכחית לשידור הווידאו הראשי ולשידור הגיבוי יש קצבי העברת אודיו שונים. צריך להגדיר אותם כך שקצב העברת הנתונים יהיה זהה בשניהם.
audioCodec
סיבה:יש לבדוק את הגדרות האודיו
תיאור:הסטרימינג של האודיו מקודד עם Codec שאינו נתמך. יש להגדיר את האודיו Codec של הסטרימינג ל-Codec נתמך (AAC, ‏MP3).
audioCodecMismatch
סיבה:הגדרת שידור משני שגויה
תיאור:בתצורה הנוכחית השידור הראשי וסטרימינג הגיבוי של הסרטון משתמשים ברכיבי קודק אודיו שונים. צריך להגדיר אותם כך שיוכלו להשתמש באותו קודק אודיו.
audioSampleRate
סיבה:יש לבדוק את הגדרות האודיו
תיאור:קצב הדגימה הנוכחי הוא %(actual). קצבי הדגימה המומלצים הם 44.1kHz ו-48kHz.
audioSampleRateMismatch
סיבה:הגדרת שידור משני שגויה
תיאור:בתצורה הנוכחית לשידור הווידאו הראשי ולשידור הגיבוי יש קצבי דגימת אודיו שונים. צריך להגדיר אותם כך שקצב דגימת האודיו יהיה זהה בשניהם.
audioStereoMismatch
סיבה:הגדרת שידור משני שגויה
תיאור:בהגדרה הנוכחית, מתבצע שימוש בערוצי אודיו שונים בסטרימינג הראשי ובסטרימינג לגיבוי של הסרטון. צריך להגדיר אותם כך שערוץ האודיו יהיה זהה.
audioTooManyChannels
סיבה:יש לבדוק את הגדרות האודיו
תיאור:האודיו כולל יותר משני ערוצים, אבל רק לערוץ אחד (מונו) או לשני ערוצים (סטריאו) יש תמיכה. צריך לשנות את מספר ערוצי האודיו.
badContainer
סיבה:הגדרות וידאו לא נכונות
תיאור:יש לשנות את פורמט המאגר של הסרטון. פורמט המאגר הנוכחי אינו מתאים להגדרה הזו.
bitrateHigh
סיבה:יש לבדוק את הגדרות הווידאו
תיאור:קצב העברת הנתונים הנוכחי של השידור (%(actual)s) גבוה מקצב העברת הנתונים המומלץ. מומלץ להשתמש בקצב העברת נתונים של %(expected)s.
bitrateLow
סיבה:עוצמת אודיו חלשה
תיאור:קצב העברת הנתונים הנוכחי של השידור (%(actual)s) נמוך מקצב העברת הנתונים המומלץ. מומלץ להשתמש בקצב העברת נתונים של %(expected)s.
framerateMismatch
סיבה:יש לבדוק את השידור המשני
תיאור:בתצורה הנוכחית לשידור הווידאו הראשי ולשידור הגיבוי יש קצבי פריימים שונים. צריך להגדיר אותם כך שקצב הפריימים יהיה זהה בשניהם.
frameRateHigh
סיבה:קצב פריימים מהיר
תיאור:קצב הפריימים גבוה מדי. צריך להגדיר את קצב הפריימים ל-%(framerate)s פריימים לשנייה או פחות.
gopMismatch
סיבה:הגדרת שידור משני שגויה
תיאור:בתצורה הנוכחית לשידור הווידאו הראשי ולשידור הגיבוי יש תדרים שונים של תמונות מפתח. צריך להגדיר אותם כך שתדירות תמונות המפתח תהיה זהה בשניהם.
gopSizeLong
סיבה:הגדרות וידאו לא נכונות
תיאור:צריך להשתמש בתדירות תמונות מפתח של ארבע שניות לכל היותר. נכון לעכשיו, תמונות המפתח אינן נשלחות בתדירות גבוהה מספיק. הדבר יגרום לאחסון במאגר הנתונים הזמני. תדירות תמונות המפתח הנוכחית היא %(actual_gop).1f שניות. חשוב לשים לב ששגיאות בהטמעת הנתונים עשויות לגרום לגדלים שגויים של מקבצי תמונות (GOP).
gopSizeOver
סיבה:יש לבדוק את הגדרות הווידאו
תיאור:צריך להשתמש בתדירות תמונות מפתח של ארבע שניות לכל היותר. נכון לעכשיו, תמונות המפתח אינן נשלחות בתדירות גבוהה מספיק. הדבר עלול לגרום לאחסון במאגר הנתונים הזמני. תדירות תמונות המפתח הנוכחית היא %(actual_gop).1f שניות. חשוב לשים לב ששגיאות בהטמעת הנתונים עשויות לגרום לגדלים שגויים של מקבצי תמונות (GOP).
gopSizeShort
סיבה:יש לבדוק את הגדרות הווידאו
תיאור:הגודל של מקבץ התמונות (GOP) קטן מאוד, דבר שעשוי לפגום באיכות התמונה. תדירות תמונות המפתח המומלצת היא ארבע שניות. תדירות תמונות המפתח הנוכחית היא %(actual_gop).1f שניות. חשוב לשים לב ששגיאות בהטמעת הנתונים עלולות לגרום לגדלים שגויים של מקבצי תמונות (GOP).
multipleAudioStreams
סיבה:יש לבדוק את הגדרות האודיו
תיאור:שידור הטמעת הנתונים חייב להכיל שידור אודיו אחד בלבד. כרגע ישנם כמה שידורי אודיו.
multipleVideoStreams
סיבה:הגדרות וידאו לא נכונות
תיאור:שידור הטמעת הנתונים חייב להכיל שידור וידאו אחד בלבד. כרגע הוא מכיל כמה שידורי וידאו.
noAudioStream
סיבה:ללא אודיו
תיאור:שידור הטמעת הנתונים חייב להכיל בדיוק שידור אודיו אחד. כרגע הוא אינו מכיל שידורי אודיו כלשהם.
noVideoStream
סיבה:ללא וידאו
תיאור:שידור הטמעת הנתונים חייב להכיל בדיוק שידור וידאו אחד. כרגע הוא אינו מכיל שידורי וידאו כלשהם.
openGop
סיבה:הגדרות וידאו לא נכונות
תיאור:צריך לשנות את ההגדרה של מקודד הווידאו ל'קבוצת תמונות סגורה (GOP).' נראה שהאפשרות מוגדרת כ-'GOP פתוח'. אין תמיכה ב-YouTube.
resolutionMismatch
סיבה:הגדרת שידור משני שגויה
תיאור:בתצורה הנוכחית לשידור הווידאו הראשי ולשידור הגיבוי יש רזולוציות שונות. צריך להגדיר אותם כך שהרזולוציה תהיה זהה בשניהם.
videoBitrateMismatch
סיבה:יש לבדוק את השידור המשני
תיאור:בתצורה הנוכחית לשידור הווידאו הראשי ולשידור הגיבוי יש קצבי העברת נתונים שונים. צריך להגדיר אותם כך שקצב העברת הנתונים של הסרטון יהיה זהה בשניהם.
videoCodec
סיבה:הגדרות וידאו לא נכונות
תיאור:הווידאו מקודד עם רכיב קודק שאינו נתמך. יש להגדיר את רכיב הקודק של הווידאו לרכיב קודק נתמך (H.264).
videoCodecMismatch
סיבה:הגדרת שידור משני שגויה
תיאור:בתצורה הנוכחית השידור הראשי וסטרימינג הגיבוי של הסרטון משתמשים ברכיבי קודק וידאו שונים. צריך להגדיר אותם כך ש-Codec הווידאו יהיה זהה בשניהם.
videoIngestionStarved
סיבה:עוצמת אודיו חלשה
תיאור:YouTube לא מקבל מספיק וידאו כדי לשמור על סטרימינג חלק. לכן, הצופים יחוו עיכובים בגלל שמירה במאגר נתונים זמני.
videoInterlaceMismatch
סיבה:הגדרת שידור משני שגויה
תיאור:בתצורה הנוכחית לשידור הווידאו הראשי ולסטרימינג לגיבוי יש שילוב תוכן שונה. צריך להגדיר אותם כך ששילוב התוכן יהיה זהה בשניהם.
videoProfileMismatch
סיבה:הגדרת שידור משני שגויה
תיאור:בתצורה הנוכחית לשידור הווידאו הראשי ולשידור הגיבוי יש פרופילים שונים. צריך להגדיר אותם כך שיהיו בעלי אותו פרופיל.
videoResolutionSuboptimal
סיבה:יש לבדוק את הרזולוציה
תיאור:צריך לבדוק את רזולוציית הסרטון. הרזולוציה הנוכחית, (%(actual_w)dx%(actual_h)d), אינה אופטימלית.
videoResolutionUnsupported
סיבה:רזולוציה לא נתמכת
תיאור:צריך לשנות את רזולוציית הסרטון. הרזולוציה הנוכחית, (%(actual_w)dx%(actual_h)d), אינה נתמכת בהגדרה הזו. רזולוציית הסרטון הצפויה היא (%(expected_w)dx%(expected_h)d).
status.healthStatus.configurationIssues[].severity string
מציין עד כמה הבעיה חמורה במקור הנתונים.

הערכים החוקיים לנכס הזה הם:
  • info – הסרטון משודר לצופים ללא השפעה שלילית על הביצועים.
  • warning – הסרטון משודר לצופים, אבל הביצועים לא אופטימליים.
  • error – לא ניתן לשדר את הסרטון לצופים.
status.healthStatus.configurationIssues[].reason string
תיאור קצר של הבעיה. במסמך בעיות בהגדרה של משאבי סטרימינג בשידור חי ניתן לזהות את הסיבה לכל סוג של בעיה בהגדרות.
status.healthStatus.configurationIssues[].description string
תיאור מפורט של הבעיה. כשניתן, התיאור מספק מידע על האופן שבו ניתן לפתור את הבעיה. במסמך בעיות בהגדרה של משאבי Livestream מפורטים כל סוגי הבעיות שקשורות לתצורה והתיאורים המשויכים להן.
contentDetails object
האובייקט content_details מכיל מידע על השידור, כולל כתובת ה-URL להטמעת כתוביות של כתוביות.
contentDetails.closedCaptionsIngestionUrl string
כתובת ה-URL של הטמעת הנתונים שאליה נשלחים הכתוביות.
contentDetails.isReusable boolean
מציין אם השידור ניתן לשימוש חוזר. המשמעות היא שניתן לקשר אותו לכמה שידורים. בדרך כלל המשדרים עושים שימוש חוזר באותו שידור לשדר במגוון שידורים שונים, אם השידורים האלה מתבצעים בזמנים שונים.

אם הערך הזה מוגדר לערך false, לא ניתן יהיה להשתמש שוב בשידור. כלומר, ניתן לקשר אותו רק לשידור אחד. ההבדלים בין שידורים חיים לשימוש חוזר לבין שימוש חוזר בסטרימינג זמינים בדרכים הבאות:
  • ניתן לקשר שידור חד-פעמי רק לשידור אחד.
  • מחיקה אוטומטית של שידור לא ניתן לשימוש לאחר סיום השידור האוטומטי.
  • השיטה liveStreams.list לא מפרטת זרמים שאינם ניתנים לשימוש חוזר אם מתקשרים לשיטה ומגדירים את הפרמטר mine ל-true. הדרך היחידה לאחזר את המשאב עבור מקור נתונים שאינו ניתן לשימוש היא להשתמש בפרמטר id כדי לזהות את מקור הנתונים.