概要
出版社は、技術的理由とビジネス上の理由の両方で、メディアマニフェストのコンテンツ特性を変更する必要があることがよくあります。 これらのニーズを満たすために、Brightcoveは、DynamicDeから返されるマニフェストのコンテンツを変更するルールを適用できるフレームワークを作成しました。livery。
Deliveryルールは、条件とアクションで構成されています。
- の賃貸条件 -特定のアクションをトリガーする「If」条件
- アクション -マニフェストの変更方法を定義する「Then」パラメーター
Deの詳細についてはliveryルールについては、以下を参照してください。
アカウント設定
料金について確認し、アカウントでこの機能を有効にするには、アカウントマネージャーにお問い合わせください。
ルールの適用
次のフロー図は、liveryルールが適用されます。

の賃貸条件
最初のフェーズでサポートされる「if」条件には、次のものが含まれます。
-
明示的なリクエスト -構成IDは、作成したアクションのIDです。 このIDを使用して、 Playback API 実行時。 このIDは、基になるサービスが Playback API 適切な応答データを返します。
-
デバイスグループ -ユーザーエージェント解析によって検出されたデバイスタイプ。 現在サポートされているグループは次のとおりです。
- アンドロイド
- アプレット
- Chromecastの
- アプリ
- iphone
- デスクトップクロム
- デスクトップ-Firefox
- デスクトップサファリ
- fetchtv
- iOS-その他
- roku-7 / 8
- スマートフォン汎用
- タブレット-アンドロイド
- タブレットキンドル
- 未知の
-
地理 -リクエストしているデバイスの物理的な場所:
- 大陸
- 国
アクション
最初のフェーズでサポートされるアクション、つまり「then」パラメーターには、次のものがあります。
-
メディアデlivery CDN -特定のDynamicDe内で使用するように構成されたCDNからliveryアカウント、deに使用するCDNliveメディアセグメントのry。
-
レンディションの特性 -基になるメディアレンディションの特性に基づいてフィルターします。 これらには以下が含まれます:
- 最小ビデオビットレート
- 最大ビデオビットレート
- 最小ビデオ解像度
- 最大ビデオ解像度
- オーディオレンディションの最大数
- ビデオレンディションの最大数
- 最初のビデオビットレート
- 不連続
範囲
アクションはXNUMXつのレベルで適用できます。
- アカウント -特定の顧客のアカウントに対して行われたすべてのリクエストに適用されるアクション
- 特定の要求 -特定のリクエストで呼び出されるアクション
アクションは上記の順序で適用されます。 後のアクションは前のアクションをオーバーライドします。
ルールの定義
Deを使用するliveメディアをカスタマイズするためのryRules APIlivery。
DeliveryルールAPI
DeliveryルールAPI メディアを制御するための条件とアクションを定義できます。livery。
応答 デからlivery Rules APIには、 conditions
アレイ。 この配列を使用すると、複数を作成できます if
/ then
それぞれが then
XNUMXつ以上を指す アクション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}
アクセストークンは、Brightcove OAuthサービスから取得する必要がある一時的なOAuth2アクセストークンです。 クライアント資格情報を取得し、それを使用してアクセストークンを取得する方法の詳細については、 Brightcove OAuth の概要.
パーミッション
Playback Rights APIへのリクエストは、 クライアントの資格情報 次の権限を持つ:
-
video-cloud/delivery-rules/read
-
video-cloud/delivery-rules/all
ルールを管理する
デlivery Rules APIは、次のリクエストをサポートしています。 APIの詳細については、 DeliveryルールAPIリファレンス.
Get Deliveryルール
次のGETリクエストを使用して、Deの最新バージョンをフェッチしますliveアカウントのryルール。
GET /accounts/{accountID}
APIレスポンス
これが応答本文です。 Deに注意してくださいliveryルールには、一連の条件と一連のアクションが含まれています。
{
"conditions": [
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"MyAction1"
]
}
],
"actions": [
{
"id": "MyAction1",
"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": [
"MyAction1"
]
}
]
更新条件
次の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": [
"MyAction1"
]
}
]
条件のフィールドの詳細は次のとおりです。
フィールド | 種類 | 説明 |
---|---|---|
name |
文字列 | 条件の一意の識別子 |
device_group |
文字列 | ユーザーエージェント解析によって検出されたデバイスタイプの配列 |
request_country |
文字列 | XNUMX文字の国コードの配列 |
request_continent |
文字列 | XNUMX文字の大陸コードの配列 |
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"
]
}
}
アクションのAPI応答
アクションのリクエスト本文は次のとおりです。
{
"id": "MyAction1",
"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"
]
}
}
アクションのフィールドの詳細は次のとおりです。
フィールド | 種類 | 説明 |
---|---|---|
id |
文字列 | アクションに対してシステムが生成した一意の識別子。 これは actionID updateメソッドとdeleteメソッドで使用されます。 |
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 |
文字列 | オーディオコーデックの配列 |
アクションを取得
次の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リクエスト
見ます アクションのリクエスト本文.
APIレスポンス
見ます アクションのAPI応答.
アクションを削除する
次のDELETE要求を使用して、アカウントのアクションを削除します。
DELETE /accounts/{accountID}/actions/{actionID}
制限事項
Deを使用する場合、いくつかの既知の制限がありますliveryルール:
- メディアコンテンツ -デliveryルールはSmoothまたはpMP4ビデオでは機能しません。
- メディアコンテンツ -デliveryルールは動作しません live ビデオ。
- 音声のみ -デliveサーバーサイド広告(SSAI)が有効になっているryルールには、ビデオコンテンツとオーディオコンテンツの両方が必要です。 これはSSAIの制限です。