サポート サポートへのお問い合わせ | システムステータス システムステータス
ページコンテンツ

    動的取り込み通知

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

    動的取り込み API 通知

    取り込みプロセスの結果に関する通知を受け取るコールバック URL を 1 つ以上指定できます。指定する URL は、POST リクエストを受け付けることができるアプリ用のものである必要があります。通知は JSON 形式で送信されます。

    セットアップ

    ここに例があります。

    • パブ ID 57838016001 のユーザー
    • ダイナミックインジェストを使用して 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 FAILEDSUCCESSレンディションの取り込みまたは作成が成功しなかった場合、リクエストが成功した場合になります
    accountId アカウント ID
    videoId 動画ID
    jobId 動的取り込み要求のジョブ ID
    profileRefId

    ビデオレンディションの場合、これはreference id取り込みプロファイルでレンディションを指定しました。

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

    • HlsManifest HLSNGマニフェストの場合
    • HdsManifest HDSマニフェストの場合
    • DashManifest DASHマニフェストの場合(2-マニフェストアセットの1つはMAPIでの消費に使用され、もう1つはCMS APIでの消費に使用されます)
    • SmoothIsmManifestスムーズマニフェストの場合(2-マニフェストアセットの1つはMAPIでの消費に使用され、もう1つはCMS APIでの消費に使用されます)
    entity 存在する場合、取り込まれた、または失敗したアセットのVideo Cloud ID(ビデオオブジェクトがVideo Cloudで正常に作成された場合)
    entityType 報告された資産の種類-例:タイトル(ビデオ)、DIGITAL_MASTER、アセット(レンディション、キャプションファイル、またはイメージ)
    errorMessage インジェストが失敗した場合に失敗した理由の説明
    version 文字列は常に"1"
    action 発生したアクション (CREATE など)

    通知の解釈

    を含む通知"action": "CREATE"そして"status": "SUCCESS"プロセスの完了を示します。

    • entityTypeがの場合TITLE、取り込まれたビデオの処理が完了します。
    • の場合entityTypeですASSET、その後、レンディション、画像、マニフェスト、またはWebVTTファイルがビデオに正常に追加されました。

    注: "status": "SUCCESS"タイトルの a は、処理が完了したことを示しますが、必ずしもすべてのレンディションが正常に作成されたことを意味するものではありません。ビデオの動的取り込みが成功したかどうかを判断するには、を参照してください。動的取り込みリクエストのステータスを取得する

    基本的なサンプルアプリ

    以下は、の簡単なロギングアプリのコードですDynamic Ingest APIお知らせ。このアプリはPHPで記述されていますが、アプリに公開URLがあり、http(s)POSTリクエストを処理できる限り、任意の言語を使用できます。

    このアプリが生成するログファイルを見ることができますここに。

    注:このアプリを自分で実装しようとする場合は、アプリにログファイルへの書き込み権限があることを確認する必要があります。また、ログファイルは急速に大きくなる可能性があることを忘れないでください。おそらく、定期的にログファイルを空にすることをお勧めします。

         <?php
        //POST は JSON データでは機能しません
        $problem = "No errors";
        try {
            $json    = file_get_contents('php://input');
            $decoded = json_decode($json, true);
        } キャッチ(例外 $e){
            $problem = $e->getMessage();
        }
        
        //通知をきれいな印刷された JSON に変える
        $notification = json_encode($decoded, JSON_PRETTY_PRINT);
        
        
        
        $ logEntry = $ notification。
        "\\ n通知の受信エラー:"。$ problem。
        "\\ n ------------------------------- \\ n";
        
        //最後に、ログファイルの場所をPHPに指示し、PHPにログファイルを開くように指示します
        //先ほど作成した文字列をそれに追加します。
        $ logFileLocation = "di-log.txt";
        $fileHandle      = fopen($logFileLocation, 'a') or die("-1");
        fwrite ($fileHandle, $logEntry);
        fclose ($fileHandle);
        
        //アプリを直接閲覧すると、以下の行が表示されます
        echo「動的取り込みコールバックアプリが実行されています」;
        ?>