Notifications for Dynamic Ingest

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 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 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.

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.