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

    動態提取通知

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

    動態內嵌 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

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

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

    • HlsManifest用於HLS NG清單
    • HdsManifest用於HDS清單
    • DashManifest用於DASH清單(2-清單資產之一用於MAPI中的消費,另一資產用於CMS API中的消費)
    • SmoothIsmManifest平滑清單(2-清單資產之一用於MAPI中的消費,另一資產用於CMS API中的消費)
    entity 如果存在,則為已攝取或失敗的資產的視頻雲ID(如果在視頻雲中成功創建了視頻對象)
    entityType 該種資產報告-例如:標題 (視訊)、數位代理程式、資產 (轉譯、註解檔案或影像)
    errorMessage 解釋為什麼攝取失敗
    version 字符串總是等於"1"
    action 發生的行動-例如,創建

    解譯通知

    包含"action": "CREATE""status": "SUCCESS"指示處理程序完成的通知。

    • 如果entityTypeTITLE,則會完成內嵌視訊的處理。
    • 如果entityTypeASSET,則演示文稿,圖像,清單或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回調應用程序正在運行”;
        ?>