以下範例說明如何使用 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