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

    配信ルールの実装

    「このトピックでは、Brightcoveの配信ルールを実装する方法を学習します。これにより、ビジネス目標に合わせてメディアの配信方法をカスタマイズできます。」

    概要

    パブリッシャーは、多くの場合、技術的およびビジネス上の理由の両方で、メディアマニフェストのコンテンツ特性を変更する必要があります。これらのニーズを満たすために、Brightcoveは Dynamic Delivery から返されたマニフェストの内容を変更するルールを適用できるフレームワークを作成しました。

    配信ルールは、条件とアクションで構成されています。

    • 条件 -特定のアクションをトリガーする「If」条件
    • 行動 -マニフェストの変更方法を定義する「Then」パラメータ

    配信ルールの詳細については、以下を参照してください。

    アカウント設定

    料金の詳細については、アカウントマネージャーにお問い合わせください。また、アカウントでこの機能を有効にすることもできます。

    ルールの適用

    次のフロー図は、配信ルールがどのように適用されるかを示しています。

    Delivery rules applied
    配信ルールが適用されました

    条件

    最初のフェーズでサポートされる「if」条件には、次のものがあります。

    • 明示的なリクエスト -構成IDは、作成したアクションのIDです。このIDを使用して、実行時にPlaybackAPIに渡します。このIDは、基になるサービスがPlaybackAPIによって利用される決定を行って適切な応答データを返すことを可能にする構成値にマップされます。

    • Device Group :ユーザーエージェントの解析によって検出されたデバイスタイプ。現在サポートされているグループは次のとおりです。
      • Android
      • アップルトV
      • Chromecast
      • iPad
      • iPhone
      • デスクトップクロム
      • デスクトップFirefox
      • デスクトップサファリ
      • fetchTV
      • ios-その他
      • ろく-7/8
      • スマートフォン汎用
      • タブレットアンドロイド
      • table-kindle
      • 不明
       
    • Geography -要求元のデバイスの物理的な場所:
      • 大陸

    行動

    最初のフェーズでサポートされるアクション、つまり「then」パラメーターには、次のものがあります。

    • メディア配信 CDN -特定の動的配信アカウント内で使用するように構成された CDN から、メディアセグメントの配信に使用する CDN。

    • レンディション特性 -基盤となるメディアレンディションの特性に基づいてフィルタリングします。たとえば、次のような事項が挙げられます。
      • 最小ビデオビットレート
      • 最大ビデオビットレート
      • 最小ビデオ解像度
      • 最大ビデオ解像度
      • オーディオレンディションの最大数
      • ビデオレンディションの最大数
      • 最初のビデオビットレート
      • 不連続性

    スコープ

    アクションは、次の2つのレベルで適用できます。

    • アカウント -特定の顧客のアカウントに対して行われたすべてのリクエストに適用されるアクション
    • 特定のリクエスト -特定のリクエストで呼び出されるアクション

    アクションは上記の順序で適用されます。後のアクションは前のアクションをオーバーライドします。

    ルールの定義

    Delivery Rules APIを使用して、メディア配信をカスタマイズします。

    配信ルール API

    ザ・Delivery Rules APIメディア配信を制御するための条件とアクションを定義できます。

    NS 応答 Delivery Rules APIから、conditions配列。この配列を使用すると、複数を作成できますif / thenそれぞれがthen 1つ以上を指すアクションID

    追加または削除する方法はありませんがconditions、あなたは更新することによってこれを行うことができますconditions配列。

    ベース URL

    API のベース URL は次のとおりです。

    https://delivery-rules.api.brightcove.com

    アカウントパス

    いずれの場合も、特定の Video Cloud アカウントに対してリクエストが行われます。したがって、あなたは常にベースURLにアカウントIDが続く用語アカウントを追加します。

    https://delivery-rules.api.brightcove.com/accounts/{accountID}

    認証

    リクエストのアクセストークンが必要であり、Authorizationヘッダに存在する必要があります።

    Authorization: Bearer {access_token}

    アクセストークンは、一時的な OAuth2 アクセストークンで、Brightcove OAuth サービスから取得する必要があります。クライアントクレデンシャルを取得してアクセストークンを取得する方法の詳細については、「 Brightcove OAuth の概要」を参照してください。

    権限

    Playback Rights API へのリクエストは、次のアクセス許可を持つクライアント認証情報から行う必要があります

    • video-cloud/delivery-rules/read
    • video-cloud/delivery-rules/all

    ルールを管理する

    Delivery Rules APIは、次のリクエストをサポートしています。APIの詳細については、Delivery Rules APIリファレンス

    配信ルールを取得する

    次のGETリクエストを使用して、アカウントの最新バージョンの配信ルールを取得します。

    GET /accounts/{accountID}
    API レスポンス

    ここにレスポンス本文があります。配信ルールには、一連の条件と一連のアクションが含まれていることに注意してください。

    {
      "conditions": [
        {
          "name": "MyCondition1",
          "if": {
            "device_group": [
              "ipad"
            ],
            "request_country": [
              "string"
            ],
            "request_continent": [
              "AF"
            ]
          },
          "then": [
            "MyAction1"
          ]
        }
      ],
      "actions": [
        {
          "id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
          "properties": {
            "min_video_bitrate": 0,
            "max_video_bitrate": 0,
            "first_video_bitrate": 0,
            "min_video_resolution": "string",
            "max_video_resolution": "string",
            "max_video_renditions": 0,
            "max_audio_renditions": 0,
            "preferred_cdn_provider": "string",
            "preferred_cdn_domain": "string",
          "video_codecs": [
            "string"
          ],
          "audio_codecs": [
            "string"
          ]
        }
        }
      ]
    }

    条件を取得する

    次のGETリクエストを使用して、アカウントの条件を取得します。

    GET /accounts/{accountID}/conditions
    API レスポンス

    ここにレスポンス本文があります。

    [
      {
        "name": "MyCondition1",
        "if": {
          "device_group": [
            "ipad"
          ],
          "request_country": [
            "string"
          ],
          "request_continent": [
            "AF"
          ]
        },
        "then": [
          "44c91a1d-71f1-40b4-b9cf-3abcd12345"
        ]
      }
    ]

    更新条件

    次のPUTリクエストを使用して、アカウントの条件を更新します。

    PUT /accounts/{accountID}/conditions
      Content-Type: application/json
      Authorization: Bearer {access_token}
      Body: {conditions object}
    

    条件の要求本文

    条件のリクエスト本文は次のとおりです。これは条件オブジェクトの配列であることに注意してください。

    [
      {
        "name": "MyCondition1",
        "if": {
          "device_group": [
            "ipad"
          ],
          "request_country": [
            "string"
          ],
          "request_continent": [
            "AF"
          ]
        },
        "then": [
          "44c91a1d-71f1-40b4-b9cf-3abcd12345"
        ]
      }
    ]

    条件のフィールドの詳細は次のとおりです。

    フィールド タイプ 説明
    name 文字列 状態の一意の識別子
    device_group 文字列 ユーザーエージェントの解析によって検出されたデバイスタイプの配列
    request_country 文字列 2文字の国コードの配列
    request_continent 文字列 2文字の大陸コードの配列
    then 文字列 関連するアクションの一意の識別子

    アクションを作成する

    次のPOSTリクエストを使用して、アカウントのアクションを作成します。

    POST /accounts/{accountID}/actions
      Content-Type: application/json
      Authorization: Bearer {access_token}
      Body: {actions object}
    

    アクションのリクエストボディ

    アクションのリクエストボディを次に示します。

    {
        "properties": {
          "min_video_bitrate": 0,
          "max_video_bitrate": 0,
          "first_video_bitrate": 0,
          "min_video_resolution": "string",
          "max_video_resolution": "string",
          "max_video_renditions": 0,
          "max_audio_renditions": 0,
          "preferred_cdn_provider": "string",
          "preferred_cdn_domain": "string",
          "video_codecs": [
            "string"
          ],
          "audio_codecs": [
            "string"
          ]
      }
    }

    アクションのフィールドの詳細は次のとおりです。

    フィールド タイプ 説明
    properties オブジェクト 特定のアクションに対して定義されたプロパティのオブジェクト
    min_video_bitrate
    max_video_bitrate
    整数 許可される最小または最大のビデオビットレート(kbps)を設定します
    first_video_bitrate 整数 最初のビデオのビットレートを設定します(kbps)
    min_video_resolution
    max_video_resolution
    文字列 最小または最大の許容ビデオ解像度(WxH)を設定します
    max_video_renditions 整数 ビデオレンディションの最大数を設定します
    max_audio_renditions 整数 オーディオレンディションの最大数を設定します
    preferred_cdn_provider 文字列 優先CDNプロバイダーを設定する
    preferred_cdn_domain 文字列 優先CDNドメインを設定する
    video_codecs 文字列 ビデオコーデックの配列
    audio_codecs 文字列 オーディオコーデックの配列

    アクションに対するAPI応答

    アクションのリクエストボディを次に示します。

    {
        "id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
        "properties": {
          "min_video_bitrate": 0,
          "max_video_bitrate": 0,
          "first_video_bitrate": 0,
          "min_video_resolution": "string",
          "max_video_resolution": "string",
          "max_video_renditions": 0,
          "max_audio_renditions": 0,
          "preferred_cdn_provider": "string",
          "preferred_cdn_domain": "string",
          "video_codecs": [
           "string"
          ],
          "audio_codecs": [
           "string"
          ]
      }
    }

    リクエストのアクションフィールドに加えて、APIレスポンスには次の生成されたフィールドが含まれます。

    フィールド タイプ 説明
    id 文字列 システムは、アクションの一意の識別子を生成しました。これはactionID updateメソッドとdeleteメソッドで使用されます。

    アクションを取得

    次のGETリクエストを使用して、アカウントのアクションをフェッチします。

    GET /accounts/{accountID}/actions
    API レスポンス

    アクションについては、API レスポンスを参照してください

    アクションを取得する

    次のGETリクエストを使用して、アカウントの特定のアクションをフェッチします。

    GET /accounts/{accountID}/actions/{actionID}
    API レスポンス

    アクションについては、API レスポンスを参照してください

    アクションを更新する

    次のPUTリクエストを使用して、アカウントのアクションを更新します。

    PUT /accounts/{accountID}/actions/{actionID}
      Content-Type: application/json
      Authorization: Bearer {access_token}
      Body: {actions object}
    
    APIリクエスト

    これは、アクションを更新するためのサンプルリクエスト本文です。

    {
      "id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
      "properties": {
       "custom_properties": {
        "generate_thumbnails": false,
        "hls_iframes": true
       }
      }
     }
    API レスポンス

    更新されたアクションの応答例を次に示します。

    {
      "id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
      "properties": {
       "custom_properties": {
        "generate_thumbnails": false,
        "hls_iframes": true
       }
      }
     }

    アクションを削除する

    アカウントのアクションを削除するには、次のDELETEリクエストを使用します。

    DELETE /accounts/{accountID}/actions/{actionID}

    制約事項

    配信ルールを使用するときは、いくつかの既知の制限があります。

    • メディアコンテンツ -配信ルールは、スムーズ動画または PMP4 動画では機能しません。
    • メディアコンテンツ -配信ルールはライブ動画では機能しません。
    • 音声のみ -サーバーサイド広告(SSAI)を有効にした配信ルールでは、動画コンテンツと音声コンテンツの両方が必要です。これはSSAIの制限です。

    ページの最終更新日22 Sep 2021