サポート サポート問い合わせ先 | システムステータス システムステータス

Dynamic Ingest の通知

このトピックでは、取り込みジョブの進行状況に関する情報を提供する動的取り込み通知について学習します。 このドキュメントはレガシーの取り込みシステムにのみ適用されることに注意してください-動的配信の場合は、 ダイナミックインジェストの通知

Dynamic Ingest API 通知

1つ以上のコールバックURLを指定して、インジェストプロセスの結果の通知を受け取ることができます。 指定するURLは、POSTリクエストを受け入れることができるもの以上のものでなければなりません。 通知はJSON形式で送信されます。

セットアップ

ここに例があります。

  • パブIDが57838016001のユーザー
  • Dynamic Ingestを使用してhttps://s3.amazonaws.com/bucket/mysourcevideo.mp4にあるソースビデオファイルをアップロードしたい
  • 動画IDが5199670523001のカタログに既存のタイトルをアップロードしたい
  • 高解像度プロファイルの使用
  • http:// host1 / path1とhttp:// host2 / path2にそれぞれ位置する2つのエンドポイントでコールバックを受信したい

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-Type なります application/json

通知フィールド

品目 説明
status なります FAILED レンディションのインジェストまたは作成が成功しなかった場合、 SUCCESS 要求が成功した場合
accountId アカウントID
videoId ビデオID
jobId 動的インジェストリクエストのジョブID
profileRefId

動画レンディションの場合、これは reference id あなたのインジェストプロファイルのレンディションに対して指定したものです。

マニフェストの場合、 profileRefId マニフェストのタイプを示します:

  • HlsManifest HLS NGマニフェスト用
  • HdsManifest HDSマニフェストの場合
  • DashManifest DASHマニフェスト用(2 - マニフェストアセットの1つはMAPIでの使用に使用され、もう1つはMAPIでの使用に使用されます。 CMS API)
  • SmoothIsmManifest スムーズマニフェスト(2 - マニフェストアセットの1つはMAPIでの使用に使用され、もう1つは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ファイルが正常にビデオに追加されました。

注:a "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日