概覽
出版商通常需要修改其媒體清單的內容特性,因為技術和業務原因。為了滿足這些需求,Brightcove 創建了一個框架,可以應用規則,以修改從動態傳遞返回的資訊清單的內容。
交付規則由條件和操作組成。
- 條件 -觸發特定動作的“如果”條件
- 動作 -定義清單修改方式的“然後”參數
如需傳遞規則的詳細資訊,請參閱下列內容:
帳戶設定
聯繫您的客戶成功經理以了解定價並為您的帳戶啟用此功能。
套用規則
以下流程圖顯示瞭如何應用交付規則。
條件
第一階段支持的“ if”條件包括:
-
明確要求 -配置ID是您創建的操作的ID。您將使用此ID在運行時傳遞給Playback API。此ID映射到配置值,這些配置值允許基礎服務通過Playback API利用決策來返回適當的響應數據。
-
裝置群組 -由使用者代理程式剖析偵測到的裝置類型。目前支援的群組包括:
- 機器
- 蘋果電視
- 鉻鑄
- iPad
- iPhone
- 桌上型電腦色彩
- 桌上型火狐
- 桌面野生動物園
- 電視
- iOS-其他
- 六 7/8
- 智慧型手機一般
- 平板電腦-安卓
- 平板電腦-點心
- 未知
-
地理 - 請求設備的物理位置:
- 大陸
- 國家
動作
在第一階段中支持的操作或“ then”參數包括:
-
媒體分發 CDN - 從配置為在給定動態交付帳戶中使用的 CDN,用於交付媒體段的 CDN。
-
轉譯特性 -根據基礎媒體轉譯的特性進行篩選。這些包括:
- 最低視訊位元率
- 最大視訊位元率
- 最低視訊解析度
- 最大視訊解析度
- 音訊轉譯數目上限
- 視訊轉譯數目上限
- 第一個視訊位元率
- 不連續性
範圍
可以在兩個級別上應用操作:
- 帳戶 -適用於對特定客戶帳戶的所有請求的操作
- 具體要求 -針對特定請求調用的操作
將按照上面列出的順序執行操作。以後的動作將覆蓋以前的動作。
定義規則
使用投放規則API自定義媒體投放。
交付規則API
這交付規則API允許您定義條件和操作來控制您的媒體交付。
這回复來自 Delivery Rules API 包含一個conditions
大批。該數組允許您創建多個if
/ then
每個條件then
指向一個或多個動作編號 .
即使沒有添加或刪除的方法conditions
,您可以通過更新conditions
大批。
基本網址
API 的基本網址是:
https://delivery-rules.api.brightcove.com
帳號路徑
在所有情況下,我們都會針對特定的視訊雲端帳戶提出要求。因此,您將始終將術語帳戶後面跟著您的帳戶 ID 添加到基本 URL 中:
https://delivery-rules.api.brightcove.com/accounts/{accountID}
授權
請求的訪問令牌是必需的,並且必須出現在授權頭።
Authorization: Bearer {access_token}
訪問令牌是一個臨時的 OAuth2 訪問令牌,必須從布萊特灣 OAuth 服務獲得。有關如何獲取客戶端憑據並使用它們檢索訪問令牌的詳細信息,請參閱Brightcove OAuth 概述 .
權限
對播放權限 API 的請求必須來自客戶憑據具有以下權限:
-
video-cloud/delivery-rules/read
-
video-cloud/delivery-rules/all
管理規則
傳遞規則API支持以下請求。有關 API 的詳細信息,請參閱交付規則 API 參考 .
獲取交貨規則
使用以下GET請求獲取帳戶的最新版本的投放規則。
GET /accounts/{accountID}
API 回應
這裡是響應主體。請注意,傳遞規則包含一組條件和一組操作。
{
"conditions": [
{
"name": "MyCondition1",
"if": {
"device_group": [
"ipad"
],
"request_country": [
"string"
],
"request_continent": [
"AF"
]
},
"then": [
"{action_id}"
]
}
],
"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 |
字串 | 兩個字母國家/地區代碼的數組 |
request_continent |
字串 | 兩個字母洲代碼的數組 |
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 在更新和刪除方法中使用。 |
採取行動
使用以下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 限制。