מבוא
המסמך הזה כולל הסבר על כל מה שקשור לשידור חי ב-YouTube, שנוצר ומנוהל באמצעות ה-API לסטרימינג בשידור חי ב-YouTube ובאמצעות YouTube Content ID API.
משאבים וסוגי משאבים
כפי שמוסבר במדריך תחילת העבודה, משאב הוא ישות נתונים נפרדת עם מזהה ייחודי. כדי ליצור ולנהל אירועים בשידור חי ב-YouTube, תשתמשו במספר סוגים שונים של משאבים שמוגדרים כחלק מ-YouTube Data API או מ-YouTube Content ID API. המשאבים המפורטים מתחת לכותרת YouTube Live Streaming API מוגדרים באופן טכני בממשקי ה-API האחרים האלה, אבל הם רשומים בנפרד כי הם משמשים רק לשידורים חיים.
מקורות מידע של YouTube Live Streaming API
משאבי YouTube Data API
משאבי YouTube Content ID API
יצירה וניהול של שידור חי
בשלבים הבאים נסביר איך ליצור ולנהל אירוע בשידור חי ב-YouTube. השלבים נחלקים לשלבים הבאים:
שלב 1: הגדרת השידור
שלב 1.1: יצירת שידור
תוכלו להתקשר לשיטה liveBroadcasts.insert
כדי להוסיף את השידור ללוח הזמנים של האירועים בשידור חי ב-YouTube. המשאב שliveBroadcast
מכניס צריך להגדיר ערכים לנכסים שמפורטים בהמשך.
כשמגדירים את השידור, חשוב על ההנחיות הבאות:
אם אתם רוצים לשלב את שלב הבדיקה בשידור, כאשר אתם יכולים להציג את שידור הווידאו שלכם גם אם הצופים האחרים לא יכולים לראות את השידור, עליכם להגדיר את המאפיין
contentDetails.monitorStream.enableMonitorStream
כ-true
ואת המאפייןcontentDetails.enableAutoStart
כ-false
. אלו הם ערכי ברירת המחדל לשני הנכסים.כדי ליצור קובץ עזר מהשידור המוקלט, צריך להגדיר את המאפיין
contentDetails.recordFromStart
של השידור כ-true
. אם אתם רוצים שהסרטון המוקלט יהיה זמין להפעלה מיד אחרי סיום השידור, תצטרכו גם להגדיר את המאפייןcontentDetails.enableDvr
כ-true
. (ערך הנכסים של שני הנכסים האלה הואtrue
).ניתן לעדכן כל אחד מהנכסים של
contentDetails
, כל עוד סטטוס השידור שלך הוא עדייןcreated
אוready
.ניתן לעדכן את שעת ההתחלה המתוזמנת ואת שעת הסיום המתוכננת של השידור, כל עוד הסטטוס של השידור הוא
created
,ready
אוtesting
.אפשר לעדכן את השם, התיאור, סטטוס הפרטיות ושדות מטא-נתונים נוספים שהם חלק מהמשאב
video
של השידור בכל שלב.
הערה: אם רוצים שהסרטון יהיה זמין רק למשתמשי YouTube ספציפיים, מגדירים את ערך המאפיין שלstatus.privacyStatus
כ-unlisted
או כ-private
לפי הצרכים.
עיבוד התגובה ל-API
כשקוראים לשיטה liveBroadcasts.insert
, התשובה ב-API מכילה את המשאב liveBroadcast
שיצרתם. יש לחלץ את הקוד ולשמור את ה-id
מהמשאב הזה. הערך הזה יעזור לכם לזהות את השידור בבקשות API עתידיות. (אפשר גם לזהות את המשאב video
שתואם למשאב liveBroadcast
באמצעות אותו מזהה.)
שלב 1.2: יוצרים שידור
משאב liveStream
מאפשר לך להעביר את הסרטון שלך ל-YouTube, ומתאר את התוכן שאתה משדר. כל שידור צריך להיות משויך לשידור אחד בדיוק.
צריך לקרוא לשיטה liveStreams.insert
כדי ליצור את שידור הווידאו של האירוע. כשיוצרים את מקור הנתונים, צריך להגדיר ערכים לנכסים המפורטים בהמשך:
למעט השם של מקור הנתונים, לא ניתן לעדכן את הערכים אחרי שהשידור נוצר. אם אתם צריכים לשנות אותם, למעשה עליכם ליצור זרם שונה על ידי חזרה על השלב הזה. התהליך הזה מתואר בפירוט בשלב 3.5 בהמשך המסמך.
אפשר גם להגדיר ערכים עבור המאפיינים הבאים:
snippet.description
– בדומה לכותרת השידור, אפשר לעדכן את תיאור השידור לאחר יצירת השידור. הכותרת והתיאור לא גלויים למשתמשי YouTube.contentDetails.isReusable
– מציין אם אפשר להשתמש שוב בשידור. כלומר, הוא יכול להיות משויך לכמה שידורים. הערך של הנכס הזה קובע בפועל אם לערוץ יש קשר אחד-לאחד או אחד-לאחד בין המשאביםliveBroadcast
ו-liveStream
:- אם משתמשים בערך ברירת המחדל של הנכס
true
, אפשר להשתמש באותו משאבliveStream
בכל השידורים של ערוץ. כלומר, אין צורך לחזור על השלב הזה (1.2) עבור כל שידור. במקום זאת, תוכלו פשוט להשתמש שוב במזהה השידור לשידורים הבאים. - אם הערך שמוגדר לנכס הוא
false
, צריך ליצור שידור חדש לכל שידור.
- אם משתמשים בערך ברירת המחדל של הנכס
אחרי ששולחים את מקור ה-API, התגובה ל-API מכילה את המשאב liveStream
שיצרתם. יש לחלץ את הקוד ולשמור אותו
id
מהמשאב הזה. הערך הזה יעזור לכם לזהות את מקור התנועה בבקשות API בעתיד.
שלב 1.3: קישור השידור לזרם שלו
לאחר שיצרת את המשאבים של liveBroadcast
ושל liveStream
, עכשיו צריך לשייך את שניהם באמצעות שיטת liveBroadcasts.bind
. פעולה זו מקשרת את קטעי הווידאו שתעבירו ל-YouTube באמצעות שידור האירוע עבור אותו סרטון.
בקריאה לשיטה liveBroadcasts.bind
, מגדירים את הפרמטר id
למזהה השידור שהתקבל בשלב 1.1 ואת הפרמטר streamId
למזהה השידור שהתקבל בשלב 1.2.
שלב 2: מצהירים על זכויות יוצרים בתוכן
אם אתם רוצים להציג מודעות במהלך השידור, עליכם לתבוע בעלות על הסרטון בשידור לפני שהאירוע יתחיל. השלבים הבאים מסבירים את התהליך. שימו לב שכל הקריאות ל-API שנידונו בשלב הזה מוגדרות ב-YouTube Content ID API.
שלב 2.1: יצירת נכס
משאב asset
מייצג קטע של קניין רוחני. במקרה הזה, הנכס הוא השידור שלכם. כדי ליצור את הנכס צריך להתקשר לשיטה assets.insert
.
תגובת ה-API תכיל את המשאב asset
שיצרת. הקוד שלכם צריך לחלץ את id
מהמאגר הזה ולאחסן אותו, כי יהיה צורך בערך הזה כדי לזהות את הנכס בבקשות API בעתיד.
שלב 2.2: הגדרת הבעלות על הנכס
נתוני הבעלות על נכס מזהים את הבעלים של הנכס וגם את האזורים שבהם הנכס הוא בבעלותם. YouTube משתמש בנתונים האלה כדי לקבוע איפה בעלים יכולים להגדיר את המדיניות לגבי סרטון שהוגשה לגביו תלונה על הפרת זכויות יוצרים.
לדוגמה: אם יש לכם זכות לשדר אירוע בארצות הברית, ולשדרן אחר יש זכויות זהות לקנדה, תוכלו להגדיר מדיניות שונה לסרטון השידור ולסרטונים שהועלו על ידי משתמשים שתואמים לסרטון המשודר. מדיניות ההתאמה שלכם תחול על סרטונים תואמים שהועלו על ידי משתמשים בארצות הברית, ואילו המדיניות של הבעלים האחרים תחול על סרטונים תואמים בקנדה.
כדי להגדיר את האזורים שבהם יש לכם בעלות על הנכס, עליכם לקרוא לשיטה ownership.update
.
באותה בקשה, מגדירים את הפרמטר assetId
לערך id
שאחסנת בשלב 2.1.
שלב 2.3: הגדרת מדיניות ההתאמה של הנכס
מדיניות התאמה של נכס מסבירה מה צריך לעשות ב-YouTube כאשר משתמש מעלה סרטון שתואם לקובץ עזר המשויך לנכס. במקרה כזה, מדיניות ההתאמה תציין איך מערכת YouTube צריכה לטפל בסרטון שהעליתם, שתואם לשידור החי שלכם.
הערה: יש להגדיר מדיניות התאמה אם בכוונתכם ליצור קובץ עזר מסרטון השידור, ולהשתמש בקובץ העזר הזה כדי לזהות סרטונים שהועלו על ידי משתמשים ומתאימים לשידור. אם לא, אפשר לדלג על השלב הזה.
כדי להגדיר את מדיניות ההתאמה, קודם צריך לזהות את המדיניות שאתם רוצים להחיל. אתם יכולים לאחזר רשימה של כללי המדיניות הקיימים על ידי קריאה לשיטה policies.list
, או להגדיר שיטה חדשה על ידי קריאה לשיטה policies.insert
. בכל מקרה, צריך לתעד את id
המדיניות שרוצים להחיל.
אחרי שמאתרים את המדיניות, צריך לקרוא לשיטה assetMatchPolicy.update
. בבקשה הזו, מגדירים את הפרמטר assetId
לערך id
שאחסנת בשלב 2.1.
שלב 2.4: מצהירים על זכויות יוצרים בסרטון
בשלב הזה יוצרים תלונה על הפרת זכויות יוצרים, שמקשרת את הסרטון לשידור של הנכס שיצרתם בשלב 2.1. התלונה מגדירה מדיניות שחלה רק על הסרטון המשודר שלכם. (סרטונים שהועלו על ידי משתמשים ותואמים לסרטון השידור שלך כפופים למדיניות ההתאמה שנקבעה בשלב הקודם).
כדי ליצור תלונה, צריך להפעיל את השיטה claims.insert
. במשאב claim
שמוסיפים, צריך להגדיר ערכים למאפיינים הבאים:
assetId
– השגת את הערך הזה בשלב 2.1.videoId
– מזהה השידור שקיבלת בשלב 1.1.policy
– זהו משאב מסוגpolicy
. כדי להחיל מדיניות קיימת, צריך להגדיר את המאפייןid
של המשאב לפי המזהה של המדיניות הקיימת. בשלב הקודם מוסבר איך לאחזר את המזהה של מדיניות קיימת.contentType
– יש להגדיר את הערך הזה ל-audiovisual
.
עיבוד התגובה ל-API
כשמוסיפים את התלונה, תגובת ה-API מכילה את המשאב claim
שיצרתם. יש לחלץ את הקוד ולשמור אותו
id
מהמשאב הזה. לאחר מכן, תשתמשו בערך הזה כדי ליצור קובץ עזר מהסרטון שעבר עיבוד.
שלב 2.5: עדכון הגדרות המודעות של השידור
עליך להגדיר את אפשרויות הפרסום עבור הסרטון שלך אם ברצונך להפעיל מודעה לפני סרטון כשהצופים מתחילים לצפות בשידור שלך או להציג מודעות במהלך הפסקות בשידור.
- אם תפעילו מודעות לפני הסרטון בשידור שלכם, כל הצופים יראו מודעה כשהם יתחילו לצפות בשידור שלכם גם אם הם יתחילו לצפות באמצע השידור.
- אם תפעילו מודעות באמצע הסרטון בשידור, תוכלו להוסיף נקודות לסימון המודעה במהלך השידור.
כדי להפעיל מודעות, צריך להפעיל את השיטה videoAdvertisingOptions.update
. בבקשה שלכם, שלחו את הפרמטר videoId
לשידור id
שקיבלתם בשלב 1.1. השתמשו בנכס adFormats[]
של המשאב videoAdvertisingOption
כדי לזהות את הפורמטים של המודעות (preroll
, midroll
או postroll
) שאתם רוצים להפעיל.
שלב 3: בדיקה
במהלך השלב הזה, מטמיעים נגן שמציג את הסטרימינג של המעקב עבור השידור שלכם, כדי שתוכלו לבדוק את חוויית הצפייה. זרם המעקב הוא שידור פרטי שמאפשר לכם לצפות בתצוגה מקדימה של סרטון השידור כפי שהוא יוצג לצופים ב-YouTube.
שימו לב שאתם יכולים לבדוק את שידור הווידאו שלכם רק אם השידור שלו מופעל. כברירת מחדל, זרמי המעקב של השידורים מופעלים. ניתן להשבית את הסטרימינג של שידור של שידור על ידי הגדרת המאפיין contentDetails.monitorStream.enableMonitorStream ל-false
כשיוצרים או מעדכנים את השידור הזה.
שלב 3.1: הטמעת נגן סטרימר
מאחזרים את השידור באמצעות שיטת liveBroadcasts.list
, וחלצים את הערך של המאפיין contentDetails.streamDetails.monitorStreamEmbedHtml
. הערך הזה מכיל את ה-HTML שצריך להטמיע כדי להטמיע נגן YouTube שמציג את השידור.
שלב 3.2: מתחילים לצפות בסרטון
מתחילים לשדר וידאו בסטרימינג של הסרטון.
שלב 3.3: מוודאים ששידור הווידאו שלכם פעיל
מומלץ לקרוא לשיטה liveStreams.list
כדי לאחזר את המשאב של liveStream
המשויך לשידור שלכם. בדקו שהערך של הנכס status.streamStatus
הוא active
. הערך הזה מציין ששרתי YouTube מקבלים נתונים מהמקודד שלכם בצורה נכונה.
שלב 3.4: העברת הסטטוס של השידור שלך לבדיקה
מתקשרים לשיטה liveBroadcasts.transition
כדי לעדכן את הסטטוס של השידור. מגדירים את ערך הפרמטר id
למזהה השידור שהתקבל בשלב 1.1, ומגדירים את ערך הפרמטר broadcastStatus
לערך testing
.
אחרי שמתקשרים לשיטה liveBroadcasts.transition
, יכול להיות שיחלפו כמה שניות או אפילו דקה עד שהמעבר יושלם. במהלך פרק הזמן הזה, צריך לבדוק את הסטטוס של השידור ב-API. עד שהמעבר יושלם, סטטוס השידור יהיה testStarting
. כשהמעבר יושלם, הסטטוס יהיה testing
.
שלב 3.5: השלמה של הבדיקה
אם הבדיקה עברה בצורה חלקה, אתם יכולים להתקדם אל שלב 4. עם זאת, במקרים מסוימים, ייתכן שתצטרכו לבצע בדיקות נוספות. לדוגמה, אם בבדיקה שלכם גילית ששידור הווידאו לא מוגדר כמו שצריך, תצטרכו לפתור את הבעיה לפני שתמשיכו בשידור.
אם השידור החי לא מוגדר נכון, צריך לבטל את הקישור הקיים ולמחוק את השידור החדש. לדוגמה, ייתכן שהשידור לא הוגדר כהלכה אם הוא מציין פורמט וידאו שגוי.
-
כדי לבטל את הקישור לשידור הווידאו, יש להפעיל את השיטה
liveBroadcasts.bind
בשלב 1.3. בבקשת ה-API, מגדירים את הפרמטרid
לערךid
שמתקבל בשלב 1.1. אין לכלול בבקשה את הפרמטרstreamId
. -
כדי למחוק את שידור הווידאו, יש להפעיל את השיטה
liveStreams.delete
. בבקשה, מגדירים את הפרמטרid
לערךid
שמתקבל בשלב 1.2. -
יש לחזור על שלב 1.2 כדי ליצור משאב
liveStream
חדש שיוגדר כהלכה. אחר כך חוזרים על שלב 1.3 כדי לקשר את השידור החדש לשידור, ואת שלבים 3.1 עד 3.3 כדי לבדוק את השידור החדש.
שלב 3.6: מפעילים את הנכסים של autoStart
ושל autoStop
אחרי שמשלימים את שלב הבדיקה, אפשר להגדיר את מאפייני השידור contentDetails.enableAutoStart
ו-contentDetails.enableAutoStop
של true
לפני שהשידור מתחיל בפועל. לא ניתן להגדיר את המאפיינים האלו כ-true
לפני שלב הבדיקה, מכיוון שהבדיקה תגרום בפועל להתחלת השידור.
שלב 4: שידור
במהלך השלב הזה, הסרטון של השידור שלך יהיה זמין לצפייה לקהל שלך.
שלב 4.1: מתחילים לצפות בסרטון
מתחילים לשדר וידאו בסטרימינג של הסרטון.
שלב 4.2: מוודאים ששידור הווידאו שלכם פעיל
מומלץ לקרוא לשיטה liveStreams.list
כדי לאחזר את המשאב של liveStream
המשויך לשידור שלכם. בדקו שהערך של הנכס status.streamStatus
הוא active
. הערך הזה מציין ששרתי YouTube מקבלים נתונים מהמקודד שלכם בצורה נכונה.
שלב 4.3: העברת הסטטוס של השידור החי
חשוב: השלב הזה הופך את הסרטון לגלוי לקהל שלך.
מתקשרים לשיטה liveBroadcasts.transition
כדי לעדכן את הסטטוס של השידור. מגדירים את ערך הפרמטר id
למזהה השידור שהתקבל בשלב 1.1, ומגדירים את ערך הפרמטר broadcastStatus
לערך live
.
אם מגדירים את המאפיין contentDetails.enableAutoStart
של המשאב liveBroadcast
לערך true
, לא צריך להפעיל את השיטה liveBroadcasts.transition
.
אחרי ביצוע הקריאה ל-API, או אם הערך של המאפיין contentDetails.enableAutoStart
הוא true
לאחר תחילת השידור, בדרך כלל צריך לחכות 5 עד 10 שניות להשלמת המעבר. המעבר עשוי להימשך עד דקה. במהלך פרק הזמן הזה, צריך לבדוק את הסטטוס של השידור ב-API. עד שהמעבר יושלם, סטטוס השידור יהיה liveStarting
. הסטטוס יהיה live
לאחר שהמעבר יושלם, והצופים יוכלו לצפות בשידור שלך מנקודה זו בשידור החי בצ'אט.
שימו לב להשפעות הבאות של הפקודה הזו:
- אם הפעלתם את זרם המעקב לשידור שלכם – ראו שלב 3.1 – תוכלו לראות את זרם המעקב בנגן מוטמע.
- אם הגדרתם ערך עבור הנכס
contentDetails.streamDetails.broadcastStreamDelayMs
של השידור, שידור השידור, שיהיה גלוי לצופים אחרים, יתעכב בפרק הזמן הזה.
שלב 4.4: הוספת הפסקות למודעות לשידור
מפעילים את השיטה liveBroadcasts.cuepoint
כדי להוסיף נקודת סימון. נקודת המבט עשויה להפעיל את ההפסקה למודעה. במשאב cuepoint
שסופק בגוף הבקשה, הגדירו את המאפיין durationSecs
למשך הזמן הרצוי של ההפסקה (בשניות). (ערך ברירת המחדל הוא 30
).
בשלב זה, YouTube מנסה להפעיל מודעה בנגן הווידאו עבור כל הצופים שצפו בשידור כאשר נוספה נקודת המבט של המודעה. ההצגה של מודעה תלויה במגוון גורמים, כגון זמינות המודעה והיסטוריית הצפייה של הצופה. צופים שמקבלים הפסקה למודעה חוזרים לשידור שלכם בסיום ההפסקה, ואילו צופים שלא מוצגת להם מודעה ממשיכים לצפות בשידור השידור במהלך ההפסקה.
המדריך תחילת העבודה מספק מידע נוסף על חוויית הצפייה במהלך ההפסקה למודעה של שידור חי.
שלב 5: סיום השידור
שלב 5.1: מפסיקים את השידור
כאן מסתיימת הבדיקה של מערכת השידור החי של YouTube.
שלב 5.2: העברת הסטטוס של השידור להשלמת התהליך
כשתהיו מוכנים להפסיק את השידור, קראו לשיטה liveBroadcasts.transition
של ה-API כדי לעדכן את סטטוס השידור. מגדירים את ערך הפרמטר id
כמזהה השידור שמתקבל בשלב 1.1, ומגדירים את ערך הפרמטר broadcastStatus
כ-complete
.
אם הגדרתם את מאפייני השידור contentDetails.recordFromStart
ואתcontentDetails.enableDvr
השידור בתור true
, בסיום האירוע בשידור חי, הקהל יוכל לצפות מיד בהפעלת האירוע בשידור חי.
שלב 6: יצירת קובץ עזר
בסיום ההקלטה בשידור חי, תוכלו ליצור קובץ עזר מהסרטון המוקלט. הפעולה הזו מורה למערכת YouTube לחפש סרטונים שהועלו על ידי משתמשים שתואמים לשידור ולטפל בהם בהתאם למדיניות ההתאמה שהגדרתם בשלב 2.3.
חשוב: כדי שתוכלו ליצור את קובץ העזר, עליכם להגדיר את נכס השידור של contentDetails.recordFromStart
לערך true
.
שלב 6.1: עריכת הסקר ב-Data API לגבי סטטוס הסרטון
כדי ליצור קובץ עזר מ-YouTube, צריך לסיים את העיבוד של שידור או סרטון שהועלה. כדי לקבוע אם העיבוד של הסרטון הסתיים, מומלץ לבדוק את השיטה videos.list
של ממשק ה-API של YouTube Data ולהגדיר את הפרמטר part
ל-status
ואת הפרמטר id
למזהה השידור ששמרתם בשלב 1.1.
תגובת ה-API לבקשת הסקר תכלול משאב video
.
כאשר הערך של נכס status.uploadStatus של המשאב הזה הוא processed
, ממשיכים לשלב 6.2.
שלב 6.2: יוצרים קובץ עזר מהסרטון שעבר עיבוד
כדי ליצור את קובץ העזר, קראו לשיטה references.insert
של Content ID API והגדירו את הפרמטר claimId
למזהה התביעה ששמרתם בשלב 2.4.
העברת Content ID בשידור חי
חלק משותפי YouTube יכולים ליצור קובץ עזר לפני המעבר שלהם למצב testing
, אבל התכונה הזו לא זמינה לכל השותפים. כחלק מהתהליך הזה, המערכת של YouTube יוצרת ומעדכנת באופן קבוע את השידור החי של השידור החי של האירוע. בנוסף, המערכת של YouTube מחפשת סרטונים שהועלו על ידי משתמשים בזמן שהשידור עדיין מתבצע. שימו לב שיצירת קובץ עזר לפני ששידור מתחיל מפעילה את ההקלטה באופן אוטומטי עבור השידור, ולא ניתן לכבות את ההקלטה לאחר יצירת קובץ העזר.
כדי להפעיל את השידור החי שלכם במערכת Content ID, נסו את הפעולות המתוארות בשלב 6.2 לאחר תביעת הבעלות על הסרטון בשלב 2.4.
אם החשבון של השותף לא אושר ליצור קובץ עזר לשידור חי לפני שהשידור מתרחש, ממשק ה-API יחזיר שגיאת fingerprintingNotAllowed
. במקרה כזה, צריך לחכות עד שהשידור יושלם, כפי שמתואר בשלבים 6.1 ו-6.2 שלמעלה, לפני שיוצרים את קובץ העזר.