將CMS與Video Cloud集成

在本主題中,您將學習整合布萊特灣視訊雲端與 CMS 所涉及的基本操作。它列出了使用者在 CMS 和可用於提供該功能的 Brightcove API 操作中執行的典型功能。

使用者函數

以下是與Video Cloud您可能想提供CMS用戶:

  • 將新視頻添加到Video Cloud
  • 更換一個Video Cloud帶有新版本的視頻
  • 更新影片的中繼資料,例如標題、說明和標籤
  • 刪除視訊
  • 建立播放清單
  • 變更播放清單中的影片
  • 刪除播放清單
  • 建立視訊播放程式
  • 修改視訊播放程式屬性,例如尺寸或樣式
  • 透過外掛程式為影片播放器新增特殊功能
  • 發佈單一影片或播放清單
  • 提供有關影片載入、觀看次數、播放率、參與度等的分析資料

您可能不希望將所有這些功能公開給最終用戶-例如,您可能不想讓他們刪除視頻。整合的優勢之一Video Cloud使用您的CMS,而不是讓用戶直接轉到Video Cloud Studio是您可以精確選擇要通過Brightcove API向用戶公開的功能。

驗證

對於所有布賴特灣 API 請求,身份驗證基於 OAuth2 訪問令牌。獲取訪問令牌有兩個步驟的過程:

  1. 為您需要的 API 操作創建具有權限的客戶端認證
  2. 使用客戶端憑據創建臨時訪問令牌來驗證 API 請求

建立用戶端認證

創建客戶端憑據是一次性操作,可以通過以下方式執行Video Cloud工作室或者OAuth API。但是你這樣做,a client_idclient_secret被返回,你必須保存它以請求訪問令牌。

建立存取權杖

臨時訪問令牌是使用OAuth APIclient_idclient_secret必須是 Base64 編碼並以Basic授權字串傳遞。

access_token返回的被轉換在帶有 API 調用的授權標頭中傳遞:

    Authorization: Bearer your_access_token
    
    

訪問令牌有效期為 5 分鐘。除非您正在執行某種將進行數百次連續 API 調用的批處理操作,否則只為每個 API 調用請求一個新的操作,而不是試圖跟踪超時是有意義的。

新增視訊

如果您希望讓用戶將視頻添加到Video Cloud在CMS中,您可以使用Dynamic Ingest API。我們建議您讓使用者將視訊上傳至您的儲存庫,這可能是 S3 儲存貯體或只是面向公開的伺服器。動態提取系統可以提取視頻並將其添加到Video Cloud系統通過以下概述的兩步過程進行。

將視頻對象添加到Video Cloud

第一步是在Video Cloud通過製作一個系統POST要求CMS API

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

請求正文將在JSON對象-最少,視頻name,但您還可以添加其他元數據,例如descriptiontags

    {
    "name": "Woodpecker",
    "description": "A bird that hunts insects inside wood",
    "reference_id": "Bird_Woodpecker.mp4",
    "tags": ["bird", "air", "nature"]
    }
    
    

擷取視訊

創建視頻對象時,CMS API將返回一個JSON包含視頻屬性的對象。您將提取視頻id來自JSON,並使用它來撥打Dynamic Ingest API請求視頻的攝取和轉碼:

    https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/VIDEO_ID/ingest-requests
    
    

同樣,您將發送JSON在請求正文中指定視頻文件的位置:

    {
      "master":{
        "url":"https://support.brightcove.com/test-assets/videos/Great_Blue_Heron.mp4"
      },
      "profile":"multi-platform-extended-static",
      "capture-images": true
    }
    
    

profile這裡是「內嵌描述檔」,指定在轉碼過程中應該建立的轉譯。在大多數情況下,下列其中一個標準縱斷面應該足夠:

動態傳送設定檔

  • multi-platform-extended-static
  • multi-platform-standard-static

舊式內嵌設定檔

  • videocloud-default-v1 (the default)
  • screencast-1280
  • smart-player-transition
  • single-bitrate-high
  • audio-only
  • single-bitrate-standard
  • high-resolution

但是,如果需要,您可以使用來創建其他自定義攝取配置文件Ingest Profiles API或使用Video Cloud工作室

新增海報和縮圖影像

capture-images上面代碼中的選項指示Video Cloud在轉碼過程中在中點捕獲視頻的海報和縮略圖圖像。或者,您可以改capture-images為設定false和內嵌影像,不論是在內嵌視訊的同時還是稍後:

    {
    "master":{
    "url":"https://support.brightcove.com/test-assets/videos/Great_Blue_Heron.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "https://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "https://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    }
    }
    
    

看到圖片和Dynamic Ingest API更多細節。

新增字幕或章節的文字軌

您也可以使用Dynamic Ingest API WebVTT 檔案中的文字軌道新增至視訊,無論是在擷取時或更新版本。文字軌可用來新增字章節至視訊。

    {
    "master":{
    "url":"https://some.site.com/videos/mp4/Bird_Woodpecker.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "https://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "https://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    },
    "text_tracks": [
    {
    "url": "https://some.site.com/captions/for_video/Water-in-Motion.vtt",
    "srclang": "en",
    "kind": "captions",
    "label": "English",
    "default": true
    }
    ]
    }
    
    

看到提取WebVTT文件更多細節。

管理視訊

CMS API讓您取回帳戶的視訊資料。(如上所示,它也用來建立視訊物件,做為視訊擷取程序的一部分。)最基本的請求如下:

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

默認情況下,此請求返回一個JSON包含大量元數據的20個視頻對象組成的數組,包括名稱,描述,標籤,自定義字段,創建和最後修改的日期,海報和縮略圖的URL等。

您可以將下列一或多個參數新增至請求,來縮小要求的結果:

limit
這決定了要返回的視頻對象的數量,並且可以設置為 100 的任意數字-默認值是 20
offset
這決定了要跳過的項目數量,因此與limit視頻目錄一起使用-默認值為 0
sort
這會決定影片中繼資料欄位來排序結果-預設情況下,結果會依據updated_at (遞減排序,先顯示最近更新的影片)

看到CMS API概述-參數有關這些參數的詳細信息。

搜尋影片

您也可以使用q參數,依各種條件搜尋影片。您可以依照特定欄位 (例如名稱、說明和標籤),以及影片的日期和狀態進行搜尋:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos?q=tags:sea,mammal
    
    

有關詳細信息和所有搜索選項,請參見搜索視頻

取得和更新特定影片

要通過 ID 或參考 ID 檢索特定視頻:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/id
    or
    https://cms.api.brightcove.com/v1/accounts/account_id/videos/ref:reference_id
    
    

一種GET請求返回視頻對象。要對其進行更新,請修改JSON並使用PATCH請求到相同的URL。

播放清單

播放清單資訊的管理方式與視訊資訊大致相同。CMS API注意Video Cloud支持兩種類別的八種播放列表:

手動 (或EXPLICIT ) 播放清單
包含一組指定的影片-最多可包含 100 部影片
智慧型播放清單
根據搜索標準動態構建-有七種類型的智能播放列表對應於視頻在列表中排序的方式:
  • ACTIVATEDOLDESTTONEWEST
  • ACTIVATEDNEWESTTOOLDEST
  • ALPHABETICAL
  • PLAYSTOTAL
  • PLAYSTRAILINGWEEK
  • STARTDATEOLDESTTONEWEST
  • STARTDATENEWESTTO_OLDEST

影片數量限制可以設定為 100 以上的任意數目。

如同影片一樣,您可以擷取所有播放清單,如果帳戶有大量播放清單,使用limitoffset分頁結果:

    https://cms.api.brightcove.com/v1/accounts/account_id/playlists
    
    

傳回的播放清單物件陣列將包含播放清單的中繼資料,包括與上述其中一種類型type對應的中繼資料。如果類型是EXPLICIT,也會有一個包含所包含視頻的 ID 的video_ids數組。如果類型是智慧型播放清單類型之一,則會有一個search屬性包含擷取視訊的搜尋字串,如下所示:

    q=tags:fish,birds
    
    

您也可以透過下列方式擷取單一播放清單id

    https://cms.api.brightcove.com/v1/accounts/account_id/playlists/playlist_id
    
    

如果您需要擷取播放清單的完整視訊物件 (若要顯示頁面上的視訊相關資訊),只要新增/videos至該網址即可:

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

請注意,對於智慧型播放清單,請求會傳回符合搜尋條件的影片,但這可能會有所變更。

建立玩家

可以通過以下方式創建Brightcove播放器:Player Management API。API 可讓您建立播放器、更新其屬性,並以 URL、iframe標籤或 HTML 格式取得內嵌程式碼,以便嵌入頁面中。

每個帳號最多可以有 200 名玩家,但對於使用者來說,如果您絕對需要的玩家數量較少,通常不會讓人感到困惑。你應該有單獨的播放器播放單個視頻或播放列表,否則你只需要不同的播放器,當他們的風格不同或通過插件添加不同的功能時,你只需要不同的播放器。

要創建玩家,您只需製作一個POST要求Player Management API

    https://players.api.brightcove.com/v2/accounts/account_id/players
    
    

在請求的正文中,包括播放器配置 -唯一需要的是name

    {
    "name": "Single video player for blog posts"
    }
    
    

響應將為您提供播放器 ID 以及多種形式的嵌入代碼:

    {
    "embed_code": "<iframe src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
    "embed_in_page": "https://players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/in_page.embed",
    "id": "de055fa4-4f09-45af-8531-419c6794ad04",
    "preview_embed_code": "<iframe src='//preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
    "preview_url": "https://preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html",
    "url": "https://players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html"
    }
    
    

若要取得完整的播放程式設定,請向/players端點提出要求,但是新增上述回應中傳回的播放程式 ID:

    https://players.api.brightcove.com/v2/accounts/account_id/players/de055fa4-4f09-45af-8531-419c6794ad04
    
    

你可以做一個PATCH請求到同一端點以更新播放器配置。

您會在上面的回應中注意到preview_embed_codepreview_url。為了允許測試新玩家或玩家更新,新創建或更新的玩家將設置在預覽模式中,以便您在將更改改為現有玩家之前看到它。要將更改推送到生產中,您需要發布具有此請求的播放器:

    https://players.api.brightcove.com/v2/accounts/account_id/players/de055fa4-4f09-45af-8531-419c6794ad04/publish
    
    

自訂玩家

布萊特灣播放器使用標準網絡技術打造:HTML,CSS和JavaScript。您可以使用這些相同的技術來自訂播放器。這可以在發布播放器的頁面上完成,但是最佳做法是通過播放器將自定義項添加到播放器本身組態,通過PATCH要求Player Management API如上一節所述。

您還可以通過以下方式向播放器添加其他功能JavaScript外掛程式,並且播放器API幫助您將代碼與播放器集成。Brightcove 提供了許多現成的插件,例如啟用廣告,自定義終端屏幕,並添加覆蓋。

發佈視訊

在裡面創建玩家部分上面我們看到,當您使用Player Management API,返回的數據包括用於將播放器嵌入HTML頁面的iframe標籤,以及如果您想直接將播放器嵌入頁面的完整HTML的URL。

對於您選擇的任何嵌入,您都需要添加一個Video Cloud嵌入代碼中的視頻ID或播放列表ID,以向播放器添加內容。iframe 嵌入代碼如下所示:

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html'
    allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
    
    

對於播放器的 URL,您需要附加參數videoId={}video_id,以便完整的嵌入代碼如下所示:

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html?videoId=4483119716001'
    allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
    
    

如果這是播放清單播放程式,您可以playlistId={playlist_id}改用參數。頁內嵌程式碼的修改是類似的。

除非玩家尺寸在播放器配置中固定,否則您還需要通過在style屬性中添加寬度和高度來調整播放器的大小:

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html?videoId=4483119716001'
    allowfullscreen webkitallowfullscreen mozallowfullscreen
    style=width:640px;height:360px;></iframe>
    
    

取得分析報表

Analytics API允許您通過許多不同的方式生成分析報告dimensions。見尺寸指南欲獲得更多信息。

您可以指定報告的日期範圍,要返回的指標,還可以獲取以下數據:JSONcsv, 要么xlxs格式

對於上個月內的期間,您還可以生成詳細的參與度報告該視圖顯示了視頻中每十分之一的觀看次數。

API 摘要

以下是可用於與API集成的API的摘要Video Cloud

OAuth API
用於創建客戶端憑據和訪問令牌來訪問其他 API。
媒體管理
Ingest Profiles API
用於創建自定義攝取配置文件,指定要為添加到其中的視頻創建的演繹版本Video Cloud
Dynamic Ingest API
用於將視頻和相關媒體資產添加到Video Cloud
CMS API
用於建立視訊物件以進行擷取,以及管理視訊和播放清單
布萊特灣玩家
布萊特灣玩家
播放器包括JavaScript在運行時與播放器進行交互的API
Player Management API
用於創建和配置玩家,以及獲取玩家嵌入代碼
Analytics API
用於取得視訊效能的分析報表