實行傳送規則

在本主題中,您將學習如何實作 Brightcove 的傳遞規則,以便您自訂媒體的傳遞方式,以符合您的業務目標。

概覽

出版商通常需要修改其媒體清單的內容特性,因為技術和業務原因。為了滿足這些需求,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 限制。