本頁列出 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.title
status.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.enableContentEncryption
contentDetails.enableDvr
contentDetails.enableEmbed
contentDetails.recordFromStart
contentDetails.startWithSlate
如果要求中省略這些欄位,系統就不會變更這些欄位。
-
已移除過時
liveBroadcast
欄位的說明文件:contentDetails.enableContentEncryption
contentDetails.startWithSlate
2022 年 4 月 1 日
這次更新的修改如下:
-
snippet.type
屬性現在支援兩個新值:membershipGiftingEvent
giftMembershipReceivedEvent
-
liveChatMessage
資源的新snippet.membershipGiftingDetails
屬性及其子項包含會員禮物活動的相關資訊。同樣地,新的snippet.giftMembershipReceivedDetails
屬性和其子項包含「收到會員禮物」事件的相關資訊。
2021 年 9 月 15 日
這次更新的修改如下:
-
snippet.type
屬性現在支援兩個新值:newSponsorEvent
memberMilestoneChatEvent
-
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.update
liveBroadcasts.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.bind
liveBroadcasts.bind
方法會傳回403
(Forbidden
) 錯誤,表示使用者在指定時間範圍內傳送過多要求。錯誤原因是userRequestsExceedRateLimit
。liveBroadcasts.insert
和liveBroadcasts.update
方法已支援相同的錯誤。liveStreams.insert
liveStreams.insert
方法支援四種新的400
(Bad Request
) 錯誤,可識別要求嘗試插入的liveStream
資源中無效的屬性值。以下清單列出錯誤原因,以及與這些原因相關聯的屬性:
invalidFormat
:cdn.format
invalidFrameRate
:cdn.frameRate
invalidIngestionType
:cdn.ingestionType
invalidResolution
:cdn.resolution
liveStreams.insert
liveStreams.insert
方法支援兩項新的400
(Bad Request
) 錯誤,分別表示要求嘗試插入的liveStream
資源中缺少必要值。以下清單列出錯誤原因,以及與這些原因相關聯的屬性:
frameRateRequired
:cdn.frameRate
resolutionRequired
: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.format
cdn.frameRate
cdn.ingestionType
cdn.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 說明中心。sponsors
sponsor
資源會識別 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.update
HTTP 回應代碼 forbidden (403)
原因 closedCaptionsTypeModificationNotAllowed
說明 只有在廣播處於 created
或ready
狀態時,才能修改contentDetails.closedCaptionsType
值。liveBroadcasts.update
HTTP 回應代碼 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.update
HTTP 回應代碼 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 現在支援下列錯誤:
錯誤類型 錯誤詳細資料 說明 insufficientPermissions
liveStreamingNotEnabled
如果授權 API 要求的使用者未啟用 YouTube 直播功能, liveBroadcast
和liveStream
資源的所有方法都會傳回這項錯誤。如要瞭解使用者無法直播的原因,請前往 https://www.youtube.com/features 查看頻道設定。rateLimitExceeded
userRequestsExceedRateLimit
liveBroadcasts.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 現在支援下列錯誤:
錯誤類型 錯誤詳細資料 說明 insufficientPermissions
livePermissionBlocked
如果授權要求的使用者無法在 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 支援下列新錯誤:
錯誤類型 錯誤詳細資料 說明 invalidValue
conflictingTimeFields
如果要求為 offsetTimeMs
和walltime
參數指定值,liveBroadcasts.control
方法就會傳回這項錯誤。要求可以省略這兩個參數,也可以為其中一個參數指定值。invalidValue
invalidWalltime
如果 walltime
參數的值無效,liveBroadcasts.control
方法就會傳回這項錯誤。forbidden
enableClosedCaptionsModificationNotAllowed
如果您嘗試更新 contentDetails.enableClosedCaptions
值,但廣播狀態不是created
或ready
,liveBroadcasts.update
方法就會傳回這項錯誤。invalidValue
conflictingTimeFields
如果要求指定 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
。