API Reference
Soundtrack a video
Render and download

Render and download

Take a video and a chosen track, render a single output video with the track mixed in, and return a download URL. The render is async — the first call kicks off processing, subsequent calls with the same parameters return the cached result.

POST/api/v4/soundtrack/video/{id}/download/

Only available for uploaded files. YouTube-source videos can't be re-rendered because the original audio isn't licensed for redistribution.

Path parameters

ParameterDescription
idThe video UUID from Upload.

Request body

FieldTypeRequiredDefaultDescription
track_idUUIDYesThe Slipstream track to mix in. Pick from a search result.
video_volumefloatNo1.0Original video audio volume. 0.01.0. Set to 0 to mute the original.
track_volumefloatNo1.0The new track's volume. 0.01.0.
track_startfloatNo0.0Where in the track to start playback, in seconds. Useful for skipping intros.

Example request

curl https://api.slipstreammusic.com/api/v4/soundtrack/video/8a4b2c1d-9e7f-4a6b-b3c2-1f8d4e5a7c6b/download/ \
  -X POST \
  -H "Authorization: Bearer $PARTNER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "track_id": "1f3c4d5e-6a7b-8c9d-0e1f-2a3b4c5d6e7f",
    "video_volume": 0.2,
    "track_volume": 1.0,
    "track_start": 8.5
  }'

Responses

200 OK — ready to download

{
  "url": "https://media.slipstreammusic.com/.../rendered.mp4"
}

The render is cached for the same combination of id + track_id + volumes + track_start. Re-call with the same body to get the same URL without re-rendering.

202 Accepted — processing

{
  "send_email": true,
  "detail": "Download is being prepared. Please try again in a few moments."
}
FieldDescription
send_emailWhen true, the authenticated user will receive an email with the download link as soon as the render finishes.
detailHuman-readable status.

Poll the same endpoint with the same body. When the render completes you'll get 200 with the URL.

Errors

HTTPBodyWhen
400{ "detail": "Download is only available for uploaded video files, not YouTube URLs" }Source video came from a YouTube URL.
401Caller isn't authenticated. This endpoint requires a signed-in user.
403The video is private and the caller isn't its creator.
404{ "detail": "Track not found" }track_id doesn't exist.
404{ "detail": "Video file has expired" }Re-upload the source video.