Notifications for Dynamic Delivery in Video Cloud

Product(s)
Video Cloud
Role(s)
API Developer
Task(s)
Add Videos/Assets
Topic(s)
Dynamic Delivery
Notifications
Troubleshooting/Error Handling
API(s)
Dynamic Ingest API

In this topic, you will learn about notifications for Dynamic Delivery ingest jobs submitted using the Dynamic Ingest API.

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 than 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 http://host1/path1 and http://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": ["http://host1/path1”, “http://host2/path2”]
}

Sample notification

Notifications are sent as POST requests with the notification in the request body as JSON [1] . 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 is TITLE, 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 the CREATE time.
  • If the entityType is ASSET, DYNAMIC_RENDITION or DIGITAL_MASTER, then a rendition, image, manifest, WebVTT file, or digital master has been successfully added to your video.