以下範例說明如何使用 YouTube Data API (第 3 版) 執行與字幕相關的功能。
擷取影片的字幕軌清單
如要擷取特定影片的可用字幕軌清單,請呼叫 captions.list
方法。將 videoId
參數值設為 YouTube 影片 ID,即可明確識別要擷取字幕的影片。您的要求必須使用 OAuth 2.0 授權。
以下要求會擷取 Google Stories YouTube 頻道影片的字幕清單:
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.captions.list? part=snippet &videoId=PRU2ShMzQRg
如需程式碼範例,請參閱 captions.list
方法的說明文件。
建立字幕軌
這個查詢無法使用 APIs Explorer 進行測試,因為 APIs Explorer 不支援上傳檔案,而這是這個方法的必要條件。
您可以使用 API 的 captions.insert
方法,為影片上傳新的字幕群組。上傳曲目時,請務必為下列 caption
資源屬性指定值:
snippet.videoId
:用於識別要加入字幕軌的影片。snippet.language
- 字幕軌的語言。snippet.name
- 字幕音軌的名稱。
上傳字幕音軌時,可使用下列其他選項:
-
如果將
sync
參數設為true
,YouTube 就會忽略上傳字幕檔中的任何時間碼,並為字幕產生新的時間碼。如果上傳的字幕沒有時間碼,或是你懷疑檔案中的時間碼有誤,並希望 YouTube 嘗試修正,應將
sync
參數設為true
。 -
如果將
caption
資源的snippet.isDraft
屬性設為true
,則曲目不會公開顯示。
如需程式碼範例,請參閱 captions.insert
方法的說明文件。
下載字幕軌
這項查詢無法使用 APIs Explorer 進行測試,因為 APIs Explorer 不支援下載檔案。
如要下載特定字幕音軌,請呼叫 captions.download
方法。將 id
參數值設為 YouTube 字幕音軌 ID,這個 ID 可用來識別你要下載的字幕音軌。您的要求必須使用 OAuth 2.0 授權。
v3 API 支援下列選項:
-
如要指定字幕軌應以特定格式傳回,請設定
tfmt
參數值,以便識別所需格式。參數定義會列出支援的值。 -
如要擷取字幕音軌的翻譯內容,請將
tlang
參數值設為 ISO 639-1 雙字母語言代碼,以識別所需的字幕語言。系統會使用 Google 翻譯等機器翻譯服務產生翻譯內容。
如需程式碼範例,請參閱 captions.download
方法的說明文件。
更新字幕軌
這個 API 可用來變更字幕軌的草稿狀態,或為檔案上傳新的字幕軌。
您可以使用 API Explorer 測試是否能變更曲目草稿狀態。不過,由於工具不支援上傳檔案,因此無法使用 API Explorer 更新實際的字幕軌。
以下要求會擷取 Google Stories YouTube 頻道影片的字幕清單:
這項要求會將字幕音軌的草稿狀態更新為 true
,表示該音軌不會公開顯示。如要在 API Explorer 中完成要求,您必須設定 id
屬性的值,以便識別字幕音軌。
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.captions.update? part=snippet
如需程式碼範例,請參閱 captions.update
方法的說明文件。
刪除字幕軌
以下範例說明如何刪除字幕音軌。這個範例包含以下步驟:
-
步驟 1:擷取字幕群組 ID
按照上述步驟擷取影片的字幕音軌清單。這份清單可用來顯示字幕音軌清單,並使用每個音軌的 ID 做為鍵。
-
步驟 2:刪除曲目
呼叫
captions.delete
方法即可刪除特定影片。在要求中,id
參數會指定要刪除的字幕軌 ID。要求必須使用 OAuth 2.0 授權。如果您要在 API Explorer 中測試這項查詢,請將有效的字幕音軌 ID 替換為id
參數值。https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.captions.delete? id=CAPTION_TRACK_ID