Authentication (deprecated)
API Key and Access Token authentication has been replaced with API Token authentication
For current authentication information, see the Migrate Media Applications to API Token Authentication and API Authentication guides.
Your existing Dolby.io Media applications will continue to work using API Key or Access Token authentication until December 15 2022. After this date, all Dolby.io Media applications must have migrated to API Token authentication.
To make any API call to https://api.dolby.com/media your request must first be authenticated. You get a unique API key assigned to you for each application associated with your developer account. Whenever you process media you will be charged minutes against this key so it is important that you protect your credentials.
Protect Your API Key
You should take precautions to protect your API Key and keep it private. A common error is to store a key as a variable in client code such as JavaScript or mobile apps that can be stolen. If you suspect your key is at risk, you can generate a new application and key from the Dolby.io dashboard or contact support for help.
API Key Authentication
For this method of authentication, you will pass your credentials as the x-api-key
header with every request. This is the simplest approach to authentication and can work well for testing or code that runs in a protected environment.
Step 1: Get your API key
Log into your developer account and access the dashboard.
Step 2: Call Media APIs with x-api-key header
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 https://api.dolby.com/media/jobs \
--header "x-api-key: $DOLBYIO_API_KEY"
OAuth Bearer Token Authentication
For OAuth, you need to generate an access token using your API key and secret before calling any of the Media APIs. This encrypted token is then passed in as a header. New tokens can be created as needed to help protect your API key.
Step 1. Get your API key and secret
When you create a developer account you will be assigned an API key and an API secret. These can be found on your dashboard. The key and secret pair is a unique identifier that is assigned just to you. You'll want to keep this credential secret for any applications you create.
Step 2. Encrypt your credentials
Concatenate the API key and API secret separated with a colon ":" and then encode with Base64.
For example, if your API key is abcdefghABCDEFGHabcdef== and secret is 12345678abcdefgh=.
export BASE64_KEY_SECRET=`echo -n "abcdefghABCDEFGHabcdef==:12345678abcdefgh=" | base64`
YWJjZGVmZ2hBQkNERUZHSGFiY2RlZj09OjEyMzQ1Njc4YWJjZGVmZ2g9
Step 3. Generate an access token
Call https://api.dolby.com/media/oauth2/token to get an access token. The token generation endpoint requires the API secret encoded to Base64 encoded to Base64 in an Authorization
header as the Basic type.
curl -X POST 'https://api.dolby.com/media/oauth2/token' \
--header 'Authorization: Basic $BASE64_KEY_SECRET' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=client_credentials'
import requests
from requests.auth import HTTPBasicAuth
key = "abcdefghABCDEFGHabcdef=="
secret = "abcdefghABCDEFGHabcdefgh12345678abcdefgh="
response = requests.post("https://api.dolby.com/media/oauth2/token",
auth = HTTPBasicAuth(key, secret),
headers = {
"Content-Type": "application/x-www-form-urlencoded"
},
data= { "grant_type": "client_credentials" })
response.raise_for_status()
print(response.json()["access_token"])
const axios = require('axios').default;
const key = process.env.DOLBYIO_API_KEY;
const secret = process.env.DOLBYIO_API_SECRET;
const basic_credentials = btoa(`${key}:${secret}`);
// For Node environments you'd handle credentials like this:
// const basic_credentials = new Buffer.from(`${key}:${secret}`).toString('base64');
const params = new URLSearchParams();
params.append('grant_type', 'client_credentials');
const config = {
method: 'post',
url: 'https://api.dolby.com/media/oauth2/token',
headers: {
'Authorization': `Basic ${basic_credentials}`,
'Content-Type': 'application/x-www-form-urlencoded'
},
data: params
};
axios(config)
.then(function (response) {
console.log(response.data.access_token);
})
.catch(function (error) {
console.log(error);
});
The endpoint returns an access token in the JSON Web Token (JWT) format.
Step 4. Call Media APIs with Authorization header
Include the access token from the previous step in an Authorization
header with Bearer type.
curl -X GET https://api.dolby.com/media/jobs \
--header "Authorization: Bearer $DOLBYIO_ACCESS_TOKEN"
import requests
response = requests.post("https://api.dolby.com/media/enhance",
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + access_token
},
data= { "input": "https://sample.com/input.wav", "output": "https://sample.com/output.wav" })
response.raise_for_status()
print(response.json()["job_id"])
const axios = require('axios').default;
const config = {
method: 'post',
url: 'https://api.dolby.com/media/enhance',
headers: {
'Authorization': `Bearer ${access_token}`,
'Content-Type': 'application/json'
},
data: { input: 'https://sample.com/input.wav', output: 'https://sample.com/output.wav' }
};
axios(config)
.then(function (response) {
console.log(response.data.job_id);
})
.catch(function (error) {
console.log(error);
});
API Reference
Updated over 1 year ago