Skip to main content
Stems are the vocal and instrumental tracks extracted from the source audio. Youka separates stems automatically when you create a project. Use this endpoint when you want to re-run separation with a different model — for example, to try a cleaner vocal isolation on a track that sounds muddy.

When to use

Re-run stems when…

The default model produced muddy vocals, you want to try a different algorithm, or you need a specialized output (backing vocals, karaoke-tuned, etc.).

Skip this endpoint when…

You’re creating a new project — pass splitModel to POST /projects instead of running separation twice.

Endpoint

POST /projects/{projectId}/tasks/stem-separation
Returns a taskId you can poll at GET /tasks/{taskId}. The original project state is untouched until the new task finishes.

Request

curl -X POST https://api.youka.io/api/v1/projects/prj_abc/tasks/stem-separation \
  -H "Authorization: Bearer yk_..." \
  -H "Idempotency-Key: restems-prj_abc-audioshake" \
  -H "Content-Type: application/json" \
  -d '{
    "splitModel": "audioshakeai"
  }'

Fields

splitModel
string
required
Stem separation model. See the table below.

Available models

ModelBest for
mdx23cDefault. Balanced quality and speed.
audioshakeaiHigh-quality AudioShake separation.
audioshake_vocals_leadVocals and lead vocals only.
musicai_instrumental_onlyInstrumental-only output.
musicai_lead_backing_otherLead, backing vocals, and other stems.
musicai_with_backing_vocalsVocals including backing tracks.
musicai_without_backing_vocalsLead vocals only.
uvr_mdxnet_kara_2Karaoke-tuned UVR model.
bs_roformerBS-Roformer model.
mel_band_roformer_instrumental_becruilyMel-band Roformer instrumental.
mel_band_roformer_instrumental_instv7_gaboxAlternative mel-band instrumental.
demucsFacebook Demucs.
See Split model reference for guidance on picking a model.

Polling

# Poll the task
curl https://api.youka.io/api/v1/tasks/tsk_abc \
  -H "Authorization: Bearer yk_..."

# Once the task is in a terminal state, re-read the project
curl https://api.youka.io/api/v1/projects/prj_abc \
  -H "Authorization: Bearer yk_..."
The updated project.stems array contains the new stem files.
Pair this endpoint with an idempotency key. A retry with the same key and payload returns the original task instead of starting a second separation job.

Download stems

GET /projects/{projectId} returns the current stem files in stems[]. Each stem includes:
FieldDescription
idStem ID, for example stm_abc.
typeoriginal, instrumental, vocals, or backing_vocals.
modelStem separation model that produced the file.
urlDirect download URL for the stem file.
durationStem duration in seconds when known.
Download the url directly. Youka returns the original stored stem format; it does not convert stems during download.
curl https://api.youka.io/api/v1/projects/prj_abc \
  -H "Authorization: Bearer yk_..." \
  | jq -r '.stems[] | select(.type == "instrumental") | .url' \
  | xargs curl -L -o instrumental

What’s next