概述:社交聯合API

社交聯合發行 API 是一個可公開存取的 API,可讓您從 VideoCloud 視訊目錄建立、管理和用來產生動態摘要 (例如 MRSS 摘要) 的聯合項目。

在本文件中

相關文件

簡介

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 .所有語法規則都適用-唯一的區別是輸入搜索字符串作為include_filter值而不?query=是參數。

在使用標籤作為參數時include_filter對象,如果標籤在開頭有特殊字符,則該實例的語法應為:

"include_filter": "tags:\"<special-character>tagName\""

type 字串 將要生成的提要的類型。通用類型允許通過上傳的供稿模板生成自定義供稿。有效值:advancedgoogleiphoneipadmp4itunesrokusourceuniversal。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_idcreated_at,,published_atupdated_atschedule.starts_atschedule.ends_atstateplays_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"
  }

請注意,nametype欄位是必要欄位。其他是可選的。

更新企業聯合組織

方法:PATCH

端點:/accounts/{account_id}/mrss/syndications/{syndication_id}

請求主體範例:

  {
    "name": "my new name"
  }

請注意,PATCH 要求的要求主體不得包含欄位 ( typeidsyndication_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>