在本文件中
相關文件
簡介
Brightcove聯合組織配置API是一個公共可訪問的API,允許創建,管理聯合,並用於從Video Cloud帳戶的視頻目錄中生成動態源(例如MRSS feed)。
也有一個關聯的聯合發行項目摘要 API,可用來擷取與聯合發行項目相關聯的摘要。
可用性
聯合API適用於所有有權訪問平台API的Video Cloud客戶。
API參考/基本URL /標頭
配置 API 參考包含有關可用操作,字段和參數的所有詳細信息。
基本網址是:
https://social.api.brightcove.com/v1
所有請求都必須通過Authorization標頭進行身份驗證:
Authorization: Bearer {your_access_token}
有關訪問令牌的信息,請參閱下一節關於身份驗證。
對於傳送要求主體的任何要求,您也必須包含Content-Type: application/json
標頭。
驗證
訪問配置 API 需要指定一個bearer
令牌來自Brightcove OAuth 服務在請求的Authorization
標頭。各種API方法還需要為相關憑據指定以下操作之一(取決於訪問的方法):
video-cloud/social/mrss/read
video-cloud/social/mrss/write
這些操作可以通過 Studio 管理模塊的 API 身份驗證部分配置:
如果您願意,還可以通過OAuth API創建憑據:
聯合資源
聯合資源是定義如何創建聯合的對象。這是用於創建聯合資源的示例請求正文:
{
"name": "80s music videos syndication",
"type": "advanced",
"include_all_content": false,
"include_filter": "tags:mytag",
"title": "80s Music Videos",
"description": "Amateur Tokyo drift!",
"destination_url": "https://mywebsite.com",
"keywords": "80s, rock",
"author": "Rick Astley",
"category": "Music",
"album_art_url": "https://my_album_art.jpg",
"explicit": "no",
"owner_name": "https://my_album_art.jpg",
"owner_email": "rick@astley.com",
"language": "en-us",
"fetch_sources": true,
"fetch_digital_master": false,
"fetch_dynamic_renditions": true,
"sort": "-created_at",
"content_type_header": "application/xml"
}
該響應將添加一些只讀字段:
{
"id": "7f594cd3-4853-4174-aff3-203c3e99e9c2",
"name": "80s music videos syndication",
"type": "advanced",
"include_all_content": false,
"include_filter": "tags:mytag",
"title": "80s Music Videos",
"description": "Amateur Tokyo drift!",
"syndication_url": "https://social.feeds.brightcove.com/v1/accounts/9999999999999/mrss/accounts/{account_id}/mrss/syndications/7f594cd3-4853-4174-aff3-203c3e99e9c2/feed",
"destination_url": "https://mywebsite.com",
"keywords": "80s, rock",
"author": "Rick Astley",
"category": "Music",
"album_art_url": "https://my_album_art.jpg",
"explicit": "no",
"owner_name": "https://my_album_art.jpg",
"owner_email": "rick@astley.com",
"language": "en-us",
"fetch_sources": true,
"fetch_digital_master": false,
"fetch_dynamic_renditions": true,
"sort": "-created_at",
"content_type_header": "application/xml"
}
欄位 | 類型 | 只讀 | 描述 |
---|---|---|---|
id |
字串 | 是 | 創建聯合組織時生成 |
name |
字串 | 否 | 該聯合組織的內部名稱-POST請求所需 |
content_type_header |
字串 | 否 | 如果設置,則覆蓋此聯合供稿的供稿服務器返回的Content-Type標頭。否則,提要默認為特定於聯合類型的標頭值 |
include_all_content |
布林值 | 否 | 如果為true,則所有目錄視頻都包含在此聯合中 |
include_filter |
字串 | 否 |
如果include_all_content為false,則必須指定。價值是CMS API使用搜索字符串CMS API 視頻搜索語法 v2 .所有語法規則都適用-唯一的區別是輸入搜索字符串作為 在使用標籤作為參數時
|
type |
字串 | 否 | 將要生成的提要的類型。通用類型允許通過上傳的供稿模板生成自定義供稿。有效值:advanced 、google 、iphone 、ipad 、mp4 、itunes 、roku 、source 、universal 。POST請求所必需 |
title |
字串 | 否 | 此供稿的標題。這包括在 < 通道內 > 標籤適用的飼料類型 |
description |
字串 | 否 | 此供稿的說明。這包括在 < 通道內 > 標籤適用的飼料類型 |
syndication_url |
字串 | 是 | 該聯合組織的MRSS Feed的URL |
destination_url |
字串 | 否 | <channel>標記內包含的URL,用於適用的提要類型 |
keywords |
字串 | 否 | 以逗號分隔的列表,僅用於iTunes和(可能)通用供稿 |
author |
字串 | 否 | 僅用於 iTunes 和(可能)通用飼料 |
owner_name |
字串 | 否 | 僅用於 iTunes 和(可能)通用飼料 |
language |
字串 | 否 | 僅用於 iTunes 和(可能)通用提要-小寫的兩個字母語言代碼,例如"en" |
owner_email |
字串 | 否 | 僅用於 iTunes 和(可能)通用飼料 |
category |
字串 | 否 | 僅用於iTunes和(可能)通用供稿。若要指定具有子類別的品類,請以冒號 (:) 分隔它們,例如:"Business:Business News". "category": "Music" |
album_art_url |
字串 | 否 | 圖片的網址,僅用於iTunes和(可能)通用供稿 |
fetch_sources |
布林值 | 否 | 對於通用模板,是否要獲取視頻源元數據-如果模板不需要此元數據,可以通過指定來提高性能false ; 如果沒有可用源代碼存在,則可以為空 |
fetch_digital_master |
布林值 | 否 | 對於通用模板,是否獲取視頻數字主元數據-如果模板不需要此元數據,則可以通過指定來提高性能false ; 如果沒有數字主站存在,則可以為空 |
fetch_dynamic_renditions |
布林值 | 否 | 對於通用模板,是否獲取視頻動態轉譯元數據-如果模板不需要此元數據,可以通過指定來提高性能false |
sort |
字串 | 否 | CMS視頻排序說明符,指示所需的提要結果返回順序。CMS 支持的值name ,例如reference_id created_at ,,published_at ,updated_at ,schedule.starts_at ,schedule.ends_at 、state plays_total 、和plays_trailing_week 可以指定。要按降序排序,用減號(-)前面加上值,即指定-created_at ,默認情況下,飼料將按最近的updated_at 日期進行排序。 |
看CMS API 視頻搜索語法 v2有關詳細信息include_filter
財產..所有搜索語法規則都適用-唯一的區別是搜索字符串輸入的include_filter
值而不?query=
是參數。
作業
有關可用操作的完整詳細信息,請參見API參考:
支持以下操作:
錯誤訊息
如果任何API請求失敗,將返回錯誤消息。錯誤響應如下所示:
[
{
"error_code" : "Application error code 1",
"message" : "Application error message 1"
}, {
"error_code" : "Application error code 2",
"message" : "Application error message 2"
}
]
建立聯合
方法:POST
端點:/accounts/{account_id}/mrss/syndications
請求主體範例:
{
"name": "my mp4 feed",
"type": "mp4"
}
請注意,name
和type
欄位是必要欄位。其他是可選的。
更新企業聯合組織
方法:PATCH
端點:/accounts/{account_id}/mrss/syndications/{syndication_id}
請求主體範例:
{
"name": "my new name"
}
請注意,PATCH 要求的要求主體不得包含欄位 ( type
、id
和syndication_url
)。
刪除聯合組織
方法:DELETE
端點:/accounts/{account_id}/mrss/syndications/{syndication_id}
獲取帳戶的所有企業聯合組織
方法:GET
端點:/accounts/{account_id}/mrss/syndications
獲得特定的聯合組織
方法:GET
端點:/accounts/{account_id}/mrss/syndications/{syndication_id}
設置通用聯合組織的模板
方法:PUT
端點:/accounts/{account_id}/mrss/syndications/{syndication_id}/template
請求主體範例:
<feed header>My Feed Header</feed header>
上面的模板將生成類似於以下內容的供稿:
<feed header>My Feed Header</feed header>
<item>
<title>Title for Video 1</title>
<video_info>Description for Video 1</video_info>
</item>
<item>
<title>Title for Video 2</title>
<video_info>Description for Video 2</video_info>
</item>
獲取通用聯合組織的模板
方法:GET
端點:/accounts/{account_id}/mrss/syndications/{syndication_id}/template
獲取與聯合發布相關聯的供稿
您可以從聯合發行項目的syndication_url
欄位取得摘要 URL,或是手動建構。請注意,聯合動態消息 API 也可用來擷取動態消息,而無需驗證。
方法:GET
端點:/accounts/{account_id}/mrss/syndications/{syndication_id}/feed
通用模板語言
通用聯合組織允許將目錄數據與自定義模板合併,以生成所需的任何類型的供稿。支持的模板語言是液體。默認聯合類型的提要是使用相同類型的模板生成的,您可以看到作為樣本提供的模板以幫助您在需要時構建自定義模板。
以下各節標識了可以使用的聯合組織,資產,源和數字主屬性,以及為方便起見添加的Liquid的擴展。
若要查看所有含說明的視訊雲視訊中繼資料欄位,請前往 CMS API 視訊欄位參考資料。
頂級屬性
源自聯合發布字段
album_art_url
author
category
description
destination_url
explicit
keywords
name
owner_name
owner_email
subtitle
syndication_id
syndication_url
title
視頻雲帳戶ID
account_id
VideoCloud默認播放器頁面網址前綴
像這樣使用:
<media:player url="//default_default/index.html?videoId=">
player_url
提要下一頁的URL
next_page
從目錄中檢索到的視頻資產的集合(有關詳細信息,請參見下文)
assets
資產屬性
資產集合中的資源來自CMS Get Videos API方法返回的視頻資源,並且支持所有相同的屬性,包括但不限於以下各項:
created_at
description
duration
id
images
images.thumbnail
images.poster
long_description
name
original_filename
published_at
schedule
state
tags
text_tracks
updated_at
資產資源還支持以下屬性:
sources
(視頻源集合-請參閱源屬性下一節)digital_master
(如果沒有數字主機存在,則為空-請參閱下面的數字主機屬性)best_mp4_source
(最高質量的 MP4 源-如果沒有 MP4 源,則可能為空。屬性將與中返回的項目相同sources
)hls_source
(返回 HLS 源-如果不存在,則為空)best_dynamic_rendition_quality
(如果已擷取視訊的動態轉譯中繼資料,則傳回影格大小最大之視訊動態轉譯的視訊品質。允許的值為“ SD”,“ HD”,“ FHD”和“ UHD”。)
源屬性
資產的源集合中的資源來自CMS Get Video Sources API方法返回的視頻源資源。支援下列屬性:
app_name
asset_id
codec
container
created_at
duration
encoding_rate
height
size
src
stream_name
type
uploaded_at
width
數字主機屬性
資產的digital_master
資源衍生自 CMS 取得數位主資訊 API 方法傳回的數位主資源。支援下列屬性:
duration
encoding_rate
height
size
url
width
動態再現屬性
資產的dynamic_renditions
資源衍生自 CMS 取得數位主機資訊 API 方法傳回的動態轉譯。支援下列屬性:
rendition_id
frame_height
frame_width
media_type
encoding_rate
created_at
updated_at
size
duration
audio_configuration
language
variant
液體的延伸
toUTC過濾器
我們擴展了Liquid解析器以支持toUTC過濾器,該過濾器將解析大多數標準ISO-8601日期時間字符串格式並將其轉換為標準UTC日期時間字符串。Liquid的日期過濾器可以接受這種格式,然後可以使用該格式將時間戳重新格式化為任何所需格式的日期時間字符串。例如:
<pubDate>{{asset.published_at | toUTC | date: "%a, %d %b %Y %H:%M:%S %Z"}}</pubDate>
如果asset.published_at的值為2019-08-09T13:32:52.031Z:,則會產生類似以下的輸出:
<pubDate>Fri, 09 Aug 2019 09:32:52 +0000</pubDate>
toEpoch過濾器
我們使用的Liquid解析器在日期過濾器中不支持將日期轉換為Unix紀元時間戳的“%s”令牌。為了解決這個問題,提供了一個toEpoch定製過濾器,該過濾器可用於將有效日期規範轉換為紀元格式。過濾器返回一個數字數據值,該值表示自適合輸入數學過濾器的時期以來的毫秒數。例如:
<toEpochMillis>{{"now" | toEpoch }}</toEpochMillis>
<toEpochSeconds>{{"now" | toEpoch | divided_by : 1000 }}</toEpochSeconds>
<thirtyDaysAgo>{{'now' | toEpoch | minus:2592000000 | fromEpoch }}</thirtyDaysAgo>
產生如下所示的輸出:
<toEpochMillis>1580917253024</toEpochMillis>
<toEpochSeconds>1580917253</toEpochSeconds>
<thirtyDaysAgo>2020-01-06T15:40:53.055Z</thirtyDaysAgo>
fromEpoch過濾器
FromePoch 篩選器會將代表紀元以來毫秒的數字轉換為 UTC 日期字串。過濾器還將接受包含紀元值數字的字符串作為輸入。如有必要,可以將輸出傳遞到日期過濾器以重新格式化。
例如:
<fromEpochMillis>{{"now" | toEpoch | fromEpoch }}</fromEpochMillis>
<thirtyDaysAgoAltFormat>{{1580917253024 | fromEpoch | date:"%Y-%m-%d" }}</thirtyDaysAgo>
產生如下所示的輸出:
<fromEpochMillis>2020-02-05T16:09:37.809Z</fromEpochMillis>
<thirtyDaysAgoAltFormat>2020-02-05</thirtyDaysAgo>