添加 WebVTT 字幕(文本軌道)

在本主題中,您將學習如何使用CMS API為視頻的字幕或章節添加WebVTT文本軌道。

簡介

最初使用POST請求創建視頻時,無法添加WebVTT字幕(文本軌道):

  • 對於要在Video Cloud中提取的文本軌道,可以將這些軌道包含在Dynamic Ingest請求中以提取視頻-請參閱提取WebVTT文件有關詳細信息。
  • 如果文本軌道將託管在某個遠程位置,則可以使用以下命令將它們添加到視頻中:PATCH請求更新視頻元數據。見CMS API示例:更新影片有關更新請求的示例。

無論是攝取還是遠程,都可以使用PATCH請求更新與文本軌道關聯的元數據(例如scrlang要么label,或者文本軌道是否為default視頻)。

另請參閱 使用 CMS API 管理文本軌道, 了解有關文本軌道元數據處理方式差異的更多信息,具體取決於文本軌道是遠程的、使用靜態攝取配置文件攝取的,還是使用動態攝取配置文件攝取的。

注意事項

  • 當您更新Dynamic Delivery視頻上的文本軌道時,該過程是異步的,因此響應狀態代碼為202 ACCEPTED,並且更新不會立即進行。
  • 每個視頻最多只能有1000條文字軌道。
  • 標題的文字必須編碼為 UTF-8,才能正確顯示雙位元組語言 (例如日文和韓文)。

遠程或攝取

授權

要求CMS API需要包含您的訪問令牌的授權標頭。如需有關如何取得用戶端認證並使用它們來擷取存取權杖的詳細資訊,請參閱 Brightcove OAuth 概觀

您需要更新視頻元數據的操作是video-cloud/video/update要么video-cloud/video/all

語法

請求

              https://cms.api.brightcove.com/v1/accounts/{account_id}/videos/{video_ID}

要求主體:

請求主體將是一個JSON對象,其中包含文本軌道數組:

    {"text_tracks" : [ {
      "src" : "https://some.site.com/captions/bc_smart_ja.vtt",
      "srclang" : "ja",
      "label" : "日本人",
      "kind" : "captions",
      "mime_type" : null,
      "default" : false
    }, {
      "src" : "https://some.site.com/captions/bc_smart_es.vtt",
      "srclang" : "es",
      "label" : "español",
      "kind" : "captions",
      "mime_type" : null,
      "default" : false
    }, {
      "src" : "https://some.site.com/captions/bc_smart_de.vtt",
      "srclang" : "de",
      "label" : "Deutsch",
      "kind" : "captions",
      "mime_type" : null,
      "default" : false
    }, {
      "src" : "https://some.site.com/captions/bc_smart_fr.vtt",
      "srclang" : "fr",
      "label" : "français",
      "kind" : "captions",
      "mime_type" : null,
      "default" : false
    }, {
      "src" : "https://some.site.com/captions/bc_smart.vtt",
      "srclang" : "en",
      "label" : "English",
      "kind" : "captions",
      "mime_type" : null,
      "default" : true
    }
    ]}

取代文字軌道

替換現有文本軌道(上載或遠程)的過程分為兩個步驟:

  1. 通過刪除現有的文本軌道CMS API更新(PATCH):

    API 要求 (修補程式)

        https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id

    要求主體

        {
              "text_tracks": []
          }
  2. 如果要添加遠程文本軌道,請通過另一個添加CMS API更新(PATCH)(可選-如果要上載文本軌道,請跳至下一步):

    API 要求 (修補程式)

        https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id

    要求主體

        {
            "text_tracks": [
                {
                  "src": "https://some.site.com/vtt/sample.vtt",
                  "srclang": "en",
                  "label": "EN",
                  "kind": "captions",
                  "mime_type": "text/webvtt"
                },
                {
                  "src": "https://some.site.com/vtt/sample-es.vtt",
                  "srclang": "es",
                  "label": "ES",
                  "kind": "captions",
                  "mime_type": "text/webvtt"
                }
            ]
        }
  3. 如果您要上傳新的文本軌道,請通過POST請求將其添加到Dynamic Ingest API:

    API請求(POST)

        https://ingest.api.brightcove.com/v1/accounts/account_id/videos/video_id / ingest請求

    要求主體

        {
            "text_tracks": [
                {
                    "url": "https://solutions.brightcove.com/bcls/assets/vtt/sample.vtt",
                    "srclang": "en",
                    "kind": "captions",
                    "label": "EN",
                    "default": true
                },
                {
                    "url": "https://solutions.brightcove.com/bcls/assets/vtt/sample-ar.vtt",
                    "srclang": "ar",
                    "kind": "captions",
                    "label": "AR",
                    "default": false
                }
            ]
        }
  4. 向GET請求CMS API驗證新文本軌道是否與視頻相關聯:
                  https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id