Dynamic Ingest API notifications
You can specify one or more callback URLs to receive notifications for the results of the ingest process. The URLs you specify should be for apps that can accept POST requests. Notifications will be sent in JSON format.
Setup
Here’s an example.
- User with pub id 57838016001
- Wants to use Dynamic Ingest to upload a source video file located at https://s3.amazonaws.com/bucket/mysourcevideo.mp4
- Wants to upload an existing title in the catalog with video id 5199670523001
- Using the multi-platform-standard-static profile
- Wants to receive callbacks at two endpoints located at https://host1/path1 and https://host2/path2 respectively
The DI request would look like this:
POST Request
Request body
{
"master": {
"url": "https://s3.amazonaws.com/bucket/mysourcevideo.mp4"
},
"profile": "multi-platform-standard-static",
"callbacks": ["https://host1/path1”, “https://host2/path2”]
}
Sample notification
Notifications are sent as POST requests with the notification in the request body as JSON. Here is a full set of notifications from a typical video ingest job:
{
"entity": "default\/audio192",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/audio192",
"language": "en",
"variant": "main",
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/audio64",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/audio64",
"language": "en",
"variant": "main",
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/audio96",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/audio96",
"language": "en",
"variant": "main",
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/audio128",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/audio128",
"language": "en",
"variant": "main",
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "5660367449001",
"entityType": "DIGITAL_MASTER",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/video450",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/video450",
"bitrate": 451,
"width": 480,
"height": 270,
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "5660367449001",
"entityType": "TITLE",
"version": "1",
"action": "PUBLISH",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "thumbnail",
"entityType": "ASSET",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "poster",
"entityType": "ASSET",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/video900",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/video900",
"bitrate": 901,
"width": 640,
"height": 360,
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/video700",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/video700",
"bitrate": 700,
"width": 640,
"height": 360,
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/video1200",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/video1200",
"bitrate": 1204,
"width": 960,
"height": 540,
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/video1700",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/video1700",
"bitrate": 1703,
"width": 960,
"height": 540,
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/video3500",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/video3500",
"bitrate": 3498,
"width": 1920,
"height": 1080,
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/video2000",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/video2000",
"bitrate": 2000,
"width": 1280,
"height": 720,
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "default\/video3800",
"entityType": "DYNAMIC_RENDITION",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"dynamicRenditionId": "default\/video3800",
"bitrate": 3804,
"width": 1920,
"height": 1080,
"accountId": "57838016001",
"status": "SUCCESS"
}
{
"entity": "5660367449001",
"entityType": "TITLE",
"version": "1",
"action": "CREATE",
"jobId": "d3ef8751-2b88-4141-95d5-83f0393aca07",
"videoId": "5660367449001",
"accountId": "57838016001",
"status": "SUCCESS"
}
Notification fields
Item | Description |
---|---|
status |
will be FAILED if the ingest or creation of a rendition was not successful, SUCCESS if the request succeeded |
accountId |
the account id |
videoId |
the video id |
jobId |
the job id for the Dynamic Ingest request |
entity |
either the name of the entity, or the Video Cloud id of the video for the TITLE |
entityType |
the kind of asset reported on - for example: TITLE (a video), DIGITAL_MASTER, ASSET (a rendition, captions file, or image) |
bitrate |
bitrate for a rendition |
width |
frame-width for a rendition |
height |
frame-height for a rendition |
errorMessage |
an explanation of why the ingest failed if it did |
version |
a string always equal to "1" |
action |
the action that occurred - for example, CREATE |
Interpreting notifications
A notification containing "action": "CREATE"
and "status": "SUCCESS"
indicates completion of a process.
- If the
entityType
isTITLE
, then processing of an ingested video is complete. - For
entityType: TITLE
,action: PUBLISH
refers to the time the video is activated. For videos that are immediately active, this will be approximately the same time as theCREATE
time. - If the
entityType
isASSET
,DYNAMIC_RENDITION
orDIGITAL_MASTER
, then a rendition, image, manifest, WebVTT file, or digital master has been successfully added to your video.
Firewalls
In case your organization has a strict policy regarding sources of incoming traffic through your firewall, we allow the AWS us-east-1/Virginia IPs. This is subject to change, so all AWS IPs should be whitelisted. See https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html for more information.