本頁列出 YouTube Live Streaming API 的變更和說明文件更新。訂閱這份變更記錄。
2025 年 7 月 14 日
更新 liveChatMessages.streamList 方法的說明,提供 streamList API 用法指南。
2023 年 10 月 9 日
如需參考,您可以在這個 CSV 檔案中查看貼圖 ID 與超級貼圖的對應關係。
liveChatMessage 資源的 snippet.superStickerDetails.superStickerMetadata.stickerId 屬性和 superChatEvent 資源的 snippet.superStickerMetadata.stickerId 屬性定義都已更新,反映這項資訊。
2023 年 9 月 15 日
API 現在支援在直播中插入廣告的新方式。除了liveCuepoints,YouTube 現在也支援自動在直播中以固定間隔插入片中廣告插播時間點的功能。
如果廣播擁有者啟用自動廣告,就能查看廣告行為的下列層面:
- 片中廣告插播時間點之間的時間長度。
- 廣告提示點的排程策略。你可以同時為所有觀眾插入提示點,也可以為不同觀眾插入不同時間的提示點。後者策略可讓 YouTube 以較高的頻率排定提示點,讓符合資格的觀眾在適當時機收到提示點。
- 這段期間不會顯示片中廣告。使用這項功能時,廣播擁有者會指定暫停插播片中廣告,直到特定時間為止。
為支援這項功能,文件已反映下列 API 變更:
liveBroadcast資源現在包含monetizationDetails物件。物件的欄位會指出是否為廣播啟用自動插入廣告功能,並指定排定提示點的其他資訊。liveBroadcast.list方法的part參數支援monetizationDetails值。update方法 可用於暫停在直播中插入片中廣告一段時間。說明文件現在也列出更新現場直播營利詳細資料時可能發生的幾種錯誤。
2023 年 8 月 1 日
這次更新的修改如下:
-
liveBroadcasts.update方法不再需要為下列欄位指定值:snippet.titlestatus.privacyStatus
如果要求中省略這些欄位,系統就不會變更這些欄位。
2022 年 11 月 1 日
-
透過新的
liveBroadcasts.cuepoint方法,在 YouTube 進行直播的頻道擁有者可以在直播中插入提示點,觸發廣告插播。這個方法會取代liveCuepoints.insert方法,後者僅允許 YouTube 內容合作夥伴在直播中插入提示點。我們已更新多份指南,反映這項新方法的適用情形。
-
注意:這是淘汰公告。
liveCuepoints.insert方法現已淘汰。2023 年 5 月 1 日當天或之後,系統將移除對liveCuepoints.insert方法的支援。API 使用者應更新應用程式,改為呼叫liveBroadcasts.cuepoint方法。 -
liveBroadcasts.control方法的說明文件已移除。我們已在 2020 年 9 月發布該方法的淘汰通知。
2022 年 10 月 1 日
這次更新的修改如下:
-
liveBroadcasts.update方法不再需要為下列欄位指定值:contentDetails.enableContentEncryptioncontentDetails.enableDvrcontentDetails.enableEmbedcontentDetails.recordFromStartcontentDetails.startWithSlate
如果要求中省略這些欄位,系統就不會變更這些欄位。
-
已移除過時
liveBroadcast欄位的說明文件:contentDetails.enableContentEncryptioncontentDetails.startWithSlate
2022 年 4 月 1 日
這次更新的修改如下:
-
snippet.type屬性現在支援兩個新值:membershipGiftingEventgiftMembershipReceivedEvent
-
liveChatMessage資源的新snippet.membershipGiftingDetails屬性及其子項包含會員禮物活動的相關資訊。同樣地,新的snippet.giftMembershipReceivedDetails屬性和其子項包含「收到會員禮物」事件的相關資訊。
2021 年 9 月 15 日
這次更新的修改如下:
-
snippet.type屬性現在支援兩個新值:newSponsorEventmemberMilestoneChatEvent
-
liveChatMessage資源的新snippet.memberMilestoneChatDetails屬性及其子項包含會員里程碑訊息事件的相關資訊。同樣地,新的snippet.newSponsorDetails屬性和其子項包含「新贊助者」事件的相關資訊。
2020 年 12 月 1 日
API 的 liveBroadcasts.transition
方法支援新的 403 (Forbidden) 錯誤,表示使用者在特定時間範圍內傳送的請求過多。錯誤原因是 userRequestsExceedRateLimit。
2020 年 9 月 21 日
-
liveBroadcast資源的status.madeForKids屬性定義已更新,明確指出該屬性為唯讀。這不代表 API 功能有所變更。如要將直播指定為兒童導向,請在呼叫
liveBroadcasts.insert方法建立直播時,將status.selfDeclaredMadeForKids屬性設為true。 -
注意:這項異動包括淘汰公告,以及先前淘汰公告的更新。
liveBroadcasts.control方法將於 2020 年 10 月 1 日當天或之後淘汰。上述日期過後,所有對這個方法的呼叫都會傳回禁止 (403) 錯誤,這個方法稍後也會完全移除。客戶仍可自行實作片頭,方法是在傳送至 YouTube 擷取伺服器的影片中加入疊加層。2020 年 4 月 16 日發布的淘汰公告原定於 2020 年 9 月 1 日生效,現已延後至 2020 年 10 月 1 日或之後。因此,該淘汰公告中包含的功能和
liveBroadcasts.control方法都會同時淘汰。
2020 年 7 月 17 日
注意:這是先前淘汰公告的更新。
2016 年 4 月已淘汰的 liveStream 資源 cdn.format 欄位,將於 2020 年 8 月 17 日起停止支援。自該日期起,仍使用該欄位的要求將會失敗。
如果程式碼仍使用 cdn.format 欄位,則必須更新,才能使用 cdn.frameRate 和 cdn.resolution 屬性,分別指定影格速率和解析度。
2020 年 7 月 6 日
「透過 HLS 傳送 YouTube 直播內容」指南已更新,變更內容如下:
- 媒體片段的建議時間長度已更新為 1 到 4 秒。
- 新章節說明如何從 YouTube 創作者工作室取得 HLS 擷取網址。
-
file參數值的格式設定說明已移至新的「完成 HTTP 即時串流內容攝入網址」一節。無論 HLS 擷取網址是透過 YouTube API 或 YouTube 創作者工作室取得,都適用這些操作說明。
此外,新的擷取通訊協定比較清單列出 YouTube 支援的擷取通訊協定、各通訊協定支援的轉碼器,以及各通訊協適用的用途等額外資訊。
2020 年 4 月 16 日
本次更新包含新屬性和淘汰公告:
-
liveBroadcast資源現在支援contentDetails.enableAutoStop屬性。這個屬性表示頻道擁有者停止在繫結的影片串流中串流影片後,廣播是否應在約一分鐘後自動停止。我們已更新廣播生命週期文件,說明如果將
contentDetails.enableAutoStart或contentDetails.enableAutoStop屬性設為true,建立及管理 YouTube 直播活動的逐步程序會有何變化。 -
注意:這是淘汰公告。這些異動將於 2020 年 9 月 1 日當天或之後生效。實際生效日期稱為淘汰日期,詳情請見下文。
本次更新說明可能發生的破壞性變更。這項異動會影響使用頻道預設
liveStream和liveBroadcast資源在 YouTube 上直播內容的 API 用戶端應用程式。具體來說,與永久性廣播和串流相關聯的廣播 ID和串流 ID將無法再用於啟動新的廣播。如果符合下列任一條件,應用程式就會受到影響:
- 這會檢查
liveBroadcast資源的isDefaultBroadcast屬性值。淘汰日期過後,系統不會傳回這項屬性。 - 這會檢查
liveStream資源的isDefaultStream屬性值。淘汰日期過後,系統不會傳回這項屬性。 - 這個方法會呼叫
liveBroadcasts.list方法,並將broadcastType參數值設為persistent或all。這項參數將在本次異動中淘汰。自淘汰日期起:- 如果
broadcastType參數值為persistent,liveBroadcasts.list方法就不會傳回任何結果。 - 如果
broadcastType參數值為all,則liveBroadcasts.list方法不會傳回該時間之前存在的持續性廣播。
- 如果
背景資訊:過去幾年,頻道啟用直播功能時,YouTube 會自動為該頻道建立預設串流和預設廣播。預設串流會無限期存在,沒有相關聯的開始或結束時間,也無法刪除。同樣地,預設的廣播會視為持續性。這項屬性一直存在,且不與特定事件繫結。
淘汰日期起:
- YouTube 不再建立預設直播和廣播。API 用戶端必須能夠建立及管理
liveBroadcast和liveStream資源,並將這些資源繫結在一起,而不是依賴預設資源。 - 如果頻道預設廣播和預設串流正在直播,也就是說,在淘汰作業生效時,頻道正在使用這些項目進行直播,則正在進行的廣播不會受到影響。不過,該頻道在結束播送後,就無法再使用預設播送和預設串流。
- 如果頻道的預設廣播和預設串流並未處於直播狀態,則在淘汰作業生效後,YouTube 會忽略使用這些資源播放影片的嘗試。
如果您的應用程式受到影響,請參閱下列文件,瞭解如何更新應用程式,確保在異動後仍能正常運作:
- 這會檢查
2020 年 3 月 31 日
注意:這是淘汰公告。
sponsor 資源和 sponsors.list 方法已淘汰,並由 member 資源和 members.list 方法取代。
2020 年 9 月 30 日當天或之後,系統將不再支援 sponsors.list 方法。
API 用戶端應更新對 sponsors.list 方法的呼叫,改用 members.list 方法。如要進一步瞭解新資源,請參閱 YouTube Data API 修訂記錄。
2020 年 3 月 11 日
我們已更新「透過 HLS 傳送 YouTube 直播內容」指南的「擷取端點」一節,說明編碼器在形成主要和備份擷取網址時,應使用哪個程序完成 file= 參數值。
2020 年 2 月 4 日
我們已更新「透過 HTTP 即時串流傳送 YouTube 直播內容」指南,指出 DELETE 要求為選用項目,且 YouTube 的 HTTP 即時串流端點會忽略這些要求。基於效能考量,YouTube 建議用戶端不要傳送 DELETE 要求。
2020 年 1 月 10 日
API 現在支援識別兒童導向內容,YouTube 稱之為「兒童專屬」。如要進一步瞭解「為兒童打造」的內容,請前往 YouTube 說明中心。
-
liveBroadcast資源 支援兩項新屬性,方便內容創作者和觀眾辨識「兒童專屬」內容:-
內容創作者可透過
selfDeclaredMadeForKids屬性,指定直播是否為兒童導向內容。透過liveBroadcasts.insert方法建立廣播時,可以設定這項屬性。請注意,只有在頻道擁有者授權 API 要求時,這個屬性才會包含在含有liveBroadcast資源的 API 回應中。 -
API 使用者可透過
madeForKids屬性,擷取廣播的「專為兒童設計」狀態。舉例來說,狀態可能根據selfDeclaredMadeForKids屬性的值而定。如要進一步瞭解如何設定頻道、影片或直播的目標觀眾,請參閱 YouTube 說明中心。
-
內容創作者可透過
-
在 YouTube Data API 中,
channel資源也支援新的selfDeclaredMadeForKids和madeForKids屬性。
我們也更新了《YouTube API 服務條款》和《開發人員政策》。詳情請參閱《YouTube API 服務條款 - 修訂記錄》。YouTube API 服務條款和開發人員政策的異動將於 2020 年 1 月 10 日 (太平洋時間) 生效。
2019 年 8 月 20 日
「透過 HLS 傳送 YouTube 直播內容」指南的「需求條件」部分已更新兩項內容:
- 該文件說明最佳做法是在每個媒體播放清單中,同時納入已確認的區隔和未結的區隔。如果伺服器端遺失媒體播放清單,這個做法可降低略過區隔的可能性。舉例來說,每個媒體播放清單最多可包含兩個已確認的區隔,以及最多五個未確認的區隔。
- 現在,每個媒體片段都必須傳送媒體播放清單。這樣一來,伺服器就能在媒體播放清單遺失時快速復原。這項做法先前列為建議。
2019 年 6 月 28 日
YouTube 現已支援 HLS 擷取。因此,liveStream 資源的 ingestionType 屬性支援新值 hls,可識別使用 HLS 擷取至 YouTube 的串流。
新的《透過 HTTP 即時串流傳送 YouTube 直播內容》指南提供相關指引,說明如何使用 HTTP 即時串流,從編碼器將直播內容串流至 YouTube。本指南旨在協助編碼器供應商在產品中新增 HLS 傳送支援。
2019 年 4 月 4 日
這次更新的修改如下:
-
我們已更新 API 參考文件,更清楚說明各個方法的常見用途,並透過 API Explorer 小工具提供動態的高品質程式碼範例。如需範例,請參閱
liveBroadcasts.list方法的說明文件。描述 API 方法的頁面現在有兩個新元素:-
您可以使用 APIs Explorer 小工具選取授權範圍、輸入範例參數和屬性值,然後傳送實際的 API 要求並查看實際的 API 回應。這個小工具也提供全螢幕檢視畫面,顯示完整的程式碼範例,並動態更新以使用您輸入的範圍和值。
-
「常見用途」一節說明頁面所列方法的常見用途。舉例來說,您可以呼叫
liveBroadcasts.list方法來擷取特定廣播的資料,或擷取目前使用者廣播的資料。您可以使用該部分的連結,在 API Explorer 中填入您用途的範例值,或開啟已填入這些值的全螢幕 API Explorer。我們進行這些變更的目的是要方便您查看程式碼範例,直接套用至您要在自家應用程式中導入的用途。
目前支援 Java、JavaScript、PHP、Python 和 curl 的程式碼範例。
-
-
「程式碼範例」頁面也採用全新 UI,提供上述所有功能。您可以使用這項工具探索不同方法的用途、將值載入 API Explorer,以及開啟全螢幕 API Explorer,取得 Java、JavaScript、PHP 和 Python 的程式碼範例。
配合這項異動,我們已移除先前列出 Java、PHP 和 Python 適用程式碼範例的網頁。
2019 年 2 月 25 日
liveChatMessage 和 superChatEvent 資源的說明文件已更新,反映這兩項資源現在都能包含超級貼圖的相關資訊。超級貼圖是超級留言訊息的一種,會顯示圖片。與其他超級留言一樣,超級貼圖訊息也是粉絲在 YouTube 直播期間購買。
- 在
liveChatMessage資源中,snippet.type屬性現在會設為superStickerEvent,表示資源包含超級貼紙的相關資訊。在這種情況下,資源也會包含snippet.superStickerDetails物件,其中含有超級貼圖的其他資訊。 - 在
superChatEvent資源中,布林值snippet.isSuperStickerEvent會指出超級留言訊息是否也包含超級貼圖。如果是,則snippet.superStickerMetadata物件會包含超級貼圖的額外詳細資料。
2018 年 4 月 5 日
superChatEvents.list 方法的說明已更新,反映 API 回應不再包含 fanFundingEvents (已於 2017 年初淘汰)。
2017 年 4 月 3 日
我們新增了 Java 程式碼範例,說明如何列出、插入及刪除即時通訊訊息。範例會呼叫下列方法:
2017 年 2 月 13 日
這次更新的修改如下:
-
現有資源和方法的更新
-
liveCuepoints.insert方法已更新,反映目前需要onBehalfOfContentOwner參數。此外,我們也更新了方法說明,指出呼叫該方法時,必須使用與 YouTube 內容擁有者相關聯的帳戶授權。
-
2017 年 2 月 9 日
這次更新的修改如下:
-
現有資源和方法的更新
-
superChatEvents.list方法的新hl參數可讓您指定snippet.displayString屬性值應根據特定語言的慣例格式化。該屬性的定義也已相應更新。參數值必須是
i18nLanguages.list方法傳回清單中的語言代碼。預設值為en,表示預設行為是將顯示字串格式化為英文。舉例來說,字串預設會格式化為$1.00,而非$1,00。
-
2017 年 2 月 1 日
這次更新的修改如下:
-
新資源和方法
-
新的
superChatEvent資源代表粉絲在 YouTube 直播期間購買的超級留言訊息。在 YouTube 直播聊天室中,超級留言會以兩種方式與其他訊息區別:- 超級留言會以顏色醒目顯示。
- 超級留言會在超級留言顯示區持續顯示一段時間。
超級留言的顏色、在超級留言顯示區置頂的時間長度,以及訊息長度上限,都取決於購買金額。如要進一步瞭解超級留言,請參閱 YouTube 說明中心。
API 支援一種方法,可列出頻道過去 30 天直播的超級留言事件。該方法也會傳回頻道最近一次直播的 Fan Funding 事件 (
fanFundingEvents) 資料。
-
-
現有資源和方法的更新
-
snippet.type屬性現在支援superChatEvent值,表示資源說明的是超級留言。此外,
liveChatMessage資源的新snippet.superChatDetails屬性和其子項包含超級留言活動的相關資訊。 -
liveStream資源的cdn.resolution屬性現在支援2160p值。
-
-
新增和更新錯誤
-
這個 API 支援下列新錯誤:
錯誤詳細資料 liveBroadcasts.insert、liveBroadcasts.updateliveBroadcasts.insert和liveBroadcasts.update方法會傳回400(Bad Request) 錯誤,表示要插入或更新的liveBroadcast資源包含contentDetails.enableEmbed屬性或contentDetails.projection屬性的無效值。這兩個新錯誤的原因分別是invalidEmbedSetting和invalidProjection。
-
2017 年 1 月 12 日
注意:這是淘汰公告。
YouTube 推出新版超級留言功能後,已淘汰粉絲贊助功能,並將於 2017 年 2 月 28 日停用粉絲贊助 API。自該日期起:
liveChatMessages.list方法不會再傳回snippet.type為fanFundingEvent的郵件。同樣地,liveChatMessage資源也不會再包含snippet.fanFundingEventDetails物件。fanFundingEvents.list方法將不再傳回資料。
2016 年 8 月 11 日
這次更新的修改如下:
-
新發布的 YouTube API 服務條款 (下稱「新版條款」) 詳述了現行服務條款的更新內容,詳情請參閱 YouTube 工程和開發人員網誌。除了 2017 年 2 月 10 日生效的修訂版條款,本次更新也包含多份輔助文件,協助開發人員瞭解必須遵守的政策。
如要查看完整的新文件,請參閱更新版條款的修訂記錄。此外,修訂記錄也會說明日後對更新版條款或支援文件所做的變更。您可以透過文件中的連結,訂閱列出修訂版本記錄變更的 RSS 動態消息。
2016 年 5 月 20 日
YouTube 現在支援 DASH 擷取。因此,liveStream 資源的 ingestionType 屬性支援新值 dash,可識別使用 DASH 擷取至 YouTube 的串流。
新的「透過 DASH 傳送 YouTube 直播內容」指南提供相關規範,說明如何使用 DASH 傳送格式,透過編碼器在 YouTube 上串流直播資料。編碼器供應商可藉此在產品中新增 DASH 傳送支援功能。
2016 年 4 月 18 日
這次更新的修改如下:
-
現有資源和方法的更新
liveStream資源更新-
YouTube 現在支援解析度為 1440p 的直播,每秒影格數可為 30 或 60。
此外,
liveStream資源還包含指定輸入影片資料影格速率和解析度的新屬性:屬性 cdn.frameRate傳入影片資料的畫面更新率。有效值為 30fps和60fps。cdn.resolution傳入視訊資料的解析度。有效屬性值為: 1440p、1080p、720p、480p、360p和240p。 -
隨著
liveStream資源的cdn.frameRate和cdn.resolution屬性推出,資源的cdn.format現已淘汰。cdn.format屬性會以單一值指定解析度和影格速率。建議您改用新支援的欄位。在此期間,
cdn.format仍可正常運作。此外,只要為cdn.format屬性或cdn.frameRate和cdn.resolution屬性指定值,插入直播的請求目前都會成功。如果您為這三項屬性都提供值,但這些值不一致,API 可能會傳回錯誤。請注意,雖然
cdn.format屬性已淘汰,但現在支援兩個新值1440p和1440p_hfr,可反映 API 對 1440p 串流 (每秒 30 或 60 幀) 的支援。
-
liveBroadcast資源更新-
liveBroadcast資源包含下列新屬性:屬性 contentDetails.boundStreamLastUpdateTimeMs廣播的 contentDetails.boundStreamId屬性所參照的直播上次更新的日期和時間。contentDetails.projection廣播的投影格式。這個屬性的預設值為 rectangular。這個屬性的有效值為360和rectangular。 -
liveBroadcast資源的statistics.totalChatCount屬性定義已更新,指出只有在廣播至少有一則即時通訊訊息時,才會顯示屬性值。
-
liveChatMessage資源更新-
snippet.type屬性支援兩個新值:messageDeletedEvent和userBannedEvent,分別對應於下一個項目符號所述的新屬性。此外,我們也更新了snippet.authorChannelId屬性的定義,說明這些新訊息類型的屬性值所識別的內容。 -
liveChatMessage資源包含下列新屬性:屬性 snippet.messageDeletedDetails這個物件包含有關聊天室管理員刪除訊息的資訊。只有在 snippet.type屬性值為messageDeletedEvent時,才會顯示這個物件。snippet.userBannedDetails這個物件包含遭禁止參與對話的使用者資訊。這個物件也包含禁令本身的資訊,也就是禁令是永久還是暫時。如果禁令是暫時性的,物件的其中一個屬性會指定禁令的期限。
只有在snippet.type屬性值為userBannedEvent時,才會出現這個物件。
-
-
新增和更新錯誤
-
這個 API 支援下列新錯誤:
錯誤詳細資料 liveBroadcasts.bindliveBroadcasts.bind方法會傳回403(Forbidden) 錯誤,表示使用者在指定時間範圍內傳送過多要求。錯誤原因是userRequestsExceedRateLimit。liveBroadcasts.insert和liveBroadcasts.update方法已支援相同的錯誤。liveStreams.insertliveStreams.insert方法支援四種新的400(Bad Request) 錯誤,可識別要求嘗試插入的liveStream資源中無效的屬性值。以下清單列出錯誤原因,以及與這些原因相關聯的屬性:
invalidFormat:cdn.formatinvalidFrameRate:cdn.frameRateinvalidIngestionType:cdn.ingestionTypeinvalidResolution:cdn.resolution
liveStreams.insertliveStreams.insert方法支援兩項新的400(Bad Request) 錯誤,分別表示要求嘗試插入的liveStream資源中缺少必要值。以下清單列出錯誤原因,以及與這些原因相關聯的屬性:
frameRateRequired:cdn.frameRateresolutionRequired:cdn.resolution
liveStream資源時,您必須為cdn.format屬性或cdn.frameRate和cdn.resolution屬性指定值。
- 如果您未指定這三項屬性的值,API 會傳回
formatRequired錯誤。 - 如果您指定
cdn.resolution的值,但未指定cdn.frameRate的值,API 會傳回frameRateRequired錯誤。 - 如果您指定
cdn.frameRate的值,但未指定cdn.resolution的值,API 會傳回resolutionRequired錯誤。
liveStreams.update如果要求嘗試修改下列任何不可變更的屬性值, liveStreams.update方法會傳回403(Forbidden) 錯誤:cdn.formatcdn.frameRatecdn.ingestionTypecdn.resolution
reason為liveStreamModificationNotAllowed。
-
2015 年 12 月 18 日
根據歐盟 (EU) 法律規定,您必須向歐盟境內的使用者揭露特定資訊,並徵得同意聲明。因此,如果使用者位於歐盟地區,您必須遵守《歐盟地區使用者同意授權政策》。我們已在《YouTube API 服務條款》中新增這項規定。
2015 年 12 月 17 日
這次更新的修改如下:
-
新資源和方法
-
這個 API 支援多項新資源,可為直播提供即時通訊功能。YouTube 支援在直播期間使用聊天室功能,這些資源和方法也支援擷取聊天室訊息,以及聊天室的管理功能。
資源 liveChatMessage這個資源代表 YouTube 聊天室中的訊息。YouTube 支援多種訊息類型,包括文字訊息和粉絲贊助活動。部分訊息類型會標示即時通訊的特定階段,例如僅限贊助者參與的階段開始或即時通訊結束。這個 API 支援列出、插入及刪除聊天室訊息的方法。 liveChatModerators這項資源會識別即時通訊版主。管理員可以執行部分管理功能,例如禁止使用者在聊天室中發言或移除訊息。這個 API 支援列出、插入及刪除聊天室管理員的方法。 liveChatBans這個資源會識別遭禁止在特定聊天室中發布訊息的使用者。禁令可能是暫時性或永久性。API 支援插入及刪除聊天室禁令的方法。 fanFundingEvents這項資源代表 YouTube 頻道的粉絲贊助活動。觀眾可透過粉絲贊助功能,自願以一次性捐款的方式支持 YouTube 創作者。
API 的fanFundingEvents.list方法會列出頻道的 Fan Funding 事件。如果粉絲在頻道擁有的直播中透過聊天室發起粉絲贊助活動,系統也會在直播聊天室中觸發fanFundingEvent訊息。
如要進一步瞭解粉絲贊助,請前往 YouTube 說明中心。sponsorssponsor資源會識別 YouTube 頻道的贊助者。贊助者會按月支付頻道費用。贊助者在頻道聊天室中發送訊息時,旁邊會顯示徽章。如果頻道舉辦贊助者專屬聊天室,贊助者也能參與。
API 的sponsors.list方法會列出頻道的贊助者。當使用者在頻道擁有的直播期間註冊贊助該頻道時,API 也會將newSponsorEvent訊息新增至直播的聊天室。
如要進一步瞭解贊助功能,請前往 YouTube 說明中心。
-
-
現有資源和方法的更新
-
liveBroadcast資源包含下列新屬性:屬性 snippet.liveChatId廣播的 YouTube 直播聊天室 ID。有了這個 ID,您就能使用 liveChatMessage資源的方法擷取、插入或刪除即時通訊訊息。你也可以新增或移除聊天室管理員、禁止使用者參與聊天室,或移除現有的禁令。contentDetails.closedCaptionsType注意:這項屬性會取代 contentDetails.enableClosedCaptions屬性。
這項屬性會指出是否為廣播啟用隱藏式輔助字幕,以及提供的隱藏式輔助字幕類型:closedCaptionsDisabled:直播已停用隱藏式輔助字幕。closedCaptionsHttpPost:你會透過 HTTP POST,將字幕傳送至與直播相關聯的擷取網址。closedCaptionsEmbedded:系統會使用 EIA-608 和/或 CEA-708 格式,在影片串流中編碼字幕。
contentDetails.enableClosedCaptions這項屬性已於 2015 年 12 月 17 日淘汰。請改用 contentDetails.closedCaptionsType屬性。如果 API 用戶端已使用這項資源:- 將屬性值設為
true,等同於將contentDetails.closedCaptionsType屬性設為closedCaptionsHttpPost。 - 將屬性值設為
false,等同於將contentDetails.closedCaptionsType屬性設為closedCaptionsDisabled。
-
liveBroadcasts.list方法的新broadcastType參數可讓您篩選 API 回應,只納入活動廣播、持續性廣播或所有廣播。永久廣播是指持續存在,且未與特定活動相關聯的廣播。具體來說,頻道的預設廣播是持續性廣播,可透過 YouTube 創作者工作室的直播資訊主頁存取。頻道其他廣播內容則為活動廣播。
-
-
liveStream資源的status.healthStatus.configurationIssues[].type欄位會回報下列新的健康狀態錯誤:錯誤 audioTooManyChannels音訊有超過兩個聲道,但系統只支援一個聲道 (單聲道) 或兩個聲道 (立體聲)。請修改音訊聲道數量。 frameRateHigh目前的影格速率過高,請將影格速率設為 fps 以下。%(framerate)s -
修正先前文件更新的發布日期。
-
新增和更新錯誤
-
除了上述新資源定義的錯誤,API 還支援下列新錯誤:
錯誤詳細資料 liveBroadcasts.updateHTTP 回應代碼 forbidden (403)原因 closedCaptionsTypeModificationNotAllowed說明 只有在廣播處於 created或ready狀態時,才能修改contentDetails.closedCaptionsType值。liveBroadcasts.updateHTTP 回應代碼 invalidValue (400)原因 invalidEnableClosedCaptions說明 在liveBroadcast 資源中,「 contentDetails.enableClosedCaptions」屬性的值與「contentDetails.closedCaptionType」設定的值不相容。修改資源,只包含這兩個屬性的其中之一,然後重新提交要求。
-
2015 年 8 月 19 日
這次更新的修改如下:
-
新資源和方法
-
注意:
liveChat資源及其方法的說明文件屬於機密資訊,只有特定 YouTube 合作夥伴才能查看。新的
liveChat資源包含在 YouTube 直播期間發布的留言。這個 API 支援兩種資源方法:方法 liveChats.list列出廣播的聊天室訊息。 liveChats.insert建立新的即時通訊訊息。 只有在直播期間,才能擷取及發布即時通訊訊息。
-
-
現有資源和方法的更新
-
liveStream資源包含下列新屬性:屬性 snippet.isDefaultStream指出這個串流是否為頻道的預設串流。頻道的預設直播會無限期存在,沒有相關聯的開始或結束時間,也無法刪除。如要進一步瞭解預設資料串流的運作方式,請參閱資源的定義。 status.healthStatus這個物件包含可用於識別、診斷及解決串流問題的資訊。這個物件包含多個子項屬性,可協助您評估直播影片串流的健康狀態。
特別是status.healthStatus.configurationIssues[]物件,會列出影響影片串流的問題。新文件「LiveStream 資源的設定問題」列出 API 回報的所有問題。contentDetails.isReusable指出串流是否可重複使用,也就是說,串流是否可繫結至多個廣播。如果廣播時間不同,廣播主通常會重複使用同一個串流進行多場廣播。 -
liveBroadcast資源包含下列新屬性:屬性 snippet.isDefaultBroadcast指出這項廣播是否為頻道的預設廣播。啟用 YouTube 頻道的直播功能後,YouTube 會為該頻道建立預設直播和預設廣播。頻道擁有者會透過串流將直播影片傳送至 YouTube,而觀眾則可透過廣播觀看預設串流。如要進一步瞭解預設廣播的運作方式,請參閱屬性的定義。 contentDetails.enableLowLatency指出是否應編碼此廣播,以進行低延遲串流。低延遲串流可縮短影片顯示給廣播觀眾的時間,但也會影響串流觀眾的解析度。 statistics.totalChatCount與廣播相關的聊天室訊息總數。如果使用者可以觀看廣播,且廣播已啟用即時通訊功能,就會顯示這項屬性和值。請注意,廣播結束後,這項屬性不會指定值。因此,這項屬性不會識別已完成直播的封存影片聊天室訊息數。
-
-
新增和更新錯誤
-
除了為新
liveChat資源定義的錯誤之外,API 還支援下列新錯誤:錯誤詳細資料 liveStreams.updateHTTP 回應代碼 forbidden (403)原因 liveStreamModificationNotAllowed說明 API 不允許您將可重複使用的串流變更為不可重複使用,反之亦然。詳情請參閱「瞭解廣播和串流」。
-
2015 年 5 月 21 日
這次更新的修改如下:
-
YouTube 現在支援每秒 60 畫格數 (fps) 的直播影片,因此遊戲和其他快速動作影片的播放效果會更加流暢。在 YouTube 上以 60 FPS 開始直播時,YouTube 也會在尚不支援高影格率觀看的裝置上,以 30 FPS 提供直播。
liveStream資源的cdn.format屬性支援這項功能的兩個新值:720p_hfr和1080p_hfr。如要進一步瞭解這項功能,請參閱 YouTube 創作者網誌。
2014 年 8 月 21 日
這次更新的修改如下:
-
liveBroadcasts.control方法的walltime參數定義已更新,指出屬性值是以 ISO 8601 格式 (YYYY-MM-DDThh:mm:ss.sssZ) 指定。 -
這個 API 現在支援下列錯誤:
錯誤類型 錯誤詳細資料 說明 insufficientPermissionsliveStreamingNotEnabled如果授權 API 要求的使用者未啟用 YouTube 直播功能, liveBroadcast和liveStream資源的所有方法都會傳回這項錯誤。如要瞭解使用者無法直播的原因,請前往 https://www.youtube.com/features 查看頻道設定。rateLimitExceededuserRequestsExceedRateLimitliveBroadcasts.insert和liveStreams.insert方法都會傳回這項錯誤,表示使用者在指定時間範圍內傳送過多要求。
2014 年 5 月 2 日
這次更新的修改如下:
-
liveStream資源和liveBroadcasts.bind方法的說明已更新,指出一個廣播只能繫結至一個視訊串流,但一個視訊串流可以繫結至多個廣播。這項異動只是修正說明文件,基礎 API 功能並未變更。 -
liveBroadcast資源的contentDetails.monitorStream.enableMonitorStream屬性已更新,說明如果屬性值為true,則必須先將廣播轉換為testing狀態,才能轉換為live狀態。(如果屬性的值為false,廣播就不能有testing階段,因此你可以直接將廣播轉換為live狀態。 -
liveCuepoint資源的settings.offsetTimeMs屬性已更新,指出如果廣播沒有監控串流,就不應為該屬性指定值。 -
liveBroadcast和liveStream資源的所有方法現在都支援onBehalfOfContentOwner和onBehalfOfContentOwnerChannel參數。您可以使用這些參數,透過相同的授權憑證,為與同一位內容擁有者相關聯的不同管道完成 API 要求。 -
liveCuepoints.insert方法的說明文件已更新,指出您可以在呼叫該方法時設定settings.walltime屬性的值。 -
錯誤說明文件現在會針對每種錯誤類型指定 HTTP 回應代碼。
-
API 現在支援下列錯誤:
錯誤類型 錯誤詳細資料 說明 insufficientPermissionslivePermissionBlocked如果授權要求的使用者無法在 YouTube 上直播影片, liveBroadcasts.insert、liveBroadcasts.transition和liveStreams.insert方法就會傳回這項錯誤。如要瞭解使用者無法直播的原因,請前往 https://www.youtube.com/features 查看頻道設定。 -
liveBroadcasts.insert方法的invalidScheduledStartTime錯誤已更新,明確指出排定的開始時間必須與目前日期相近,才能在該時間可靠地排定廣播。
2013 年 12 月 13 日
這次更新的修改如下:
-
liveBroadcast資源的新status.recordingStatus屬性會指出廣播的目前狀態。 -
liveBroadcast資源的新contentDetails.enableClosedCaptions屬性會指出是否可擷取廣播的隱藏式輔助字幕。插入或更新直播時可以設定屬性值,但直播處於testing或live狀態時,就無法更新屬性值。如果將這項屬性設為true,則繫結至廣播的liveStream資源會指定用於廣播隱藏式輔助字幕的擷取網址。 -
liveBroadcast資源的snippet.scheduledEndTime屬性現在支援預定無限期持續的廣播。這項異動生效後,liveBroadcasts.insert和liveBroadcasts.update請求就不再需要這個屬性。
如果擷取的liveBroadcast資源未指定這個屬性的值,廣播就會無限期持續排定。同樣地,如果您呼叫liveBroadcasts.insert或liveBroadcasts.update方法,但未指定這項屬性的值,系統就會排定無限期繼續播放廣播。 -
如果廣播頻道可以停用直播錄製功能,則
liveBroadcast資源的contentDetails.recordFromStart屬性 (預設值為true) 現在只能設為false。如果頻道沒有停用錄製功能的權限,但您嘗試插入
recordFromStart屬性設為false的節目,API 會傳回Forbidden錯誤。此外,如果頻道沒有這項權限,且您嘗試更新直播,將recordFromStart屬性設為false,API 會傳回modificationNotAllowed錯誤。 -
liveBroadcast資源不再包含enableArchive屬性,該屬性先前已在contentDetails.enableDvr和contentDetails.enableEmbed屬性的說明中提及。 -
liveBroadcast資源的status.lifeCycleStatus屬性有效值清單已更新,現在會列出各個狀態的說明。 -
liveCuepoint資源的新settings.walltime屬性會指定插入提示點的日期和時間。如果要求嘗試插入指定這個屬性和settings.offsetTimeMs屬性值的提示點,API 就會傳回錯誤。 -
contentDetails資源中的新contentDetails物件包含串流相關資訊。liveStream目前物件的唯一屬性是contentDetails.closedCaptionsIngestionUrl,用於指定與影片串流相關聯的隱藏式輔助字幕擷取網址。 -
liveStream資源的status.streamStatus屬性有效值清單已更新,現在會列出各個狀態的說明。 -
liveBroadcasts.control方法的新walltime參數可讓您指定節目表變更的日期和時間。如果要求同時為這個參數和offsetTimeMs參數指定值,API 就會傳回錯誤。 -
在
liveBroadcasts.list要求的 API 回應中,kind屬性的值已從youtube#liveBroadcastList變更為youtube#liveBroadcastListResponse。 -
在
liveStreams.list要求的 API 回應中,kind屬性的值已從youtube#liveStreamList變更為youtube#liveStreamListResponse。 -
eventId屬性已從liveBroadcastListResponse和liveStreamListResponse中淘汰。 -
這個 API 支援下列新錯誤:
錯誤類型 錯誤詳細資料 說明 invalidValueconflictingTimeFields如果要求為 offsetTimeMs和walltime參數指定值,liveBroadcasts.control方法就會傳回這項錯誤。要求可以省略這兩個參數,也可以為其中一個參數指定值。invalidValueinvalidWalltime如果 walltime參數的值無效,liveBroadcasts.control方法就會傳回這項錯誤。forbiddenenableClosedCaptionsModificationNotAllowed如果您嘗試更新 contentDetails.enableClosedCaptions值,但廣播狀態不是created或ready,liveBroadcasts.update方法就會傳回這項錯誤。invalidValueconflictingTimeFields如果要求指定 settings.offsetTimeMs和settings.walltime屬性的值,liveCuepoints.insert方法就會傳回這項錯誤。要求可以省略這兩項屬性,也可以為其中一項屬性指定值。此外,
liveStreams.update方法不再支援與liveStreams.insert方法類似的cdnRequired錯誤。
2013 年 5 月 10 日
這次更新的修改如下:
-
YouTube 不再識別實驗性 API 功能和服務。我們現在提供適用於廢止政策的 YouTube API 清單。
2013 年 5 月 2 日
這次更新的修改如下:
-
新的
liveBroadcasts.control方法可讓您切換已在進行中的廣播,在廣播串流中顯示的宣傳內容顯示設定。如果廣播串流延遲,您也可以使用這個方法指定時間差,讓系統在指定時間變更宣傳片。 -
下列屬性的定義已更新,說明如要更新
liveBroadcast資源的contentDetails部分,必須設定屬性值: -
liveStream資源的status.streamStatus不再支援將deleted值做為可能的串流狀態。 -
我們已修訂 API 針對許多錯誤訊息傳回的資訊,以便更清楚說明特定錯誤的發生原因。這個 API 也支援多種新錯誤。
2013 年 3 月 27 日
這次更新的修改如下:
-
liveBroadcast資源的下列屬性已變更:startWithSlateCuepoint屬性已重新命名為startWithSlate。enableArchive屬性已重新命名為recordFromStart。slateSettings物件已淘汰,並從說明文件中移除。與slateSettings物件或其屬性相關的錯誤訊息也已移除。最後,我們移除了「開始使用」指南的「顯示 Slate」一節。
-
API 不再支援使用
liveCuepoints.insert方法插入串流中斷片。為反映本次異動,我們更新了下列文件:-
liveCuepoint資源的settings.cueType屬性不再支援slate做為屬性值。(目前唯一支援的值是ad。 -
liveCuepoint資源的settings.eventState屬性已淘汰,並從說明文件中移除。
2013 年 3 月 18 日
這次更新的修改如下:
-
所有 API 的錯誤訊息都已更新,可更清楚地說明可能發生的錯誤,並盡可能提供修正指引。
-
API 現在可能會傳回多項新錯誤。下表列出錯誤,以及可能傳回該錯誤的 API 方法:
liveBroadcasts.insert- 預定結束時間必須晚於預定開始時間。liveBroadcasts.insert:廣播指定的隱私權狀態無效。liveBroadcasts.update:資源未包含或未設定contentDetails.enableArchive屬性的值。liveBroadcasts.update:資源未包含或未設定contentDetails.enableContentEncryption屬性的值。liveBroadcasts.update:資源未包含或未設定contentDetails.enableDvr屬性的值。liveStreams.insert:摘要標題長度必須介於 1 至 128 個字元之間。liveStreams.update:資源未包含或未設定snippet.title屬性的值。
-
liveStream資源說明文件已更新,反映先前指出不支援多點播送和 WebM 的擷取方法。cdn.format屬性的格式清單已相應更新,且cdn.multicastIngestionInfo物件及其子項屬性已從資源的說明文件中移除。此外,系統已從支援的cdn.ingestionType值清單中移除http。