動態內嵌 API 通知
您可以指定一或多個回呼 URL,以接收內嵌程序結果的通知。您指定的 URL 應該適用於應用程序,而不是可以接受 POST 請求。通知將以 JSON 格式發送。
設定
這是一個例子。
- 具有酒吧編號的使用者
- 想要使用動態內嵌來上傳位於 https://s3.amazonaws.com/bucket/mysourcevideo.mp4 的來源視訊檔案
- 想要上傳目錄中的現有標題,其中包含影片識別碼為 5199670523001
- 使用高分辨率輪廓
- 想要在分別位於 http://host1/path1 和的兩個端點接收回調 http://host2/path2
DI 請求看起來像這樣:
張貼請求
要求主體
通知範例
通知會以 POST 請求形式傳送,並在要求主體中以 JSON [1] 的形式傳送通知。以下是一些示例通知:
{
"accountId": "57838016001",
"entityType": "ASSET",
"version": "1",
"status": "SUCCESS",
"videoId": "5199670523001",
"entity": "5199679295001",
"action": "CREATE",
"jobId": "699db2e5-aeb7-4765-a4a7-2cc68c7360bd"
}
{
"action": "CREATE",
"status": "SUCCESS",
"entityType": "DIGITAL_MASTER",
"videoId": "5199670523001",
"entity": "5199670523001",
"accountId": "57838016001",
"version": "1",
"jobId": "699db2e5-aeb7-4765-a4a7-2cc68c7360bd"
}
{
"entityType": "ASSET",
"status": "SUCCESS",
"action": "CREATE",
"entity": "5199680423001",
"profileRefId": "ts7",
"version": "1",
"accountId": "57838016001",
"videoId": "5199670523001",
"jobId": "699db2e5-aeb7-4765-a4a7-2cc68c7360bd"
}
{
"jobId": "699db2e5-aeb7-4765-a4a7-2cc68c7360bd",
"accountId": "57838016001",
"version": "1",
"status": "SUCCESS",
"entityType": "TITLE",
"entity": "5199670523001",
"videoId": "5199670523001",
"action": "CREATE"
}
注意事項
- [1]例外:DRM打包內容的所有通知均作為鍵/值對返回。在這種情況下,
Content-Type
標頭將是application/x-www-form-urlencoded
。否則,Content-Type
將會application/json
通知欄位
料號 | 描述 |
---|---|
status |
FAILED 如果要求成功,SUCCESS 則擷取或建立轉譯不成功 |
accountId |
帳號 ID |
videoId |
視訊識別碼 |
jobId |
動態內嵌要求的工作識別碼 |
profileRefId |
對於視頻再現,這將是 對於清單,
|
entity |
如果存在,則為已攝取或失敗的資產的視頻雲ID(如果在視頻雲中成功創建了視頻對象) |
entityType |
該種資產報告-例如:標題 (視訊)、數位代理程式、資產 (轉譯、註解檔案或影像) |
errorMessage |
解釋為什麼攝取失敗 |
version |
字符串總是等於"1" |
action |
發生的行動-例如,創建 |
解譯通知
包含"action": "CREATE"
並"status": "SUCCESS"
指示處理程序完成的通知。
- 如果
entityType
是TITLE
,則會完成內嵌視訊的處理。 - 如果
entityType
是ASSET
,則演示文稿,圖像,清單或WebVTT文件已成功添加到您的視頻中。
注意:標題"status": "SUCCESS"
上的 A 表示處理已完成,但並不一定表示已成功建立所有轉譯。要確定視頻的動態提取是否成功,請參見獲取動態提取請求的狀態
基本示例應用
下面是一個簡單的日誌應用程序的代碼,用於Dynamic Ingest API通知。該應用程序是用PHP編寫的,但是您可以使用任何語言,只要該應用程序具有面向公眾的URL並可以處理http(s)POST請求即可。
您可以看到此應用生成的日誌文件這裡。
注意:如果您嘗試自己實施此應用,則需要確保該應用具有寫入日誌文件的權限。還要記住,日誌文件可以快速增長-您可能需要定期清空它。
<?php
//POST 不適用於 JSON 數據
$ 問題 =「無錯誤」;
嘗試{
$ JSON = 文件的內容('PHP://輸入');
$ 解碼 = 解碼($ JSON,真);
} catch(Exception $ e){
$ 問題 = $ 電子-> 獲取消息();
}
//將通知轉換為漂亮的打印 JSON
$ 通知 = JSON_ 編碼($ 解碼,JSON_PRETY);
$ logEntry = $ notification。
“ \\ n收到通知時出錯:”。$問題。
“ \\ n ------------------------------- \\ n”;
//最後,告訴PHP在哪裡可以找到日誌文件並告訴PHP打開它
//並添加我們之前創建的字符串。
$ logFileLocation =“ di-log.txt”;
$ 文件句柄 = fopen($ 日誌文件位置,'A')或死亡(「-1」);
fwrite($ fileHandle,$ logEntry);
fclose($ fileHandle);
//當您直接瀏覽應用程式時,會顯示下面的行
回顯“ Dynamic Ingest回調應用程序正在運行”;
?>