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 요청
요청 본문
샘플 알림
알림은 JSON으로 요청 본문의 알림과 함께 POST 요청으로 전송됩니다. [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 |
계정 아이디 |
videoId |
비디오 아이디 |
jobId |
Dynamic Ingest 요청의 작업 ID |
profileRefId |
비디오 변환의 경우 이것은 매니페스트의 경우
|
entity |
존재하는 경우 수집되거나 실패한 자산의 Video Cloud ID(비디오 객체가 Video Cloud에서 성공적으로 생성된 경우) |
entityType |
보고된 자산의 종류 - 예: TITLE(비디오), DIGITAL_MASTER, ASSET(변환, 캡션 파일 또는 이미지) |
errorMessage |
수집이 실패한 경우 수집에 실패한 이유에 대한 설명 |
version |
항상 같은 문자열"1" |
action |
발생한 작업(예: CREATE) |
알림 해석
다음을 포함하는 알림"action": "CREATE"
그리고"status": "SUCCESS"
프로세스의 완료를 나타냅니다.
- 만약
entityType
~이다TITLE
, 인제스트된 동영상 처리가 완료됩니다. - 만약
entityType
~이다ASSET
, 변환, 이미지, 매니페스트 또는 WebVTT 파일이 비디오에 성공적으로 추가되었습니다.
참고: "status": "SUCCESS"
에제목처리가 완료되었음을 나타내지만 반드시 모든 변환이 성공적으로 생성되었음을 의미하지는 않습니다. 비디오의 동적 수집이 성공했는지 확인하려면 다음을 참조하십시오. 동적 수집 요청 상태 가져오기
기본 샘플 앱
아래는 간단한 로깅 앱의 코드입니다. 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($decoded, JSON_PRETTY_PRINT); $logEntry = $알림. "\\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"; ?>