Dynamic Ingest 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 |
はFAILED 、SUCCESS レンディションの取り込みまたは作成が成功しなかった場合、リクエストが成功した場合になります |
accountId |
アカウント ID |
videoId |
動画ID |
jobId |
動的取り込み要求のジョブ ID |
profileRefId |
ビデオレンディションの場合、これは マニフェストの場合、
|
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 = "エラーなし";試す{ $json = file_get_contents('php://input'); $decoded = json_decode($json, true); }キャッチ(例外$ e){ $problem = $e->getMessage(); } //通知をきれいに印刷されたJSONに変換します$ notification = json_encode($ decode、JSON_PRETTY_PRINT); $ logEntry = $ notification。 "\\ n通知の受信エラー:"。$ problem。 "\\ n
---
---------------------------- \\ n"; //最後に、ログファイルの場所をPHPに指示し、//ログファイルを開いて、前に作成した文字列を追加するようにPHPに指示します。 $ logFileLocation = "di-log.txt"; $ fileHandle = fopen($ logFileLocation、 'a')またはdie( "-1"); fwrite($ fileHandle、$ logEntry); fclose($ fileHandle); //アプリを直接参照すると、以下の行が表示されますecho "Dynamic Ingest callback app is running"; ?>