Description

Dolby.io is a platform that offers developers a range of audio and video APIs and SDKs to enhance their applications with immersive media capabilities. With Dolby's expertise, developers can integrate advanced features like spatial audio and noise reduction into their applications, delivering crystal-clear audio and captivating experiences. The platform provides comprehensive tools, documentation, and support to seamlessly integrate Dolby's technologies, enabling developers to create high-quality multimedia content.

Dolby.io empowers developers to elevate their applications with immersive audio and video experiences. By leveraging Dolby's APIs and SDKs, developers can add features like surround sound and voice enhancement to captivate their users. The platform's extensive resources facilitate a seamless integration process, enabling developers to unlock the full potential of Dolby's technologies and create exceptional media experiences.

Supported Operations

Dolby.io Streaming Director API

Get cluster by ID

Retrieve a cluster by providing a cluster ID

Publish

Request for url and authorization to publish a stream.

Subscribe

Request for url and authorization to subscribe to a stream.

RtcBackup Publish

RtcBackup endpoint for publish on top of WHIP.

RtcBackup Subscribe

RtcBackup endpoint for subscribe on top of WHEP.

WHEP

WHEP endpoint for subscribers. Request body is SDP Offer. Response body will contain SDP Answer. Location header contains remote WHEP endpoint url.

WHIP

WHIP endpoint for publishers. Request body is SDP Offer. Response body will contain SDP Answer. Location header contains remote WHIP endpoint url.

Dolby.io Streaming Millicast API

Account Geo

Get bandwith and views per country code on account over a date range. Response keys are ISO 3166-1 alpha-2 country codes.

Account Geo Series

Get bandwith, duration, publishes, and views as a time series per country code on account over a date range. Response keys are ISO 8601 dates from requested resolution, followed by keys for ISO 3166-1 alpha-2 country codes.

Account Geo Total

Get bandwith and duration per country code on account over a date range. Response keys are ISO 3166-1 alpha-2 country codes.

Account Series

Get bandwith used as a time series on account over a date range. Response keys are ISO 8601 dates from requested resolution.

Account Total

Get total bandwith used on account over a date range.

Streams Geo

Get bandwith and views per country code on specified streamnames over a date range. Response keys are requested streamnames, followed by keys for ISO 3166-1 alpha-2 country codes.

Streams Geo Series

Get bandwith, duration, publishes, and views as a time series per country code on specified streamnames over a date range. Response keys are requested streamnames, followed by keys for ISO 8601 dates from requested resolution, followed by keys for ISO 3166-1 alpha-2 country codes.

Streams Geo Total

Get bandwith and duration per country code on specified streamnames over a date range. Response keys are requested streamnames, followed by keys for ISO 3166-1 alpha-2 country codes.

Streams Series

Get bandwith used as a time series on specified streamnames over a date range. Response keys are requested streamnames, followed by keys for ISO 8601 dates from requested resolution.

Streams Total

Get total bandwith used on specified streamnames over a date range. Response keys are requested streamnames.

Series bandwidth for streams specified by TrackingID

Get bandwidth information used as a time series on specified TrackingIDs over a date range on a stream-by-stream basis. Response keys are requested TrackingIDs, followed by keys for ISO 8601 dates from requested

Series bandwidth per TrackingID per stream

Get bandwidth used as a time series on specified streamnames over a date range. Response keys are requested streamnames, followed by keys for ISO 8601 dates from requested

Total bandwidth per TrackingID per stream

Get total bandwidth for each TrackingID associated with specified streamNames over a date range. Response keys are requested streamnames.

Total bandwidth for streams specified by TrackingID

Get total bandwidth for TrackingIDs specifed on a stream-by-stream basis. Response keys are requested TrackingIDs.

Read Clusters

Default cluster and list of available clusters.

Update Cluster

Update default cluster on account.

Read Account Geo Restrictions

Gets account wide geo restrictions. If a Token (either Publish or Subscribe) does not define any geo restrictions, the account wide rules are used.

Update Account Geo Restrictions

Update account wide geo restrictions. Updated to an empty array `[]` removes all rules of that type.

Create Token

Creates new token given a label and associated stream name(s). Stream names are limited to 128 characters.

Get active Publish Token ID

Gets the Publish Token ID of an active stream by its Stream ID. Publish Tokens for long running streams published before 1st October 2022 will not be returned. If you need to stop a long running stream, use the Dashboard or try republishing the stream.

Get all active Publish Token IDs

Get all Publish Token IDs for active streams on the account. Publish Tokens for long running streams published before 1st October 2022 will not be returned. If you need to stop a long running stream, use the Dashboard or try republishing the stream.

Disable Publish Token(s)

Disables Publish Token(s) by their Token ID. An array of Token IDs can be used for bulk disable.

List Tokens

List all tokens with specific sorting and pagination. If response array is empty, you have reached the end of the list ordering.

List Tokens By Name

List all tokens with specific sorting and pagination that matches given token name or stream name. If response array is empty, you have reached the end of the list ordering.

Read Token

Gets token specified by token id.

Update Token

Update token stream information as well as updates token itself.

Delete Token

Deletes token specified by the token's ID. The Token ID can be found using the List Tokens API or in the API response of Create Token API.

Delete Files

Deletes multiple recorded file from storage.

Delete All Files

Deletes all recorded files from storage.

List Files

List files for account with specific sorting and pagination. If response array is empty, you have reached the end of the list ordering.

List Files By Stream

List files using a streamname with specific sorting and pagination. If response array is empty, you have reached the end of the list ordering.

List Files By Token

List files using a token with specific sorting and pagination. If response array is empty, you have reached the end of the list ordering.

Usage

Get current total bytes of recorded files in storage.

Usage Billable

Gets total number of gigabyte hours of storage used within date range.

Read File

Gets file specified by record file id. Includes temporary download link.

Delete File

Deletes recorded file from storage.

Stop an active stream

Stop an active stream by its Stream ID

Stop all active streams

Stop all currently active streams associated with your account

Create Token

Creates new token given a label and associated stream name(s). Stream names are limited to 128 characters.

List Tokens

List all tokens with specific sorting and pagination. If response array is empty, you have reached the end of the list ordering.

List Tokens By Name

List all tokens with specific sorting and pagination that matches given token name or stream name. If response array is empty, you have reached the end of the list ordering.

Read Token

Gets token specified by token id.

Update Token

Update token stream information as well as updates token itself.

Delete Token

Deletes token specified by the token's ID. The Token ID can be found using the List Tokens API or in the API response of Create Token API.

Add Webhook

Add new webhook on account.

List Webhooks

Iterative call to list webhooks on account.

Read Webhook

Webhook url and details used on account.

Update Webhook

Update webhook url, events to signal, or refresh signing secret.

Remove Webhook

Removes all webhook data for account.

Dolby.io Communications API

Create

Creates a conference. You can bypass proximity-based conference creation, and create a conference in a particular region by prefixing the regional code to the REST API endpoint URL. For example, using **eu.comms.api.dolby.io** instead of **comms.api.dolby.io** enforces traffic routing to the Europe data center. For more information, see [Multi-region Support](doc:guides-multi-region-support). If [Enhanced Conference Access Control](doc:guides-enhanced-conference-access-control) is enabled for the application: - The response will include the token for requested participants. - If the conference already exists, tokens are not generated and notifications are not sent; you must use the [Invite](#operation/invite-to-conference) REST API.

Start recording

--- Starts recording a specific conference. You can specify a custom layout URL per a recording request. The **layoutUrl** parameter overrides the layout URL configured in the dashboard. You can also specify the resolution of the recording. The default mixer layout application supports both 1920x1080 (16:9 aspect ratio) and 1080x1920 (9:16 aspect ratio). If the resolution parameters are not specified, then the system defaults to 1920x1080. Using the **mixId** parameter you can uniquely identify individual mixed recordings. For example, `landscape-stage` and `portrait-audience` as mixId can help you identify the purpose of the recording when you receive the webhook notification or use the Monitor API to retrieve the recordings. You may start only one recording per mixId .

Stop recording

Stops recording the specified conference. Calling this API while recoding multiple mixed recordings stops all recordings.

Remix a conference

Triggers a remix and regenerates a recording of a previously recorded conference using a [mixer layout](doc:guides-mixer-layout). You can remix only one conference at a time. The [Recordings.Available](doc:webhooks-events-recordings-available) event is sent if the customer has configured the webhook in the developer portal. For more information, see the [Recording Conferences](doc:guides-recording-conferences) and [Multiple Layout Mixes](doc:guides-multiple-layout-mixes) documents. ### Note >For conferences with [enhanced conference access control](doc:guides-enhanced-conference-access-control), you must use the Remix APIs available at `https://comms.api.dolby.io/v2` with bearer authentication.

Get status of the current remix job

Gets the status of a current mixing job. ### Note >For conferences with [enhanced conference access control](doc:guides-enhanced-conference-access-control), you must use the Remix APIs available at `https://comms.api.dolby.io/v2` with bearer authentication.

Start RTMP streaming

Starts the RTMP live stream for the specified conference. Once the Dolby.io Communications APIs service starts streaming to the target URL, the platform sends the [Stream.Rtmp.InProgress](doc:webhooks-events-stream-rtmp-in-progress) webhook event. Providing multiple destination URIs in a requests does not cause sending multiple webhook events. ### Note >For conferences with [enhanced conference access control](doc:guides-enhanced-conference-access-control), you must use the Streaming APIs available at `https://comms.api.dolby.io/v2` with bearer authentication.

Stop RTMP streaming

Stops the RTMP stream of the specified conference. You must provide an empty body in the request. ### Note >For conferences with [enhanced conference access control](doc:guides-enhanced-conference-access-control), you must use the Streaming APIs available at `https://comms.api.dolby.io/v2` with bearer authentication.

Start Real-time Streaming

Starts real-time streaming using Dolby.io Real-time Streaming services (formerly Millicast). ### Note >The `streamName` and `publishingToken` parameters are available in the Dolby.io dashboard. To access the parameters, follow these steps: >1. Log into the [Dolby.io dashboard](https://dashboard.dolby.io/signin). >2. Navigate to the **Streaming** tab and click the **+** button in the **Live Broadcast** tab to add a new token. >3. Give your token a label, select the number of stream names to add, and click **OK**. >4. Open the created token and select the **API** tab. >5. Locate and copy the **stream name** and the **publishing token**.

Stop Real-time Streaming

Stops real-time streaming to Dolby.io Real-time Streaming services.

Terminate

Terminates an ongoing conference and removes all remaining participants from the conference.

Invite

Invites participants to an ongoing conference. This API can also be used to generate new conference access tokens for an ongoing conference. If the invite request includes participants that are already in the conference, a new conference access token is not generated and an invitation is not sent.

Kick

Kicks participants from an ongoing conference. This API requires providing either external IDs or user IDs of participants who should be kicked. Providing both IDs is also supported.

Send message

Sends a message to some or all participants in a conference. Message size is limited to 16KB.

Participants

Returns the current participant list.

Update permissions

Updates permissions for participants in a conference. When a participant's permissions are updated, the new token is sent directly to the SDK and the API response includes the new API token. The SDK automatically receives, stores, and manages the new token and a [permissionsUpdated](doc:js-client-sdk-conferenceservice#permissionsupdated) event is sent.

Set Spatial Listeners Audio

Sets the spatial audio scene for all listeners in an ongoing conference. This sets the spatial audio environment, the position and direction for all listeners with the [spatialAudio](doc:js-client-sdk-model-joinoptions#spatialaudio) flag enabled. The calls are not cumulative, and each call sets all the spatial listener values. Participants who do not have a position set are muted.

Get a list of conferences

Gets a list of conferences that were started in a specific time range, including ongoing conferences. ### Note >Only terminated conferences include a complete summary. The summary of ongoing conferences includes the following fields in the response: `confId`, `alias`, `region`, `dolbyVoice`, `start`, `live`, `owner`.

Get a summary of a conference

Gets a summary of a conference. ### Note >Only terminated conferences include a complete summary. The summary of ongoing conferences includes the following fields in the response: `key`, `confId`, `alias`, `region`, `dolbyVoice`, `start`, `live`, `owner`.

Get information about conference participants

Gets the statistics and connection details of all participants in a conference. Optionally limit the search result with a specific time range.

Get information about a specific conference participant

Gets the statistics and connection details of a conference participant, during a specific time range.

Get the recordings of a specific conference

Gets a list of the recorded conference metadata, such as duration or size of the recordings. This API checks the recordings that have ended during a specific time range and were sent via the [Recording.MP4.Available](doc:webhooks-events-recording-mp4-available) and [Recording.Audio.Available](doc:webhooks-events-recording-audio-available) webhook events. Recordings are indexed based on the ending time. This API returns presigned URLs for secure download of the recording files. By default, the URL returned in the response is an AWS S3 presigned URL with a validity of ten minutes. You can add the query string option `perm=true` to replace the URL with a monitor API signed URL with unlimited validity.

Delete recordings

Deletes all recording data related to a specific conference, even data downloaded using the v2 Monitor API. **Warning:** After deleting the recording, it is not possible to restore the recording data.

Get Dolby Voice audio recordings of a conference

Gets the details of all Dolby Voice-based audio recordings, and associated split recordings, for a given conference and gets the download links for the conference recording in the MP3 audio format.

Get a conference statistics

Gets the statistics of a terminated conference. The statistics include the maximum number of participants present during a conference and the maximum number of the transmitted and received packets, bytes, and streams. ### Note >The statistics are available only for terminated conferences.

Get conference webhook events

Gets a list of webhook events sent in a specified conference, during a specific time range. The list includes associated endpoint response codes and headers. For more information on webhook functionality, refer to this [page](https://docs.dolby.io/communications-apis/docs/webhooks-overview).

Get recording details

Gets a list of the recorded conference metadata, such as duration or size of the recording. This API checks only the recordings that have ended during a specific time range. Recordings are indexed based on the ending time. This API returns presigned URLs for secure download of the recording files. By default, the URL returned in the response is an AWS S3 presigned URL with a validity of ten minutes. You can add the query string option `perm=true` to replace the URL with a monitor API signed URL with unlimited validity.

Get webhooks

Gets a list of webhook events sent in all conferences, during a specific time range. The list includes associated endpoint response codes and headers. For more information on webhook functionality, refer to this [page](https://docs.dolby.io/communications-apis/docs/webhooks-overview).

Dolby.io Media API

Get Analyze Status

For a given *job_id*, this method will check if the processing task has completed. When the **status** is *Success* you'll be able to retrieve your result from the **output** location you provided in the original `POST`.

Start Analyzing

Start analyzing to learn about your media. The `input` location of your source media file and `output` location of your Analyze JSON results file are required. This is an asynchronous operation so you will receive a `job_id` to use in calling `GET /media/analyze` to retrieve the job status. There are additional optional parameters that can be provided to identify the type of content and additional loudness or validation requirements. See the samples for examples of what requests and responses look like.

Get Analyze Music Status

For a given *job_id*, this method will check if the processing task has completed. When the **status** is *Success*, you'll be able to retrieve your result from the **output** location you provided in the original `POST`.

Start Analyzing Music

Start analyzing to learn about music in your media. The `input` location of your source media file and `output` location of your JSON results file are required. This is an asynchronous operation so you will receive a `job_id` to use in calling ***GET** /media/analyze/music* to retrieve the job status.

Get Analyze Speech Status

For a given *job_id*, this method will check if the processing task has completed. When the **status** is *Success* you'll be able to retrieve your result from the **output** location you provided in the original `POST`.

Start Analyzing Speech

Start analyzing to learn about speech in your media. The `input` location of your source media file and `output` location for your JSON results file are required. This is an asynchronous operation so you will receive a `job_id` to use in calling `GET /media/analyze/speech` to retrieve the job status.

Get Diagnose Results

For a given *job_id*, this method will check if the processing task has completed. When the **status** is *Success* the response will contain the result of the diagnose operation.

Start Diagnosing

The Dolby.io Media Analyze Audio Diagnose API provides a quick diagnosis for discovering audio quality issues with your media.

Get Enhance Results

For a given *job_id*, this method will check if the processing task has completed. When the **status** is *Success* you'll be able to retrieve your result from the **output** location you provided in the original `POST`.

Start Enhancing

Start enhancing to improve your media. The `input` location for your source media file as well as the `output` location for the processed result are required. This is an asynchronous operation so you will receive a `job_id` where you can retrieve the results when enhancement is complete. There are additional optional parameters that can be provided to control and select the type of enhancements made. See the samples for some examples of what requests and responses look like.

Get Upload URL

To use the Dolby provided temporary storage is a two step process. You start by declaring a `dlb://` url that you can reference in any other Media API calls. The response will provide a url where you can put your media. This allows you to use the `dlb://` url as a short-cut for a temporary storage location. You'll be returned a pre-signed url you can use to `PUT` and upload your media file. The temporary storage should allow you to read and write to the dlb:// locations for a period of at least 24 hours before it is removed.

Get Jobs

Returns a list of the jobs that have been submitted in the past 31 days.

Cancel a Job

Request the cancellation of a previously submitted job.

Get Mastering Results

For a given *job_id*, this method will check if the mastering task has completed. When the **status** is *Success* you'll be able to retrieve your results from the **outputs** locations you provided in the original `POST`.

Start Mastering

Start mastering to improve your music. The `inputs` location for your source media file as well as the `outputs` location for the processed media file are required. **Note**: The Music Mastering API supports a maximum of one input. A `preset` applies dynamic EQ processing to shape your music to match a desired sound. There are also additional optional parameters that can be provided to control the mastering output. This is an asynchronous operation. You receive a `job_id` that you use to retrieve the results when the mastering is complete. To learn more, see the example requests and responses.

Get Mastering Preview Results

For a given *job_id*, this method will check if the mastering task has completed. When the **status** is *Success* you'll be able to retrieve your results from the **outputs** locations you provided in the original `POST`.

Start Mastering Preview

Start mastering to improve your music. The `inputs` location for your source media file as well as the `outputs` locations for the processed media files are required. **Note**: The Music Mastering Preview API supports a maximum of one input. A `preset` applies dynamic EQ processing to shape your music to match a desired sound. There are also additional optional parameters that can be provided to control the mastering output. A `segment` object specifying preview `start` may optionally be provided. This is an asynchronous operation. You receive a `job_id` that you use to retrieve the results when the mastering is complete. To learn more, see the example requests and responses.

Start Media Download

`Note`: This API is deprecated. Please use POST /media/output instead. You can download media you previously uploaded with /media/input or media that was generated through another Dolby Media API. The temporary storage should allow you to read and write to the dlb:// locations for a period of at least 24 hours before it is removed.

Get Download URL

You can download media you previously uploaded with /media/input or media that was generated through another Dolby Media API. The temporary storage should allow you to read and write to the dlb:// locations for a period of at least 24 hours before it is removed.

Get Transcode Results

For a given job_id, this method will check if the transcoding task has completed and return transcoding results.

Start Transcoding

**POST /media/transcode** Start transcoding to modify the size, bitrates, and formats for your media. The `inputs` and `outputs` parameters are required to identify the source material and target for results. **Note**: The Transcode API supports a maximum of 25 inputs. To use your own cloud storage provider for input/output files, use the optional `storage` parameter. (_See [Media Input & Output](https://docs.dolby.io/media-apis/docs/media-input-and-output) docs for more info_) This is an asynchronous operation so you will receive a `job_id` to use in calling `GET /media/transcode` to retrieve the job status. There are additional optional parameters that can be provided to further specify the desired output content types. See the [How-To Guide](https://docs.dolby.io/media-apis/docs/transcode-api-guide) for examples of transcode requests.

Get Usage

Returns a summary of Media API usage for the last day, or a custom time range if specified.

Retrieve Webhook

Retrieve the previously registered webhook configuration.

Register Webhook

Register a webhook that is triggered when a job completes.

Update Webhook

Update the previously registered webhook configuration.

Delete Webhook

Delete a previously registered webhook configuration.

Details
Last Update

3 days ago

Includes
dolby-io-streaming-director-api-client
dolby-io-streaming-multicast-api-client
dolby-io-communications-api-client
dolby-io-media-api-client
dolby-io-auth