支持 聯繫支持 | 系統狀況 系統狀態
頁面內容

    動態提取通知

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

    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日