YouTube Live Streaming API - 修訂版本記錄

本頁列出 YouTube Live Streaming API 異動和說明文件更新。

2026 年 10 月 12 日

這次更新的修改如下:

2026 年 8 月 18 日

這次更新的修改如下:

  • liveBroadcasts.update 方法的文件已更新,加入新的營利相關錯誤:preconditionFailed (412) (原因:videoNotEligibleForAdsMonetization) 和 backendError (503) (原因:backendError)。

2026 年 8 月 17 日

這次更新的修改如下:

  • liveBroadcast 資源的新 snippet.categoryId 屬性可供你設定、更新及擷取與現場直播相關聯的影片類別。

2026 年 7 月 20 日

這次更新的修改如下:

2026 年 7 月 9 日

這次更新的修改如下:

2026 年 6 月 1 日

這次更新的修改如下:

2026 年 3 月 26 日

這次更新的修改如下:

2026 年 1 月 12 日

API 現在支援啟用片中廣告,以及自動插入片中廣告功能,適用於現場直播。

只要直播符合片中廣告資格,直播擁有者就能選擇啟用片中廣告。擁有者也可以隨時關閉直播的中間廣告。

如果直播啟用片中廣告,直播擁有者可以選擇啟用自動插入片中廣告功能。他們也可以隨時關閉廣播的自動廣告。

直播擁有者啟用自動廣告時,可以選擇下列其中一個選項:

  • 讓 YouTube 最佳化片中廣告插入。這個選項支援三種模式:
    • 低:收益潛力較低,觀看時比較不受干擾
    • 中:收益潛力一般,兼顧觀看體驗和收益潛力
    • 高:收益潛力較高,觀看時較容易出現中斷
  • 手動設定片中廣告插播策略和間隔。在這種情況下,擁有者必須設定兩個參數:
    1. 廣告插入點的排程策略。您可以同時為所有觀眾插入提示點,也可以根據觀眾調整提示點的時間。後者策略可讓 YouTube 提高提示點的排定頻率,讓觀眾在符合資格時收到提示點。
    2. 片中廣告插播時間點之間的間隔長度。

為支援這項功能,文件已反映下列 API 變更:

  • liveBroadcast 資源的 monetizationDetails 物件包含啟用片中廣告和自動廣告設定的欄位。
  • update 方法可用來啟用或停用片中廣告。你也可以使用這個方法,為現場直播設定自動廣告。文件 列出更新現場直播的營利和自動廣告設定時,可能會發生的幾種新錯誤。

2025 年 7 月 14 日

liveChatMessages.streamList 方法的說明已更新,提供 streamList API 用法的指引。

2023 年 10 月 9 日

如要瞭解貼圖 ID 與超級貼圖的對應關係,請參閱這份 CSV 檔案。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 日

  • YouTube 頻道擁有者只要在現場直播中插入提示點,即可透過新的 liveBroadcasts.cuepoint 方法觸發廣告插播。這個方法會取代 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 日

這次更新的修改如下:

2021 年 9 月 15 日

這次更新的修改如下:

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 日

注意:這是先前淘汰公告的更新。

liveStream 資源的 cdn.format 欄位已於 2016 年 4 月淘汰,並將於 2020 年 8 月 17 日起停止支援。自該日期起,如果要求仍使用該欄位,就會失敗。

如果程式碼仍使用 cdn.format 欄位,請務必更新,並使用 cdn.frameRate 和 cdn.resolution 屬性分別指定影格率和解析度。

2020 年 7 月 6 日

透過 HTTP 即時串流傳送 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 將忽略使用這些資源播放影片的嘗試。

    如果您的應用程式受到影響,請參閱下列文件,瞭解如何更新應用程式,確保在異動後仍能正常運作:

    • 新的遷移指南會嘗試說明開發人員在目前使用預設直播和串流的 API 用戶端中,可能需要處理的步驟。
    • 直播生命週期指南會逐步引導您,說明如何在 YouTube 上建立及管理現場活動。每個步驟都會說明完成特定動作所需的 API 呼叫或其他事項,而當 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 日

「透過 HLS 傳送 YouTube 直播內容」指南已更新,註明 DELETE 要求為選用,且 YouTube 的 HLS 端點會忽略這些要求。基於效能考量,YouTube 建議用戶端不要傳送 DELETE 要求。

2020 年 1 月 10 日

API 現在可以識別兒童導向內容,也就是 YouTube 所稱的「兒童專屬」內容。如要進一步瞭解「兒童專屬」內容,請前往 YouTube 說明中心。

  • liveBroadcast資源 支援兩項新屬性,方便內容創作者和觀眾辨識「兒童專屬」內容:
    • selfDeclaredMadeForKids 內容創作者可透過這項屬性,指明現場直播是否為針對兒童的內容。透過 liveBroadcasts.insert 方法建立直播時,可以設定這項屬性。請注意,只有在頻道擁有者授權 API 要求時,這項屬性才會包含在含有 liveBroadcast 資源的 API 回應中。
    • madeForKids 屬性可讓任何 API 使用者擷取直播的「兒童專屬」狀態。舉例來說,狀態可能會根據 selfDeclaredMadeForKids 屬性的值來判斷。如要進一步瞭解如何為頻道、影片或直播設定目標觀眾,請參閱 YouTube 說明中心。
  • 在 YouTube Data API 中,channel 資源也支援新的 selfDeclaredMadeForKids 和 madeForKids 屬性。

我們也更新了《YouTube API 服務條款》和《開發人員政策》。詳情請參閱《YouTube API 服務條款 - 修訂版本記錄》。《YouTube API 服務條款》和《開發人員政策》的修訂內容將於太平洋時間 2020 年 1 月 10 日生效。

2019 年 8 月 20 日

「透過 HTTP 即時串流傳送 YouTube 直播內容」指南的「規定」部分已更新,有兩項異動:

  • 並說明最佳做法是在每個媒體播放清單中,同時加入已確認的片段和未確認的片段。如果伺服器端遺失媒體播放清單,這種做法可降低略過片段的可能性。舉例來說,每個媒體播放清單最多可包含兩個已確認的片段,以及最多五個未確認的片段。
  • 現在,每個媒體片段都必須傳送媒體播放清單。這樣一來,伺服器就能在媒體播放清單遺失時快速復原。這項做法先前列為建議。

2019 年 6 月 28 日

YouTube 現在支援 HLS 擷取。因此,liveStream 資源的 ingestionType 屬性支援新值 hls,用於識別使用 HLS 擷取至 YouTube 的串流。

新的透過 HLS 傳送 YouTube 直播內容指南提供相關規範,說明如何使用 HLS 將編碼器的直播內容串流至 YouTube。本指南旨在協助編碼器供應商在產品中新增 HTTP 即時串流傳輸支援。

2019 年 4 月 4 日

這次更新的修改如下:

  • 我們已更新 API 參考文件,更清楚說明各方法的常見用途,並透過 APIs Explorer 小工具提供動態、高品質的程式碼範例。如需範例,請參閱 liveBroadcasts.list 方法的說明文件。說明 API 方法的頁面現在有兩個新元素:

    • 您可以使用 APIs Explorer 小工具選取授權範圍、輸入範例參數和屬性值,然後傳送實際的 API 要求並查看實際的 API 回應。這個小工具也提供全螢幕檢視畫面,顯示完整的程式碼範例,並動態更新以使用您輸入的範圍和值。

    • 「常見用途」一節說明本頁面所介紹方法的一或多個常見用途。舉例來說,您可以呼叫 liveBroadcasts.list 方法,擷取特定廣播的資料,或擷取目前使用者廣播的資料。

      您可以使用該區段中的連結,在 APIs Explorer 中填入用途的範例值,或開啟已填入這些值的全螢幕 APIs Explorer。這些變更旨在讓您更容易查看直接適用於您要在自家應用程式中實作的用途的程式碼範例。

    目前支援 Java、JavaScript、PHP、Python 和 curl 的程式碼範例。

  • 程式碼範例頁面也採用全新使用者介面,提供上述所有功能。您可以使用這項工具探索不同方法的用途、將值載入 APIs Explorer,以及開啟全螢幕的 APIs 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 天內直播的超級留言事件。該方法也會傳回頻道上次直播的粉絲贊助事件 (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。自該日期起:

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 支援每秒 30 或 60 影格的 1440p 串流。

    • liveBroadcast 資源更新
    • 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 資源中無效的屬性值。以下清單列出錯誤原因和相關屬性:
      liveStreams.insert liveStreams.insert 方法支援兩項新的 400 (Bad Request) 錯誤,分別表示要求嘗試插入的 liveStream 資源中缺少必要值。以下清單列出錯誤原因和相關屬性:
      具體來說,插入 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) 錯誤: 錯誤回應中的 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 方法會列出頻道的粉絲贊助事件。在頻道擁有的現場直播期間,透過聊天室發起的粉絲贊助活動,也會在直播聊天室中觸發 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 目前的影格速率過高,請將畫面更新率設為 %(framerate)s FPS 以下。
  • 修正先前文件更新的發布日期。

  • 新錯誤和更新後的錯誤

    • 除了上述新資源定義的錯誤外,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 就會傳回錯誤。

  • liveStream 資源中的新 contentDetails 物件包含串流相關資訊。目前物件的唯一屬性是 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 日

這次更新的修改如下:

2013 年 5 月 2 日

這次更新的修改如下:

2013 年 3 月 27 日

這次更新的修改如下:

  • liveBroadcast 資源中的下列屬性已變更:

    • startWithSlateCuepoint 屬性已重新命名為 startWithSlate。
    • enableArchive 屬性已重新命名為 recordFromStart。
    • slateSettings 物件已淘汰,並從說明文件中移除。與 slateSettings 物件或其屬性相關的錯誤訊息也已移除。最後,我們移除了「入門」指南的「顯示 Slate」部分。

  • API 不再支援使用 liveCuepoints.insert 方法插入串流內待播畫面。為反映本次異動,我們更新了下列文件:

2013 年 3 月 18 日

這次更新的修改如下:

  • 所有 API 錯誤訊息都已更新,更清楚說明可能發生的錯誤,並盡可能提供修正方式。

  • API 現在可能會傳回幾項新錯誤。下表列出錯誤,以及可能傳回該錯誤的 API 方法:

  • liveStream 資源說明文件已更新,反映多點傳播和 WebM 不是支援的擷取方法,與先前所述不同。cdn.format 屬性的格式清單已相應更新,且 cdn.multicastIngestionInfo 物件及其子項屬性已從資源的說明文件中移除。此外,系統已從支援的 cdn.ingestionType 值清單中移除 http。