概要
パブリッシャーは、多くの場合、技術的およびビジネス上の理由の両方で、メディアマニフェストのコンテンツ特性を変更する必要があります。これらのニーズを満たすために、Brightcoveは Dynamic Delivery から返されたマニフェストの内容を変更するルールを適用できるフレームワークを作成しました。
配信ルールは、条件とアクションで構成されています。
- 条件 -特定のアクションをトリガーする「If」条件
- 行動 -マニフェストの変更方法を定義する「Then」パラメータ
配信ルールの詳細については、以下を参照してください。
アカウント設定
料金の詳細については、アカウントマネージャーにお問い合わせください。また、アカウントでこの機能を有効にすることもできます。
ルールの適用
次のフロー図は、配信ルールがどのように適用されるかを示しています。
条件
最初のフェーズでサポートされる「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の制限です。