YouTube Live Streaming API - 修訂版本記錄

本頁列出 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 日

這次更新的修改如下:

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 日

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

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

如果程式碼仍使用 cdn.format 欄位,則必須更新,才能使用 cdn.frameRatecdn.resolution 屬性,分別指定影格速率和解析度。

2020 年 7 月 6 日

透過 HLS 傳送 YouTube 直播內容」指南已更新,變更內容如下:

此外,新的擷取通訊協定比較清單列出 YouTube 支援的擷取通訊協定、各通訊協定支援的轉碼器,以及各通訊協適用的用途等額外資訊。

2020 年 4 月 16 日

本次更新包含新屬性和淘汰公告:

  • liveBroadcast 資源現在支援 contentDetails.enableAutoStop 屬性。這個屬性表示頻道擁有者停止在繫結的影片串流中串流影片後,廣播是否應在約一分鐘後自動停止。

    我們已更新廣播生命週期文件,說明如果將 contentDetails.enableAutoStartcontentDetails.enableAutoStop 屬性設為 true,建立及管理 YouTube 直播活動的逐步程序會有何變化。

  • 注意:這是淘汰公告。這些異動將於 2020 年 9 月 1 日當天或之後生效。實際生效日期稱為淘汰日期,詳情請見下文。

    本次更新說明可能發生的破壞性變更。這項異動會影響使用頻道預設 liveStreamliveBroadcast 資源在 YouTube 上直播內容的 API 用戶端應用程式。具體來說,與永久性廣播和串流相關聯的廣播 ID串流 ID將無法再用於啟動新的廣播。

    如果符合下列任一條件,應用程式就會受到影響:

    • 這會檢查 liveBroadcast 資源的 isDefaultBroadcast 屬性值。淘汰日期過後,系統不會傳回這項屬性。
    • 這會檢查 liveStream 資源的 isDefaultStream 屬性值。淘汰日期過後,系統不會傳回這項屬性。
    • 這個方法會呼叫 liveBroadcasts.list 方法,並將 broadcastType 參數值設為 persistentall。這項參數將在本次異動中淘汰。自淘汰日期起:
      • 如果 broadcastType 參數值為 persistentliveBroadcasts.list 方法就不會傳回任何結果。
      • 如果 broadcastType 參數值為 all,則 liveBroadcasts.list 方法不會傳回該時間之前存在的持續性廣播。

    背景資訊:過去幾年,頻道啟用直播功能時,YouTube 會自動為該頻道建立預設串流和預設廣播。預設串流會無限期存在,沒有相關聯的開始或結束時間,也無法刪除。同樣地,預設的廣播會視為持續性。這項屬性一直存在,且不與特定事件繫結。

    淘汰日期起:

    • YouTube 不再建立預設直播和廣播。API 用戶端必須能夠建立及管理 liveBroadcastliveStream 資源,並將這些資源繫結在一起,而不是依賴預設資源。
    • 如果頻道預設廣播和預設串流正在直播,也就是說,在淘汰作業生效時,頻道正在使用這些項目進行直播,則正在進行的廣播不會受到影響。不過,該頻道在結束播送後,就無法再使用預設播送和預設串流。
    • 如果頻道的預設廣播和預設串流並未處於直播狀態,則在淘汰作業生效後,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 日

我們已更新「透過 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 資源也支援新的 selfDeclaredMadeForKidsmadeForKids 屬性。

我們也更新了《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 日

liveChatMessagesuperChatEvent 資源的說明文件已更新,反映這兩項資源現在都能包含超級貼圖的相關資訊。超級貼圖是超級留言訊息的一種,會顯示圖片。與其他超級留言一樣,超級貼圖訊息也是粉絲在 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.insertliveBroadcasts.update liveBroadcasts.insertliveBroadcasts.update 方法會傳回 400 (Bad Request) 錯誤,表示要插入或更新的 liveBroadcast 資源包含 contentDetails.enableEmbed 屬性或 contentDetails.projection 屬性的無效值。這兩個新錯誤的原因分別是 invalidEmbedSettinginvalidProjection

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 傳入影片資料的畫面更新率。有效值為 30fps60fps
        cdn.resolution 傳入視訊資料的解析度。有效屬性值為:1440p1080p720p480p360p240p
      • 隨著 liveStream 資源的 cdn.frameRatecdn.resolution 屬性推出,資源的 cdn.format 現已淘汰。cdn.format 屬性會以單一值指定解析度和影格速率。

        建議您改用新支援的欄位。在此期間,cdn.format仍可正常運作。此外,只要為 cdn.format 屬性 cdn.frameRatecdn.resolution 屬性指定值,插入直播的請求目前都會成功。如果您為這三項屬性都提供值,但這些值不一致,API 可能會傳回錯誤。

        請注意,雖然 cdn.format 屬性已淘汰,但現在支援兩個新值 1440p1440p_hfr,可反映 API 對 1440p 串流 (每秒 30 或 60 幀) 的支援。

    • liveBroadcast 資源更新
    • liveChatMessage 資源更新
      • snippet.type 屬性支援兩個新值:messageDeletedEventuserBannedEvent,分別對應於下一個項目符號所述的新屬性。此外,我們也更新了 snippet.authorChannelId 屬性的定義,說明這些新訊息類型的屬性值所識別的內容。

      • liveChatMessage 資源包含下列新屬性:

        屬性
        snippet.messageDeletedDetails 這個物件包含有關聊天室管理員刪除訊息的資訊。只有在 snippet.type 屬性值為 messageDeletedEvent 時,才會顯示這個物件。
        snippet.userBannedDetails 這個物件包含遭禁止參與對話的使用者資訊。這個物件也包含禁令本身的資訊,也就是禁令是永久還是暫時。如果禁令是暫時性的,物件的其中一個屬性會指定禁令的期限。

        只有在 snippet.type 屬性值為 userBannedEvent 時,才會出現這個物件。
  • 新增和更新錯誤

    • 這個 API 支援下列新錯誤:

      錯誤詳細資料
      liveBroadcasts.bind liveBroadcasts.bind 方法會傳回 403 (Forbidden) 錯誤,表示使用者在指定時間範圍內傳送過多要求。錯誤原因是 userRequestsExceedRateLimit

      liveBroadcasts.insertliveBroadcasts.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) 錯誤: 錯誤回應中的 reasonliveStreamModificationNotAllowed

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 目前的影格速率過高,請將影格速率設為 %(framerate)s fps 以下。
  • 修正先前文件更新的發布日期。

  • 新增和更新錯誤

    • 除了上述新資源定義的錯誤,API 還支援下列新錯誤:

      錯誤詳細資料
      liveBroadcasts.update
      HTTP 回應代碼forbidden (403)
      原因closedCaptionsTypeModificationNotAllowed
      說明只有在廣播處於 createdready 狀態時,才能修改 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_hfr1080p_hfr

    如要進一步瞭解這項功能,請參閱 YouTube 創作者網誌

2014 年 8 月 21 日

這次更新的修改如下:

  • liveBroadcasts.control 方法的 walltime 參數定義已更新,指出屬性值是以 ISO 8601 格式 (YYYY-MM-DDThh:mm:ss.sssZ) 指定。

  • 這個 API 現在支援下列錯誤:

    錯誤類型 錯誤詳細資料 說明
    insufficientPermissions liveStreamingNotEnabled 如果授權 API 要求的使用者未啟用 YouTube 直播功能,liveBroadcastliveStream 資源的所有方法都會傳回這項錯誤。如要瞭解使用者無法直播的原因,請前往 https://www.youtube.com/features 查看頻道設定。
    rateLimitExceeded userRequestsExceedRateLimit liveBroadcasts.insertliveStreams.insert 方法都會傳回這項錯誤,表示使用者在指定時間範圍內傳送過多要求。

2014 年 5 月 2 日

這次更新的修改如下:

  • liveStream 資源和 liveBroadcasts.bind 方法的說明已更新,指出一個廣播只能繫結至一個視訊串流,但一個視訊串流可以繫結至多個廣播。這項異動只是修正說明文件,基礎 API 功能並未變更。

  • liveBroadcast 資源的 contentDetails.monitorStream.enableMonitorStream 屬性已更新,說明如果屬性值為 true,則必須先將廣播轉換為 testing 狀態,才能轉換為 live 狀態。(如果屬性的值為 false,廣播就不能有 testing 階段,因此你可以直接將廣播轉換為 live 狀態。

  • liveCuepoint 資源的 settings.offsetTimeMs 屬性已更新,指出如果廣播沒有監控串流,就不應為該屬性指定值。

  • liveBroadcastliveStream 資源的所有方法現在都支援 onBehalfOfContentOwneronBehalfOfContentOwnerChannel 參數。您可以使用這些參數,透過相同的授權憑證,為與同一位內容擁有者相關聯的不同管道完成 API 要求。

  • liveCuepoints.insert 方法的說明文件已更新,指出您可以在呼叫該方法時設定 settings.walltime 屬性的值。

  • 錯誤說明文件現在會針對每種錯誤類型指定 HTTP 回應代碼。

  • API 現在支援下列錯誤:

    錯誤類型 錯誤詳細資料 說明
    insufficientPermissions livePermissionBlocked 如果授權要求的使用者無法在 YouTube 上直播影片,liveBroadcasts.insertliveBroadcasts.transitionliveStreams.insert 方法就會傳回這項錯誤。如要瞭解使用者無法直播的原因,請前往 https://www.youtube.com/features 查看頻道設定。
  • liveBroadcasts.insert 方法的 invalidScheduledStartTime 錯誤已更新,明確指出排定的開始時間必須與目前日期相近,才能在該時間可靠地排定廣播。

2013 年 12 月 13 日

這次更新的修改如下:

  • liveBroadcast 資源的新 status.recordingStatus 屬性會指出廣播的目前狀態。

  • liveBroadcast 資源的新 contentDetails.enableClosedCaptions 屬性會指出是否可擷取廣播的隱藏式輔助字幕。插入或更新直播時可以設定屬性值,但直播處於 testinglive 狀態時,就無法更新屬性值。如果將這項屬性設為 true,則繫結至廣播的 liveStream 資源會指定用於廣播隱藏式輔助字幕的擷取網址。

  • liveBroadcast 資源的 snippet.scheduledEndTime 屬性現在支援預定無限期持續的廣播。這項異動生效後,liveBroadcasts.insertliveBroadcasts.update 請求就不再需要這個屬性。

    如果擷取的 liveBroadcast 資源未指定這個屬性的值,廣播就會無限期持續排定。同樣地,如果您呼叫 liveBroadcasts.insertliveBroadcasts.update 方法,但未指定這項屬性的值,系統就會排定無限期繼續播放廣播。

  • 如果廣播頻道可以停用直播錄製功能,則 liveBroadcast 資源的 contentDetails.recordFromStart 屬性 (預設值為 true) 現在只能設為 false

    如果頻道沒有停用錄製功能的權限,但您嘗試插入 recordFromStart 屬性設為 false 的節目,API 會傳回 Forbidden 錯誤。此外,如果頻道沒有這項權限,且您嘗試更新直播,將 recordFromStart 屬性設為 false,API 會傳回 modificationNotAllowed 錯誤。

  • liveBroadcast 資源不再包含 enableArchive 屬性,該屬性先前已在 contentDetails.enableDvrcontentDetails.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 屬性已從 liveBroadcastListResponseliveStreamListResponse 中淘汰。

  • 這個 API 支援下列新錯誤:

    錯誤類型 錯誤詳細資料 說明
    invalidValue conflictingTimeFields 如果要求為 offsetTimeMswalltime 參數指定值,liveBroadcasts.control 方法就會傳回這項錯誤。要求可以省略這兩個參數,也可以為其中一個參數指定值。
    invalidValue invalidWalltime 如果 walltime 參數的值無效,liveBroadcasts.control 方法就會傳回這項錯誤。
    forbidden enableClosedCaptionsModificationNotAllowed 如果您嘗試更新 contentDetails.enableClosedCaptions 值,但廣播狀態不是 createdreadyliveBroadcasts.update 方法就會傳回這項錯誤。
    invalidValue conflictingTimeFields 如果要求指定 settings.offsetTimeMssettings.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 方法插入串流中斷片。為反映本次異動,我們更新了下列文件:

    • 索引頁面、「開始使用」指南和「廣播的生命週期」教學課程不再提及這項功能。

    • liveCuepoint 資源的 settings.cueType 屬性不再支援 slate 做為屬性值。(目前唯一支援的值是 ad

    • liveCuepoint 資源的 settings.eventState 屬性已淘汰,並從說明文件中移除。

2013 年 3 月 18 日

這次更新的修改如下:

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

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

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