Job Management

Querying Jobs

Media processing is a job-based engine that tracks work in progress with a job_id. While jobs are running, they will go through a number of states:

  • Pending - your media is waiting for an available resource to run it
  • Running - your media is being processed, check back again soon
  • Success - this status indicates the result is ready
  • Cancelled - the job was terminated before it completed
  • Failed - there was a problem and you'll see an error with some additional notes about what the cause might be

The Query Media Jobs API provides a resource to query the list of any submitted jobs for up to the past 31 days.

Example Output

Here is an example of the results from a Jobs API query:

{
  "count": 1,
  "jobs": [
    {
      "job_id": "ad4bcd54-3d27-401f-b1c2-39b509779443",
      "api_version": "v1.1.1",
      "path": "/media/enhance",
      "status": "Success",
      "progress": 100,
      "duration": 10.472,
      "time_submitted": "2021-08-10T05:16:31.494Z",
      "time_started": "2021-08-10T05:16:32.000Z",
      "time_completed": "2021-08-10T05:17:00.074Z",
      "expiry": "2021-09-10T05:17:00.000Z"
    }
  ]
}

Filtering

There are a few ways you can customize the results.

  • Filter by status
  • Filter by date

For example, if you want to see which jobs are currently running you can query with a status of Running. If you wanted to get jobs that were processed or processing within the past 24 hours, you can specify submitted_after for the previous day. These dates should be provided as ISO 8601 format.

Pagination

Due to the high volume of jobs some customers run, these job results are paginated to return a maximum of 100 entries in the response. The response includes a token that can be used to fetch the next page of records. This can be done with the next_token parameter. You can continue using the next_token until no additional results are returned.

import os
import requests
      
response = requests.get("https://api.dolby.com/media/jobs", 
        headers = {
           "Authorization": `Bearer ${api_token}`,
           "Content-Type": "application/json",
           "Accept": "application/json"
        })
response.raise_for_status()
print(response.json())
const axios = require('axios').default;

const config = {
        method: 'get',
        url: 'https://api.dolby.com/media/jobs',
        headers: {
           "Authorization": `Bearer ${api_token}`,
           "Content-Type": "application/json",
           "Accept": "application/json"
        }
      };

axios(config)
        .then(function (response) {
          console.log(response.data);
        })
        .catch(function (error) {
          console.log(error);
        });
curl -X GET "https://api.dolby.com/media/jobs" \
          --header "Authorization: Bearer $API_TOKEN" \
          --header 'Content-Type: application/json'

Retrieving a specific job result

To retrieve the details of a particular job result, you can check the job status using the information (path and job_id) provided for that job. To learn more about how to retrieve the job status for individual Media APIs, refer to the Check the Job Status section in the Getting Started Guides.

API Reference