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
| Parameter | Description |
|---|---|
id | The video UUID from Upload. |
Request body
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
track_id | UUID | Yes | — | The Slipstream track to mix in. Pick from a search result. |
video_volume | float | No | 1.0 | Original video audio volume. 0.0–1.0. Set to 0 to mute the original. |
track_volume | float | No | 1.0 | The new track's volume. 0.0–1.0. |
track_start | float | No | 0.0 | Where 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."
}| Field | Description |
|---|---|
send_email | When true, the authenticated user will receive an email with the download link as soon as the render finishes. |
detail | Human-readable status. |
Poll the same endpoint with the same body. When the render completes you'll get 200 with the URL.
Errors
| HTTP | Body | When |
|---|---|---|
| 400 | { "detail": "Download is only available for uploaded video files, not YouTube URLs" } | Source video came from a YouTube URL. |
| 401 | — | Caller isn't authenticated. This endpoint requires a signed-in user. |
| 403 | — | The 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. |