支持 聯繫支持 | 系統狀況 系統狀態

媒體共享

在本主題中,您將學習如何共享一個視頻 Video Cloud 使用 CMS API.

簡介

媒體共享是 Video Cloud 使發布者可以與其他發布者共享視頻,從而使您可以更輕鬆地管理多個帳戶中的視頻。 例如,發布者可以保留視頻內容的主帳戶,然後將視頻共享給組織的其他部門或子公司。

請注意,所有媒體共享操作也可以在Studio中執行。 看到 管理媒體共享設置.

共享媒體和計費

有關共享媒體計費方式的信息,請參閱 使用媒體模塊進行媒體共享.

術語

在媒體共享中,一個主帳戶(共享視頻)與一個或多個關聯帳戶(接收共享視頻)之間存在關聯:

媒體共享術語
帳戶 產品描述
碩士 創建原始視頻的帳戶。

主人擁有內容,並負責設置,管理和向會員提供內容。

加盟 正在接收視頻的帳戶。

關聯企業可以接受來自母版的共享內容。

渠道 從主機共享內容到任意數量的會員的管道。 啟用媒體共享後, default 頻道將在您的帳戶中創建。
關係 描述管理員與會員之間的互動。

關係由共享內容的主機,共享內容的渠道,接受內容的合同以及接收內容的關聯公司組成。

合同 描述了母版和會員之間的共享關係。

合同由主合同創建,然後必須接受才能啟用共享。 關聯公司還可以指定共享視頻是被自動接受還是必須被逐一批准。

基本網址

至於全部 CMS API 請求,下面討論的操作的基本URL是:

      https://cms.api.brightcove.com/v1

發出請求時,下面討論的所有端點都將附加到基本URL。

認證

對請求的身份驗證需要一個Authorization標頭:

          Authorization: Bearer {access_token}

access_token 是必須從Brightcove OAuth服務獲取的臨時OAuth2訪問令牌。 有關如何獲取客戶端憑據並使用它們來檢索訪問令牌的詳細信息,請參閱 Brightcove OAuth概述.

注意周圍的所有操作 關係 所需的新權限:

      video-cloud/video/all
      video-cloud/sharing-relationships/read
      video-cloud/sharing-relationships/create
      video-cloud/sharing-relationships/update
      video-cloud/sharing-relationships/delete

或者,您可以只使用:

      video-cloud/sharing-relationships/all

在Studio API身份驗證管理頁面中,顯示了兩個權限:

  • 分享閱讀 (相當於 video-cloud/sharing-relationships/read)
  • 共享讀/寫 (相當於 video-cloud/sharing-relationships/all)

共享限制

默認情況下,所有視頻都可以共享。 但是,您可以在以下情況下阻止共享:

  • 聯盟帳戶沒有一個自定義字段,該字段在主帳戶中的視頻上設置了一個值
  • 主帳戶已啟用地理過濾,但會員帳戶未啟用

自定義字段匹配

您可以為頻道強制執行自定義字段匹配,這意味著視頻共享將失敗 如果視頻具有會員帳戶中不存在的自定義字段的值。 如果視頻沒有任何不匹配的自定義字段的值,視頻仍將成功共享

默認情況下,自定義字段匹配為 強制執行。

如果視頻共享由於自定義字段不匹配而失敗,您將在響應中看到類似以下的錯誤:

      {
        "video_id": "5691312273001",
        "affiliate_id": "47509719001",
        "affiliate_video_id": null,
        "status": "PROCESSING",
        "error_message": [{"error_code":"MISSING_CUSTOM_FIELDS","error_message":"Affiliate account is missing custom fields: [subject]"}],
        "shared_at": "2018-01-03T16:29:19.080Z",
        "updated_at": "2018-01-03T16:29:19.080Z"
      }

地理過濾匹配

如果為頻道啟用了地理過濾匹配,則在主帳戶已啟用地理過濾而會員帳戶未啟用地理過濾的情況下,無法共享視頻。

默認情況下,地理過濾匹配 is 強制執行。

該錯誤將如下所示:

      {
        "video_id": "5691312273001",
        "affiliate_id": "47509719001",
        "affiliate_video_id": null,
        "status": "PROCESSING",
        "error_message": [{"error_code":"CONFLICT","error_message":"Affiliate account is not configured for geo restriction."}],
        "shared_at": "2018-01-03T16:29:19.080Z",
        "updated_at": "2018-01-03T16:29:19.080Z"
      
      

看到 更新頻道 下面介紹瞭如何更新渠道以實施自定義字段和/或地理位置過濾匹配。

共有什麼?

本部分說明共享的內容以及如何處理視頻的後續更改。

共享視頻時

共享視頻時,大多數視頻元數據字段都將從母版複製到會員帳戶。 值得注意的例外是:

  • id -該視頻將在會員帳戶中擁有自己的唯一ID
  • 日期字段,例如 created_atupdated_at

會員帳戶使用所有視頻資產(租借,圖像,text_tracks等)進行播放。

分享視頻後

共享視頻後,會員帳戶會自動繼承主帳戶中對視頻所做的某些更改,而某些更改則不會。

視頻資產

圖片除外,對視頻資產的主更改是 時刻 由會員繼承。 會員關係 無法更改資產 例如演繹,清單,文本軌道或數字母版。

主人對圖片的更改由會員繼承 除非會員更換了圖片。 會員更改圖像後,該圖像將不再從主服務器繼承。

視頻元數據

會員可以修改任何視頻元數據(例如名稱,描述和參考ID),並且在主視頻上所做的更改是 由會員繼承。

轉貼影片

但是請注意,如果 重新分享 視頻(只能通過 CMS API,而不是在Studio中),所有資產和元數據(數據/時間字段除外)將共享給會員, 覆蓋會員所做的任何更改.

媒體共享步驟概述

建立關係

以下是建立關係的操作的摘要(單擊操作名稱以獲取更多詳細信息):

設置操作
主操作
手術 方法/終點 產品描述
列出頻道 GET /accounts/ master_account_id/channels 獲取帳戶的渠道列表
獲取頻道詳細信息 GET /accounts/ master_account_id/channels/ channel_name [2-1] 獲取頻道的詳細信息
更新頻道 POST /accounts/ master_account_id/channels/ channel_name 更新頻道設置
列出頻道會員 GET /accounts/ master_account_id/channels/default/members 獲取頻道的會員
添加會員 PUT /accounts/ master_account_id/channels/default/members 將會員添加到頻道
刪除會員 DELETE /accounts/ master_account_id/channels/default/members/ affiliate_account_id 從頻道中刪除會員
會員運營
手術 方法/終點 產品描述
列出可用合同 GET /accounts/ affiliate_account_id/contracts 獲取該帳戶可用的所有合同
獲取特定帳戶的合同 GET /accounts/ affiliate_account_id/contracts/ master_account_id 從特定帳戶獲取合同(如果有)
批准合同 PATCH /accounts/ affiliate_account_id/contracts/ master_account_id 接受並配置合同的接受條件

筆記

  • [2-1] 目前只有一個頻道名為 default

分享影片

視頻共享操作由主帳戶執行。 會員帳戶可以接受共享(如果 auto_accept 被設置為 false),並可以使用標準更新共享的視頻元數據和圖像 更新影片 操作。

建立關係後,可以執行以下共享操作(單擊操作名稱以獲取更多詳細信息):

共享操作
主操作
手術 方法/終點 產品描述
列出現有股份 GET /accounts/ master_account_id/videos/ video_id/shares 獲取視頻的現有共享列表-這是 重要 由於的後果 重新分享視頻 當它已經被共享
分享影片 POST /accounts/ master_account_id/videos/ video_id/shares 與一個或多個會員共享視頻-請注意,如果視頻已經共享,則此操作將 重新分享 -那可能是 你想做什麼
取消共享會員視頻 DELETE /accounts/ master_account_id/videos/ video_id/shares 取消共享特定會員的視頻-請注意,取消共享和重新共享將使共享的視頻在會員帳戶中具有新的視頻ID
會員運營
手術 方法/終點 產品描述
接受共享的視頻 PATCH /accounts/ affiliate_account_id/videos/ video_id 接受共享視頻(如果 auto_accept 已關閉)

CMS API 請求-設置

本節列出了 CMS API 設置媒體共享所涉及的操作。

主操作

列出頻道

列出頻道
選項 GET
端點 /accounts/ master_account_id/channels
請求正文
樣品回复
      [
        {
          "account_id": "57838016001",
          "name": "default",
          "enforce_custom_fields": false,
          "enforce_geo": false,
          "account_name": "BrightcoveLearning",
          "created_at": "2017-08-23T17:11:18.474Z",
          "updated_at": "2017-08-23T17:11:18.474Z"
        }
      ]

獲取頻道詳細信息

獲取頻道詳細信息
選項 GET
端點 https://cms.api.brightcove.com/v1/accounts/ master_account_id/channels/ channel_name [5-1]
請求正文
樣品回复
      {
        "account_id": "57838016001",
        "name": "default",
        "enforce_custom_fields": false,
        "enforce_geo": false,
        "account_name": "BrightcoveLearning",
        "created_at": "2017-08-23T17:11:18.474Z",
        "updated_at": "2017-08-23T17:11:18.474Z"
      }
筆記
  • [5-1] 目前只有一個頻道名為 default

更新頻道

創建頻道
選項 PATCH
端點 /accounts/ master_account_id/channels/ channel_name [6-1]
請求正文
      {
        "enforce_custom_fields" : true,
        "enforce_geo" : true
      }
樣品回复
      {
        "account_id": "57838016001",
        "name": "default",
        "enforce_custom_fields": true,
        "enforce_geo": true,
        "account_name": "BrightcoveLearning",
        "created_at": "2017-08-23T17:11:18.474Z",
        "updated_at": "2017-12-30T15:06:27.015Z"
      }
筆記
  • [6-1] 目前只有一個頻道名為 default

列出頻道的會員

列出渠道會員
選項 GET
端點 /accounts/ master_account_id/channels/default/members
請求正文
樣品回复
      [
        {
          "account_id": "20318290001",
          "approved": false,
          "account_name": "Brightcove Training"
        },
        {
          "account_id": "1485884786001",
          "approved": true,
          "account_name": "Brightcove Learning Doc Samples"
        },
        {
          "account_id": "1752604059001",
          "approved": true,
          "account_name": "BC Training Videos"
        }
      ]

的價值 approved 字段指示關聯公司是否已批准合同。

將會員添加到頻道

添加會員
選項 PUT
端點 /accounts/ master_account_id/channels/default/members/ affiliate_account_id
請求正文
      {
        "account_id":"affiliate_account_id"
      }
樣品回复
      {
        "account_id": "1485884786001"
      }

從頻道中刪除會員

刪除會員
選項 DELETE
端點 /accounts/ master_account_id/channels/default/members/ affiliate_account_id
請求正文
樣品回复 204 NO CONTENT (空響應正文)

會員運營

列出可用合同

列出合約
選項 GET
端點 /accounts/ affiliate_account_id/contracts
請求正文
樣品回复
      [
        {
          "account_id": "1485884786001",
          "channel": {
            "account_id": "57838016001",
            "name": "default"
          },
          "approved": false,
          "auto_accept": false,
          "approved_at": null,
          "updated_at": "2017-08-23T17:45:41.556Z",
          "created_at": "2017-08-23T17:45:41.556Z"
        }
      ]

響應中的兩個基本字段是:

  • approved -設為true時,聯盟會員會接受合同
  • auto-accept -設置為true時,通過此合同共享的視頻將被會員自動接受; 否則,必須一一批准

我們將在下面查看如何更新合同。

獲取特定帳戶的合同

取得合約
選項 GET
端點 /accounts/ affiliate_account_id/contracts/ master_account_id
請求正文
樣品回复
      {
        "account_id": "1485884786001",
        "channel": {
          "account_id": "57838016001",
          "name": "default"
        },
        "approved": false,
        "auto_accept": false,
        "approved_at": null,
        "created_at": "2017-08-23T17:45:41.556Z",
        "updated_at": "2017-08-23T17:45:41.556Z"
      }

批准合同

批准合同
選項 PATCH
端點 /accounts/ affiliate_account_id/contracts/ master_account_id
請求正文
      {
        "approved": true,
        "auto_accept": true
      }
樣品回复
      {
        "account_id": "1485884786001",
        "channel": {
          "account_id": "57838016001",
          "name": "default"
        },
          "approved": true,
        "auto_accept": true,
        "approved_at": "2017-08-27T12:27:21.582Z",
        "created_at": "2017-08-23T17:45:41.556Z",
        "updated_at": "2017-08-27T12:27:21.582Z"
      }

如果僅包括 "approved":true,每個視頻都必須分別獲得批准。

CMS API 請求-共享

本節詳細介紹 CMS API 共享視頻中使用的請求。 媒體共享操作由主帳戶執行。 會員帳戶可以接受股票,如果 auto_accept 已關閉。

主操作

列出現有股份

要了解視頻是否已經與其他帳戶共享,可以使用以下請求。

列出股份
選項 GET
端點 /accounts/ master_account_id/videos/ video_id/shares
請求正文
樣品回复
      [
        {
          "video_id": "5553744346001",
          "affiliate_id": "1752604059001",
          "affiliate_video_id": "5553754248001",
          "status": "COMPLETE",
          "shared_at": "2017-08-27T14:35:01.890Z",
          "updated_at": "2017-08-27T14:35:25.630Z"
        },
        {
          "video_id": "5553744346001",
          "affiliate_id": "1485884786001",
          "affiliate_video_id": "5553758415001",
          "status": "COMPLETE",
          "shared_at": "2017-08-27T14:34:34.919Z",
          "updated_at": "2017-08-27T14:35:25.212Z"
        }
      ]

分享(或轉播)視頻

下文所述的請求會將視頻共享給一個或多個會員帳戶。

分享視頻
選項 POST
端點 /accounts/ master_account_id/videos/ video_id/shares
請求正文
      [
        { "id": "affiliate_account_id_1" },
        { "id": "affiliate_account_id_2" }
      ]
樣品回复

成功回應

      [
        {
          "video_id": "5553744346001",
          "affiliate_id": "1485884786001",
          "affiliate_video_id": null,
          "status": "PROCESSING",
          "shared_at": "2017-08-27T14:25:55.710Z",
          "updated_at": "2017-08-27T14:25:55.710Z"
        }
      ]

失敗回應

      {
      "video_id": "5553744346001",
      "affiliate_id": "1485884786001",
      "affiliate_video_id": null,
      "status": "ERROR",
      "error_message": "[{\"error_code\":\"MISSING_CUSTOM_FIELDS\",\"error_message\":\"Affiliate account is missing custom fields: [myfieldname]\"}]",
      "shared_at": "2017-10-23T15:21:38.541Z",
      "updated_at": "2017-10-23T15:22:58.519Z"
      }

分享將在會員的帳戶中創建一個新視頻。 的 state 的視頻份額將是 PROCESSING 直到共享完成 該視頻是在會員帳戶中創建的。 關聯企業可能仍需要接受視頻(如果 auto_accept 被設置為 false 關於會員的合同-請參閱上一章“設置共享”。

取消共享會員視頻

取消分享視頻
選項 DELETE
端點 /accounts/ master_account_id/videos/ video_id/shares/ affiliate_account_id
請求正文
樣品回复 202 ACCEPTED (空響應正文)-響應表明請求已被接受進行處理,但操作可能會在幾分鐘內完成

會員運營

接受分享的視頻

要接受共享視頻,會員會更新共享視頻,並將其設置為 stateACTIVE。 (設置 stateINACTIVE 拒絕分享。)

接受共享視頻
選項 PATCH
端點 /accounts/ affiliate_account_id/videos/ affiliate_video_id
請求正文
      
        {
          "state": "ACTIVE"
        }
      
樣品回复
      {
        "id": "5557656136001",
        "account_id": "1485884786001",
        "ad_keys": null,
        "clip_source_video_id": null,
        "complete": true,
        "created_at": "2017-08-30T13:35:51.796Z",
        "cue_points": [
        ],
        "custom_fields": {
        },
        "delivery_type": "dynamic_origin",
        "description": null,
        "digital_master_id": "4728546275001",
        "duration": 11111,
        "economics": "AD_SUPPORTED",
        "folder_id": null,
        "geo": null,
        "has_digital_master": true,
        "images": {
          "thumbnail": {
            "asset_id": "5473683978001",
            "remote": false,
            "src": "http://brightcove.vo.llnwd.net/e1/pd/57838016001/57838016001_5473683978001_4728519374001-th.jpg?pubId=1485884786001&videoId=5557656136001",
            "sources": [
              {
                "src": "http://brightcove.vo.llnwd.net/e1/pd/57838016001/57838016001_5473683978001_4728519374001-th.jpg?pubId=1485884786001&videoId=5557656136001",
                "height": 90,
                "width": 160
              },
              {
                "src": "https://brightcove.hs.llnwd.net/e1/pd/57838016001/57838016001_5473683978001_4728519374001-th.jpg?pubId=1485884786001&videoId=5557656136001",
                "height": 90,
                "width": 160
              }
            ]
          },
          "poster": {
            "asset_id": "5473684427001",
            "remote": false,
            "src": "http://brightcove.vo.llnwd.net/e1/pd/57838016001/57838016001_5473684427001_4728519374001-vs.jpg?pubId=1485884786001&videoId=5557656136001",
            "sources": [
              {
                "src": "http://brightcove.vo.llnwd.net/e1/pd/57838016001/57838016001_5473684427001_4728519374001-vs.jpg?pubId=1485884786001&videoId=5557656136001",
                "height": 720,
                "width": 1280
              },
              {
                "src": "https://brightcove.hs.llnwd.net/e1/pd/57838016001/57838016001_5473684427001_4728519374001-vs.jpg?pubId=1485884786001&videoId=5557656136001",
                "height": 720,
                "width": 1280
              }
            ]
          }
        },
        "link": null,
        "long_description": null,
        "name": "oystercatcher.mp4",
        "original_filename": "57838016001_4728546275001_4728519374001.mp4",
        "projection": null,
        "published_at": "2017-08-30T13:41:13.974Z",
        "reference_id": "2016-01-29T21:41:33.225Z-screencast-1280",
        "schedule": null,
        "sharing": {
          "by_external_acct": true,
          "by_id": "57838016001",
          "source_id": "4728519374001",
          "to_external_acct": false,
          "by_reference": true
        },
        "state": "ACTIVE",
        "tags": [
          "newtag",
          "foo"
        ],
        "text_tracks": [
        ],
        "updated_at": "2017-08-30T13:41:14.075Z"
      }

設置 stateINACTIVE 拒絕分享。

請注意,沒有特殊通知指示已將視頻共享到您的帳戶。 但是,如果你 搜索視頻 用於 state:pending,它將找到任何不可接受的份額。 或者,您可以使用Studio Media模塊中的“待處理的共享”列表來查看和接受/拒絕待處理的共享:

待定股份
待定股份

錯誤

媒體共享錯誤不會作為對API請求的單獨錯誤響應返回,而是在 error_message 正常響應中的字段:

      [
        {
          "video_id" : "1239817239128",
          "affiliate_id" : "32871239",
          "affiliate_video_id" : "30308254055202",
          "status" : "COMPLETE",
          "shared_at" : "2017-12-11T17:57:45.530Z",
          "updated_at" : "2017-12-11T18:03:32.789Z",
          "error_message" : "[{"error_code":"MISSING_CUSTOM_FIELDS","error_message":"Affiliate account is missing custom fields: [whisky]"}]"
        }
      ]

看到 練習 CMS API 錯誤參考 更多的細節。

限制

當前,媒體共享具有以下限制:

  • DRM:通過 CMS API 當前不支持啟用DRM的帳戶。 支持將視頻從未啟用DRM的帳戶共享到已啟用DRM的帳戶,但是共享的視頻將 打包為DRM。
  • 如果主帳戶定義的渠道已設置 enforce_custom_fieldstrue,然後共享一個具有自定義字段且其會員帳戶所不允許的值的視頻,則共享嘗試將失敗。 共享狀態將更新,並顯示以下錯誤消息:

          [{"error_code": "ILLEGAL_CUSTOM_FIELD_VALUE", "error_message": "Illegal value for custom fields: [topic]"}]
          

    如果主帳戶定義的渠道已設置 enforce_custom_fieldsfalse,然後共享具有自定義字段且其關聯會員帳戶不允許使用的值的視頻,則共享嘗試將起作用,但是具有錯誤值的字段將不會包含在視頻的關聯副本中。

  • 使用SSAI播放共享視頻時,替換SSAI Macro將使用父視頻而不是子視頻的元數據。 如果父視頻標記為,SSAI還將跳過廣告查找 Advertising='Free',即使子視頻被標記為 Ad Supported.

頁面最後更新於12年2020月XNUMX日