サポート サポートへのお問い合わせ | システムステータス システムステータス
ページコンテンツ

    メディア共有

    このトピックでは、CMS API を使用して、Video Cloud アカウントから別のアカウント間で動画を共有する方法について説明します。

    はじめに

    メディア共有はVideo Cloudの機能の1つであり、パブリッシャーが他のパブリッシャーと動画を共有することができ、複数のアカウントに存在する動画の管理が容易になります。たとえば、パブリッシャーはビデオコンテンツのマスターアカウントを保持してから、組織の他の部門または子会社にビデオを共有できます。

    すべてのメディア共有操作はStudioでも実行できることに注意してください。見るメディア共有設定の管理

    共有メディアと請求

    共有メディアの課金の仕組みについては、を参照してください。メディアモジュールを使用したメディア共有

    用語集

    メディア共有では、マスターアカウント(ビデオを共有する)と1つ以上のアフィリエイトアカウント(共有ビデオを受信する)の間に関係があります。

    メディア共有の用語
    アカウント 説明
    習得する 元の動画を作成したアカウント。

    マスターはコンテンツを所有し、アフィリエイトにコンテンツを設定、管理、提供する責任があります。

    アフィリエイト ビデオを受信しているアカウント。

    アフィリエイトは、マスターから共有されたコンテンツを受け入れることができます。

    チャンネル マスターから任意の数のアフィリエイトにコンテンツを共有するパイプライン。メディア共有が有効になっている場合defaultチャンネルはあなたのアカウントに作成されます。
    関係 マスターとアフィリエイト間の相互作用について説明します。

    関係は、コンテンツを共有するためのマスター、コンテンツを共有するためのチャネル、コンテンツを受け入れるための契約、およびコンテンツを受け取るためのアフィリエイトで構成されます。

    契約 マスターとアフィリエイト間の共有関係について説明します。

    契約はマスターによって作成され、共有を有効にするには承認する必要があります。アフィリエイトは、共有ビデオを自動的に受け入れるか、1つずつ承認する必要があるかを指定することもできます。

    ベース URL

    すべてはCMS APIリクエストの場合、以下で説明する操作のベースURLは次のとおりです。

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

    以下で説明するすべてのエンドポイントは、リクエストを行うときにベースURLに追加されます。

    認証

    要求の認証には、Authorization ヘッダーが必要です。

              Authorization: Bearer {access_token}

    access_tokenは一時的な OAuth2 アクセストークンで、Brightcove OAuth サービスから取得する必要があります。クライアントクレデンシャルを取得してアクセストークンを取得する方法の詳細については、「 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認証管理ページには、次の2つの権限が表示されます。

    • 読み取りの共有(に相当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"
          }

    ジオフィルタリングマッチング

    チャネルに対してジオフィルタリングマッチングが有効になっている場合、マスターアカウントでジオフィルタリングが有効になっていて、アフィリエイトアカウントで有効になっていないと、動画を共有できません。

    デフォルトでは、ジオフィルタリングマッチングです施行。

    エラーは次のようになります。

          {
            "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_atそしてupdated_at

    すべてのビデオアセット(レンディション、画像、text_tracksなど)は、アフィリエイトアカウントによって再生に使用されます。

    ビデオが共有された後

    ビデオが共有された後、マスターアカウントのビデオへの変更の一部は、アフィリエイトアカウントによって自動的に継承され、一部は継承されません。

    ビデオアセット

    画像を除く、ビデオアセットへのマスターの変更は常にアフィリエイトに継承されます。アフィリエイトアセットを変更できませんレンディション、マニフェスト、テキストトラック、デジタルマスターなど。

    マスターによる画像への変更はアフィリエイトに継承されますアフィリエイトが画像を置き換えない限り。アフィリエイトが画像を変更すると、その画像はマスターから継承されなくなります。

    動画メタデータ

    ビデオメタデータ(名前、説明、参照IDなど)はアフィリエイトが変更でき、マスタービデオに加えられた変更は次のとおりです。ないアフィリエイトに継承されます。

    ビデオの再共有

    ただし、マスターの場合は注意してください再共有ビデオ(これはStudioではなくCMS APIを介してのみ実行できます)、すべてのアセットとメタデータ(データ/時間フィールドを除く)はアフィリエイトに共有されます。アフィリエイトが行った変更を上書きする

    メディア共有手順の概要

    関係を築く

    以下は、リレーションシップを設定するための操作の概要です(詳細については、操作名をクリックしてください)。

    セットアップ操作
    マスター操作
    オペレーション メソッド/エンドポイント 説明
    チャンネルを一覧表示 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]現在、という名前のチャンネルは1つだけですdefault

    動画を共有する

    ビデオ共有操作はマスターアカウントによって実行されます。アフィリエイトアカウントは共有を受け入れることができます(auto_acceptに設定されていますfalse)標準を使用して共有ビデオメタデータと画像を更新できますビデオの更新操作。

    関係が設定された後に実行できる共有操作は次のとおりです(詳細については、操作名をクリックしてください)。

    共有操作
    マスター操作
    オペレーション メソッド/エンドポイント 説明
    既存の株式を一覧表示する GET /accounts/ master_account_id/videos/ video_id/shares ビデオの既存の共有のリストを取得します-これは重要の結果のためにビデオの再共有すでに共有されている場合
    ビデオを共有する POST /accounts/ master_account_id/videos/ video_id/shares 1つ以上のアフィリエイトにビデオを共有する-ビデオがすでに共有されている場合、この操作は再共有する -それはおそらくないあなたがしたいこと
    アフィリエイトの動画の共有を解除する DELETE /accounts/ master_account_id/videos/ video_id/shares 特定のアフィリエイトの動画の共有を解除します-共有を解除して再共有すると、共有動画のアフィリエイトアカウントに新しい動画IDが追加されることに注意してください
    アフィリエイトオペレーション
    オペレーション メソッド/エンドポイント 説明
    共有ビデオを受け入れる PATCH /accounts/ affiliate_account_id/videos/ video_id 共有ビデオを受け入れる(auto_acceptオフになっています)

    CMSAPIリクエスト-セットアップ

    このセクションでは、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]現在、という名前のチャンネルは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]現在、という名前のチャンネルは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"
            }
          ]

    応答の2つの重要なフィールドは次のとおりです。

    • approved -trueに設定すると、契約はアフィリエイトによって受け入れられます
    • auto-accept -trueに設定すると、この契約を通じて共有された動画はアフィリエイトによって自動的に受け入れられます。それ以外の場合は、1つずつ承認する必要があります

    契約を更新する方法を以下に示します。

    特定のアカウントの契約を取得する

    契約を結ぶ
    方法 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、各動画は個別に承認する必要があります。

    CMSAPIリクエスト-共有

    このセクションでは、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"
            }
          ]

    ビデオの共有(または再共有)

    以下に説明するリクエストは、1つ以上のアフィリエイトアカウントにビデオを共有します。

    動画を共有
    方法 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 マクロ置換では、子ビデオの代わりに親ビデオのメタデータが使用されます。また、親動画がとしてマークされている場合、子動画にというラベルが付いている場合でもAdvertising='Free'、SSAI Ad Supportedは広告検索をスキップします。