Netflix logo
Get Started

Audio Separation API

Split any audio or video into clean, isolated tracks — dialogue, music, and effects, or individual instrument, vocal, and speech stems — for dubbing, localization, post-production, karaoke, and speech-to-text pre-processing.

Smart hybrid upload

Files up to 100 MiB upload in a single PUT; larger files use resumable multipart. You can also pass a remote URL and skip uploading entirely.

DME & stem separation

Extract clean dialogue, a music bed, and effects — or split a song into instrument, vocal, and speech stems. Request several tracks in one job and download each separately.

Webhooks or polling

Get a callback as each track finishes, or poll the job until it's done. Built for long-running media without blocking your app.

Simple, predictable API

One API key header, flat JSON, standard HTTP status codes, and structured error objects you can branch on.

How it works

Separation runs as an asynchronous job. You upload your media once as an asset, create a jobthat lists the tracks you want, and collect the results when they're ready. A single job can produce multiple tracks, each finishing independently.

  1. 1

    Upload an asset

    POST /assets starts the upload and returns an assetId. The response tells you whether to do a single upload or multipart upload for files over 100 MiB.

  2. 2

    Create a job

    POST /jobs with that assetId and a list of targets — the model and output formats you want.

  3. 3

    Wait for results

    Receive a webhook as each target completes, or poll GET /jobs/{jobId} (about every 10 seconds).

  4. 4

    Download the tracks

    Each target exposes download links under output[stem][format]. Links are valid for 48 hours.

Core concepts

Asset
A piece of source media you've uploaded. Identified by an assetId and retained for 72 hours. One asset can be reused across multiple jobs.
Job
A separation request for one asset. Contains one or more targets and has an aggregate status.
Target
A single output within a job — one model rendered into one or more formats. Targets run and complete independently.
Model
The algorithm that produces a track, referenced by a family-prefixed alias such as dme_dialogue_v1, stem_vocal_v1, or karaoke_vocal_v1. DME models accept model-specific processing tiers; non-DME models each produce one output track. See the models list in the API reference.