支持 聯繫支持 | 系統狀況 系統狀態

動態提取通知

在本主題中,您將學習動態攝取通知,該通知提供有關攝取工作進度的信息。 請注意,本文檔僅適用於舊版提取系統-有關動態投放,請參見 動態攝取通知

Dynamic Ingest API 通知

您可以指定一個或多個回調URL,以接收有關提取過程結果的通知。 您指定的URL應該是針對可以接受POST請求的應用程序的。 通知將以JSON格式發送。

格局

這是一個例子。

  • pub ID 57838016001的用戶
  • 想要使用Dynamic Ingest上傳位於https://s3.amazonaws.com/bucket/mysourcevideo.mp4的源視頻文件
  • 想要上載目錄中具有視頻ID 5199670523001的現有標題
  • 使用高分辨率輪廓
  • 希望在分別位於http:// host1 / path1和http:// host2 / path2的兩個端點上接收回調

DI請求看起來像這樣:

POST請求

請求正文

樣品通知

通知以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-Typeapplication/json

通知欄

項目 產品描述
status FAILED 如果提取或創建引渡不成功, SUCCESS 如果請求成功
accountId 帳號
videoId 影片編號
jobId 動態提取請求的作業ID
profileRefId

對於視頻再現,這將是 reference id 您在提取配置文件中為演繹指定的內容。

對於清單, profileRefId 將指示清單的類型:

  • HlsManifest 用於HLS NG清單
  • HdsManifest HDS清單
  • DashManifest 對於DASH清單(2-清單中的一項資產用於MAPI中的消費,另一項資產用於MAPI中的消費 CMS API)
  • SmoothIsmManifest 對於平滑清單(2-清單中的一項資產用於MAPI中的消費,另一項資產用於MAPI中的消費 CMS API)
entity 如果存在, Video Cloud 提取或失敗的資產的ID(如果已在中成功創建視頻對象 Video Cloud)
entityType 所報告資產的種類-例如:TITLE(視頻),DIGITAL_MASTER,ASSET(格式,字幕文件或圖像)
errorMessage 解釋為什麼攝取失敗的原因
version 始終等於的字符串 "1"
action 發生的動作-例如CREATE

解釋通知

包含以下內容的通知 "action": "CREATE""status": "SUCCESS" 表示過程已完成。

  • 如果 entityType is TITLE,則提取視頻的處理完成。
  • 如果 entityType is ASSET,則演示文稿,圖像,清單或WebVTT文件已成功添加到您的視頻中。

注意: "status": "SUCCESS"標題 表示處理已完成,但不一定表示已成功創建所有移演。 要確定視頻的動態提取是否成功,請參見 獲取動態提取請求的狀態

基本示例應用

下面是一個簡單的日誌應用程序的代碼 Dynamic Ingest API 通知。 該應用程序是用PHP編寫的,但是您可以使用任何語言,只要該應用程序具有面向公眾的URL並可以處理http(s)POST請求即可。

您可以看到此應用生成的日誌文件 這裡。

注意:如果您嘗試自己實施此應用,則需要確保該應用具有寫入日誌文件的權限。 還要記住,日誌文件可以快速增長-您可能需要定期清空它。

    <?php
    // POST won't work for JSON data
    $problem = "No errors";
    try {
        $json    = file_get_contents('php://input');
        $decoded = json_decode($json, true);
    } catch (Exception $e) {
        $problem = $e->getMessage();
    }
    
    // turn notification into pretty printed JSON
    $notification = json_encode($decoded, JSON_PRETTY_PRINT);
    
    
    
    $logEntry = $notification.
    "\nErrors receiving notificatons: ".$problem.
    "\n-------------------------------\n";
    
    // Lastly, tell PHP where it can find the log file and tell PHP to open it
    // and add the string we created earlier to it.
    $logFileLocation = "di-log.txt";
    $fileHandle      = fopen($logFileLocation, 'a') or die("-1");
    fwrite($fileHandle, $logEntry);
    fclose($fileHandle);
    
    // line below is displayed when you browse the app directly
    echo "Dynamic Ingest callback app is running";
    ?>
    

頁面最後更新於12年2020月XNUMX日