概述:EPG API

本主題概述了與 Cloud Playout 一起使用的 EPG API。

簡介

Cloud Playout相關的API有兩個:

驗證

Cloud Playout API 使用 Brightcove OAuth 系統 通過訪問令牌對請求進行身份驗證,訪問令牌隨請求在授權標頭中傳遞:

Authorization: Bearer {access token}

使用OAuth API檢索訪問令牌-請參閱獲取訪問令牌有關詳細信息。您還將需要客戶端憑據來認證對訪問令牌的請求。這些可以在Studio的“管理”部分中創建-請參見管理API憑證。您的憑據需要的EPG API權限為:

EPG API 權限
EPG API 權限

EPG請求參數

可以將以下可選查詢參數添加到EPG請求中:

EPG API查詢參數
參數 預設值 描述
start (14 days prior to now) 可查詢EPG響應並以ISO 8601日期格式返回的日期時間
end (now - the current date-time) 可以查詢並返回ISO 8601日期格式的EPG響應的日期時間。
limit (all programs) 一個整數值,它控制一個請求中返回的程序數。請注意,限制值(默認值:100)可能會阻止返回指定時間段內的所有程序。有關詳細信息,請參閱 EPG API 最佳實踐
include_ads false 將此屬性設置為true可在響應中包含廣告

注意事項

  1. start / end窗口不能超過14天。開始時間可能比當前日期晚14天,以查詢歷史EPG。您還可以將EPG數據從當前日期時間起最多保留14天。
  2. 如果結束時間與開始時間之間的差值大於14天,則API從請求的時間到結束時間僅生成14天或14天(以較早者為準)。
  3. startend可以接受帶有和不帶有時區偏移量的日期時間值-如果不包括時區偏移量,則採用UTC。
  4. startend必須使用URI編碼:
    URI 編碼
    ISO 8601樣本 URI編碼
    2020-07-24 15:30:00 2020-07-24%2015%3A30%3A00
    2020-07-24 15:30:00 +0530 2020-07-24%2015%3A30%3A00%20%2B0530

EPG API 響應示例

以下是來自API的示例響應:

<?xml version="1.0" encoding="utf-8"?>
    <tv source-info-name="Cloudplayout Schedules" source-info-url="https://www.cloudplayout.qa.brightcove.com">
        <channel id="9fb8032ff2fe4f55b388d8969c22ca58">
            <display-name>MyCloudChannel</display-name>
            <icon src="https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png"/>
        </channel>
        <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120132000" stop="20201120132228">
            <title>Frozen</title>
            <desc>FrozenMultiLanguage</desc>
            <length units="seconds">147.605</length>
            <icon src="https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/43d57501-b98a-4708-bdd1-a09081f7a585/main/1280x720/1m13s802ms/match/image.jpg" width="1280" height="720"/>
            <category>video</category>
            <keyword>eyJ2aWRlb19pZCI6IjcwNzAwNDQxMDk2MjAyIiwib3JkZXIiOjEsInRhZ3MiOiJjaGlsZHJlbixjb21lZHkiLCJjdXN0b21fbWV0YWRhdGEiOnsicmVnaW9uIjoiYWZyaWNhIiwic29uZ3MiOjV9fQ==</keyword>
        </programme>
        <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120132228" stop="20201120133228">
            <title>LiveDemo</title>
            <desc>Live Demo</desc>
            <length units="seconds">600.0</length>
            <icon src="https://img.brightcove.com/cloudplayout/live-icon.jpg" width="1280" height="720"/>
            <category>live</category>
            <keyword>eyJ2aWRlb19pZCI6IjcwNzAxNDg0MjA3MjAyIiwib3JkZXIiOjIsInRhZ3MiOiJjcC1saXZlLXBsYWNlaG9sZGVyLGR1cmF0aW9uLTAwOjEwOjAwIiwiY3VzdG9tX21ldGFkYXRhIjp7InJlZ2lvbiI6Im5vcnRoIGFtZXJpY2EifX0=</keyword>
        </programme>
        <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120133228" stop="20201120133327">
            <title>ChildrenComedy</title>
            <desc>ChildrenComedy</desc>
            <length units="seconds">59.164</length>
            <icon src="https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/9430773f-76f5-476e-964d-a13b40cab90a/main/1280x720/29s582ms/match/image.jpg" width="1280" height="720"/>
            <category>video</category>
            <keyword>eyJ2aWRlb19pZCI6IjcwNzAxMjE2NDgyMjAyIiwib3JkZXIiOjMsInRhZ3MiOiJyb21hbmNlIiwiY3VzdG9tX21ldGFkYXRhIjp7InJlZ2lvbiI6ImFzaWEiLCJzb25ncyI6NX19</keyword>
        </programme>
        <programme>
            ...
        </programme>
    </tv>

注意事項

  1. 開始和結束時間戳記為UTC時間。
  2. categorykeyword條目僅供內部使用。

EPG 數據包含多個節目數據,其中每個節目代表有關視頻或直播資產的詳細信息:

<節目頻道=“27963aa756294a7c98ca1c2c459d4ba2”開始=“20201118232206”停止=“20201118232305”>
	<標題>兒童喜劇</標題>
	<描述>兒童喜劇</描述>
	<長度> 單位=“秒”> 59.164< /長度>
	<圖標> src="https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/9430773f-76f5-476e-964d-a13b40cab90a/main/1280x720/29s582ms/match/image.jpg " 寬度="1280" 高度="720" >< /圖標>
	<類別>視頻</類別>
	<關鍵詞>eyJ2aWRlb19pZCI6IjcwNzAxMjE2NDgyMjAyIiwib3JkZXIiOjEsInRhZ3MiOiJjaGlsZHJlbixjb21lZHkiLCJjdXN0b21fbWV0YWRhdGEiOnsicmVnaW9uIjoiYWZyaWNhIiwic29VuZ3MiO< /關鍵詞>
 <  /方案 >

在這裡,keyword包含基 64 編碼的 json 值。的解碼值如下所示。keyword

  • video_id : 是視頻的標識符,如在視頻雲中。
  • order : 是資產在「雲端播放」程式清單中的順序。
  • tags:逗號分隔(如果有的話)-與視頻雲中的相應視頻相關聯。
  • 自定義元數據:(如果有,表示為名稱/值對)與視頻雲中的相應視頻相關聯。
{
  "video_id":"70701216482202",
  "order":1,
  "tags":"children,comedy",
  "custom_metadata":{
    "region":"africa",
    "songs":5
  }
}

EPG 和保險槓

EPG 如何處理導視廣告

EPG 將不包括保險槓本身。緩衝器的持續時間將以下列方式反映:

  • 前置廣告持續時間添加到 以下 視頻持續時間
  • 後滾動緩衝持續時間添加到 之前的 視頻持續時間

潛在問題

您可以做兩件事來導致 EPG 不准確:

  • 將視頻標記為預滾(cp-preroll-bumper後滾動(cp-postroll-bumper)將導致 EPG 不准確,因為它取決於標籤來決定添加持續時間的位置。如果視頻有兩個標籤,則緩衝持續時間將添加到上一個和下一個視頻。
  • 您可以在 Cloud Playout 節目列表中移動導播,但如果您將它們排列成一個前導播導播緊接著一個後導播導播,則兩個導播都會播放,但 EPG API 將忽略它們以及該導播的時間表時間段將為空。

局限性

  1. EPG是盡力而為/接近準確而生成的。
  2. 從播放列表最初構建EPG時,可能會出現開始時間錯誤,因為Cloud Playout需要一些時間來啟動切換。
  3. 修改播放列表時,EPG可能對每次檢索都不是一致的,因為它是根據保存的當前信息動態構建的。某些會改變EPG的操作包括重新排序播放列表或在播放列表中添加/刪除資產。
  4. 如果在切換中發生任何故障並且切換時間不正確,則對於將來的EPG可能存在運輸錯誤。可能導致此情況的操作示例包括播放列表切換或刪除播放列表中的當前活動資產。
  5. EPG的用戶應要求它盡可能接近實時,以獲取最準確的版本。