簡介
Brightcove 的播放版權管理服務提供可擴充且具表現力的方式來管理視訊播放。
如果您不熟悉此功能,請參閱概觀:管理播放權限文件。
驗證程序
播放權限是按特定性和匹配順序應用的。允許規則會否定其餘規則,因為它們比允許規則的特定性要低。
您可能希望允許特定的IP來避免該IP的國家/地區規則。您可能還希望阻止國家/地區限制通常允許的其他IP。因此,同時擁有block-ips
和allow-ips
在相同的播放權限定義中。其他規則也是如此。
您可以為大多數權限設置允許和禁止規則。國家是唯一沒有可能同時擁有兩者的國家。
以下流程圖顯示了驗證過程的工作方式。
工作流程
要管理播放限制,請按照下列步驟操作:
設置您的帳戶
此功能適用於可存取播放版權管理服務之「有限可用性」階段的特定客戶。如需詳細資訊,請聯絡客戶經理。
產生OAuth憑證
拿你的BC_TOKEN
和帳號。
- 登入視訊雲端工作室。在裡面管理員下拉菜單,選擇帳戶信息。複製您的帳戶ID。
-
隨著 Studio 中的任何頁面打開,打開瀏覽器的開發人員工具,轉到控制台,並粘貼以下代碼:
var cookiesArray = document.cookie.split(";"), cookiesObj = {}, i, tmpArray = []; for (i = 0; i < cookiesArray.length; i++) { tmpArray = cookiesArray[i].split("="); if (tmpArray[0].indexOf('BC_TOKEN') > -1) { cookiesObj.BC_TOKEN = tmpArray[1]; } } window.prompt("BC_TOKEN:", cookiesObj.BC_TOKEN);
,然後按回車鍵。
-
您應該會看到一個提示,其中包含您的
BC_TOKEN
索取客戶憑證
為Playback Rights API添加帳戶權限。
- 為Playback Rights API創建客戶端憑據的最簡單方法是使用這個在線應用並在創建憑據時確保包括以下權限:
- 如果您希望直接使用OAuth API生成憑據,請繼續以下步驟。
-
這是具有所需權限的OAuth客戶端請求的示例。看到獲取您的BC_TOKEN有關獲取您的BC_TOKEN的信息。
捲曲 -包括\\ --header“授權:BC_TOKEN 您的BC_TOKEN“ \\ --data { name = demo&maximum_scope = [{ “身份”:{ “ type”:“ video-cloud-account”, “帳戶ID”:您的帳號 }, “操作”:[ “ video-cloud / playback-auth / playback-rights / read”, “ video-cloud / playback-auth / playback-rights / write”, “視頻雲/視頻/閱讀”, “視頻雲/視頻/創建”, “視頻雲/視頻/更新”, “視頻雲/視頻/刪除”, “視頻雲/回放身份驗證/密鑰/讀取”, “視頻雲/播放身份驗證/密鑰/寫入” ] }] } \\ https://oauth.brightcove.com/v4/client_credentials
-
從API響應中,複製
client_id
和client_secret
。向Playback Rights API發出請求時,將使用它們來生成訪問令牌。
定義限制
使用“播放權限” API定義視頻播放限制。
播放權限API
每個播放權限制物件都可以搭配一或多個視訊使用。
基本網址
API 的基本網址是:
https://playback-rights.api.brightcove.com/v1
帳號路徑
在所有情況下,我們都會針對特定的視訊雲端帳戶提出要求。因此,您將始終將術語帳戶後面跟著您的帳戶 ID 添加到基本 URL 中:
https://playback-rights.api.brightcove.com/v1/accounts/{accountID}
授權
請求的訪問令牌是必需的,並且必須出現在授權頭።
Authorization: Bearer {access_token}
訪問令牌是一個臨時的 OAuth2 訪問令牌,必須從布萊特灣 OAuth 服務獲得。如需有關如何取得用戶端認證並使用它們來擷取存取權杖的詳細資訊,請參閱 Brightcove OAuth 概觀。
權限
必須透過具有下列權限的用戶端認證提出對播放權限 API 的要求:
-
video-cloud/playback-auth/playback-rights/read
-
video-cloud/playback-auth/playback-rights/write
管理限制
播放權限API支持以下請求。有關API的詳細信息,請參見播放權限API參考。
創建新的播放權限
POST /v1/accounts/{accountID}/playback_rights
Content-Type: application/json
Body: {playback rights object}
如需有效欄位的清單,請參閱 [ 要求主體 ] 區段。
捲曲範例
創建僅對澳大利亞有效的播放權。
捲曲-X 帖子\
https://playback-rights.api.brightcove.com/v1/accounts/{your_account_id}/playback_rights \\
-H' 授權:承載{access_token}'\\
-H '內容類型:應用程序 /json'\
-d '{
“ geo”:{
“ allowed_countries”:[
“ AU”
]
}
} '
API 回應
保存playback_rights_id
值供以後使用。您可以在API響應中找到該值。要么:
-
響應頭:
的
playback_rights_id
值可以在Location
標頭響應的字段。它應該是類似於這樣的:Location: /v1/accounts/your account_id/playback_rights/your playback_rights_id
-
反應體
的
playback_rights_id
值可以在響應正文中找到id
領域。它應該是類似於這樣的:{ "id": "your playback_rights_id", "geo": { "allowed_countries": [ "MX", "US"] }
獲取帳戶的所有播放權限
GET /v1/accounts/{accountID}/playback_rights
為帳戶獲取特定的播放權限
GET /v1/accounts/{accountID}/playback_rights/{playbackRightsID}
更新特定的播放權限:
PUT /v1/accounts/{accountID}/playback_rights/{playbackRightsID}
Content-Type: application/json
Body: {playback rights object}
如需有效欄位的清單,請參閱 [ 要求主體 ] 區段。
刪除特定的播放權限:
DELETE /v1/accounts/{accountID}/playback_rights/{playbackRightsID}
要求主體
這是您可以包含在請求正文中的所有字段的示例:
{
"geo": {
"allowed_countries": [
"MX",
"US"
],
"blocked_countries": [
"JP",
"CN"
],
"allowed_zip_codes": [
"US-90210"
],
"blocked_zip_codes": [
"US-72810"
],
"allowed_dmas": [
501
],
"blocked_dmas": [
803
]
},
"blocked_proxies": {
"anonymous": true,
"public": true,
"corporate": true,
"transparent": true
},
"allowed_domains": [
"www.google.com",
"www.brightcove.com"
],
"blocked_domains": [
"www.ooyala.com"
],
"start_time": 1572905011,
"end_time": 1672905011,
"allowed_ips": [
"192.168.1.1"
],
"blocked_ips": [
"192.168.1.1"
],
"allowed_days": [
"mon",
"tue"
],
"allowed_hours": [
"5-6"
],
"allow_insecure": true,
"disabled": false,
"name": "Optional playback right name"
}
這裡是字段的詳細信息:
欄位 | 類型 | 描述 |
---|---|---|
allowed_countries ,blocked_countries |
字串 | 兩個字母國家/地區代碼的數組,遵循ISO 3166-1 alpha-2標準。有關值的列表,請參見正式分配的代碼元素。 |
allowed_zip_codes ,blocked_zip_codes |
字串 | 郵遞區號陣列,以兩個字母的國家和連字號為前綴。例如["US-90045"] 。兩個字母的國家/地區代碼必須為大寫字母,並且遵循ISO 3166-1 alpha-2標準,如正式分配的代碼元素。 |
allowed_dmas ,blocked_dmas |
整數 | 尼爾森指定的市場區域(DMA)編號數組。有關值的列表,請參見DMA碼文件。 |
blocked_proxies: anonymous |
布林值 | 客戶端的IP地址不可用。包括更改位置以擊敗DRM,TOR點,臨時代理和其他掩蔽服務的服務。 |
blocked_proxies: public |
布林值 | 從允許公共互聯網訪問的位置代理了多個用戶。 |
blocked_proxies: corporate |
布林值 | 通常認為是無害的,但位置可能是個問題。確定是否有多個用戶通過一個或多個中央位置代理,並且可以共享一個網絡上的IP地址。 |
blocked_proxies: transparent |
布林值 | 客戶端的IP地址可通過HTTP標頭獲得,儘管該值不一定可靠(例如,它可以被欺騙)。 |
allowed_domains ,blocked_domains |
字串 | 域名數組 |
start_time ,end_time |
整數 | 時代時間 |
allowed_ips ,blocked_ips |
整數 | ipv4 / ipv6地址或CIDR塊的數組。 |
allowed_days |
字串 | 允許檢索資源的日期的3個字母的小寫字母組成的數組。一個或多個:mon, tue, wed, thu, fri, sat, sun |
allowed_hours |
整數 | 從24小時制開始的小時數數組(從0開始,一直到47),在此期間允許檢索資源。當前日期為0到23,第二天結束日期為24到47。如果允許的小時數塊在前一天開始,在第二天結束,則必須使用24+標記。 示例:值 3-4 此標頭中的資源表示該資源在UTC凌晨3:00到UTC凌晨3:59可用 |
allow_insecure |
布林值 | 預設:false 設置為 true 使JWT令牌為可選。 |
disabled |
布林值 | 預設:false 設置為 true 禁用播放權,允許所有人播放。 |
name |
字串 | 可選播放權名稱 |
將限制與視頻相關聯
使用CMS API將播放權限ID與視頻相關聯。您將使用在上一步中創建的“播放權限” ID。
CMS 應用程式
每個播放權限制物件都可以搭配一或多個視訊使用。
基本網址
API 的基本網址是:
https://cms.api.brightcove.com/v1
帳號路徑
在所有情況下,我們都會針對特定的視訊雲端帳戶提出要求。因此,您將始終將術語帳戶後面跟著您的帳戶 ID 添加到基本 URL 中:
https://cms.api.brightcove.com/v1/accounts/{accountId}
授權
請求的訪問令牌是必需的,並且必須出現在授權頭።
Authorization: Bearer {access_token}
訪問令牌是一個臨時的 OAuth2 訪問令牌,必須從布萊特灣 OAuth 服務獲得。如需有關如何取得用戶端認證並使用它們來擷取存取權杖的詳細資訊,請參閱 Brightcove OAuth 概觀。
權限
必須透過具有下列權限的用戶端認證提出對播放權限 API 的要求:
-
video-cloud/video/read
-
video-cloud/video/update
管理限制
的CMS API支持許多請求類型。要更新視頻,請使用以下命令:
更新視頻:
關聯一個playback_rights_id
帶視頻。該ID應該存在於您在上一步中創建的Playback Rights API中。
PATCH /v1/accounts/{account_id}/videos/{video_id}
Content-Type: application/json
Body: {video object}
捲曲範例
在視頻中添加playback_rights_id。
curl -X PATCH \\
https://cms.api.brightcove.com/v1/accounts/ 您的account_id /視頻/ 您的video_id \\
-H' 授權:承載者您的access_token '\\
-H '內容類型:應用程序 /json'\
-d '{
“ playback_rights_id”:“您的playback_rights_id”
} '
獲取特定的視頻:
GET /v1/accounts/{account_id}/videos/{video_ids}
有關使用API的完整詳細信息,請參見CMS API參考。
定義用戶級別的限制
如果您需要用戶級別的限制,則需要一個JSON Web Token(JWT)配置了與您的限制有關的聲明。
步驟
創建一個JSON Web Token(JWT)傳遞給您的播放器,請按照以下步驟操作:
-
確定限制
從下面的列表中確定要使用的用戶級別限制的類型。在創建自己的廣告時,請包括必要的JWT聲明JSON Web Token(JWT)。
裝置限制
提出 DRM 授權請求時,會註冊使用者的裝置,並指派唯一的 ID。每個授權要求都會檢查並強制執行裝置限制。要使用此限制,請使用當前用戶ID(uid)生成一個JWT。
有關詳細信息,請參見實施設備限制文件。
並行串流限制
提出 DRM 授權請求時,會註冊使用者的裝置,並指派唯一的 ID。對於每個許可請求,都會檢查設備ID,以確保它僅同時觀看指定數量的視頻流。
有關詳細信息,請參見限制每個查看器的並發流文件。
標籤
基於
tags
聲稱,JSON Web Token(JWT)將指定用戶有權觀看的視頻組。您可以使用媒體模塊在Brightcove的Video Cloud Studio中。播放授權服務將檢查與每個視頻關聯的標籤。如果標籤中的至少一個與JWT令牌中的列表匹配,則可以觀看視頻。
JWT令牌中的標籤將作為標籤數組列出。
-
建立JSON Web Token
若要建立與 Brightcove 播放 API 通訊時使用的權杖,請參閱建立JSON Web Token (JWT) 文件。
配置播放器
默認情況下,Brightcove播放器與Brightcove播放API(PAPI)對話。一個管理回放限制的新系統位於Playback API的前面。要配置播放器,請參閱以下內容:
網路播放器
要配置Brightcove網絡播放器,請參閱在Brightcove Player中使用播放權限文件。
原生安卓播放器
要為Android配置本機播放器,請參見在本機SDK中使用播放權文件。
原生 iOS 播放器
要為iOS配置本機播放器,請參見在本機SDK中使用播放權文件。
你自己的球員
如果您的內容在視頻雲庫中,但您使用的是自己的播放器,則可以按如下所示調用Playback API 概述:播放 API 文件。將基本URL替換為以下內容:
https://edge-auth.api.brigthcove.com
除了使用策略密鑰,您將使用JWT令牌進行身份驗證:
Authorization: Bearer {JWT}
這是一個Curl示例:
curl -X GET \\
-H' 授權:承載{JWT}'\\
https://edge-auth.api.brightcove.com/playback/v1/accounts/{your_account_id}/videos/{your_video_id}