Enhance and Analyze your media, at scale. Let's explore what that means and how it works below.


Do you need to know:

  • what type of media do I have?
  • will media platforms accept my media?
  • is there clipping or other audio noise artifacts?
  • how much of the media is speech, music, or silence?

These sorts of questions and more can be answered with the Analyze API. If you are building an application that accepts user-generated content or just have a large collection of media to understand at cloud-scale, this API is a valuable tool to have.

See the Quick Start to Analyzing Media to get started.


Do you need to:

  • make your audio sound better without being an audio expert?
  • remove static background noise?
  • create clear spoken dialog to make listening to it easier?
  • conform your media to meet broadcasting platform recommendations and standards?

These sorts of requirements can be achieved with the Enhance API. If you are building an application where users expect high quality sonic clarity, this API is a valuable tool to use in web and mobile applications at cloud-scale.

See the Quick Start to Enhancing Media to get started.

How It Works

All of the Media Processing APIs work in a similar way.

  1. You need an API key
  2. Your media needs to be readable and writable by our services
  3. You need to make an asychronous API call

Let's look at these steps.

Get Your API key

API keys are required to make calls to the Media APIs. You can get an API key assigned to you by creating a developer account and accessing it from your dashboard. The API key is a unique identifier that is assigned just to you. You'll want to keep this secret for any applications you create.

To use the API key, include the key in a header called x-api-key as part of any requests. It might look like this:

  curl -X GET \
       --header "x-api-key: $DOLBYIO_API_KEY"

You'll need to provide this configuration in whichever client languages you prefer to use such as Python, JavaScript, or Java.

Your Media

To process your media, we need to be able to read and write it. There are a number of ways to achieve this:

  • Use your existing cloud storage such as AWS or GCP
  • Use our temporary cloud storage

See the Media Input and Output tutorial for examples of how to do this.

Asynchronous Requests

Let's be honest, sometimes good quality takes time. The Media Processing APIs in some cases may take as long as the duration of your media. If you have a 42 minute podcast it could take 42 minutes to process. Often it will be less and our researchers are making the algorithms more efficient all the time.

You will typically follow two steps:

  1. POST to a media endpoint to start processing
  2. GET to the same endpoint to check progress and get results

This is a common pattern called polling as the GET request includes a status. The expected status values include:

  • Success - this status indicates you can retrieve your media at the output URL you provided on the initial request
  • Running - your media is being processed, check back again soon
  • Pending - your media is waiting for an available resource to run it
  • Failed - there was a problem and you'll see an error with some additional notes about what the cause might be

You can run this as frequently as desired to check on the status and inspect the progress value.


If all goes well you will get a status of Success.

With the Enhance API you'll be able to find your enhanced media in the location you specified as the output. With the Analyze API you'll find a results section in the response with all of the details you need to learn something new about your media.

We look forward to hearing about your successes so let us know how it goes.