🎬 Video and Music Mix
Join your clips and photos into one video and lay a track over it
About this tool
Turn a handful of clips and photos plus one song into a single video. Drop your MP4 clips and your JPG/PNG pictures (or add an AI image from a prompt), drag them into order and give each picture a length in seconds. The first clip or picture sets the format and everything else is scaled to cover and centre-cropped, so nothing looks stretched. Add the music, see at a glance whether the picture or the song is longer, and choose what happens at the end: hold the last picture, fill the rest with a colour, or fade the music out. If a clip has its own sound it is mixed with the music, each side with its own volume. Preview three seconds of the mix, then render the whole video with the sound baked in. Free, no signup, no watermark.
API
POST /api/tools/video-music-mix/run (multipart/form-data) → JSON with
outputs[].url, a zip link and a config_url.
Every run also hands you the config JSON (button above). It is the request body - POST it straight back to replay the exact generation:
curl -X POST -H 'Content-Type: application/json' \\ --data @genbox-config-video-music-mix.json \\ /api/tools/video-music-mix/run
For AI agents · API specs
Technical specs
| Category | video |
|---|---|
| Slug | video-music-mix |
| Run endpoint | POST /api/tools/video-music-mix/run |
| Content type | multipart/form-data (with file uploads) or application/json |
| Response | JSON: job, notes, outputs[].url, zip, config_url |
| Rate limit | API: 1 request / minute / IP. Live preview and image renders have their own separate limits, plus a short global cooldown between renders (storm protection). Over a limit you get HTTP 429 + a Retry-After header (local requests are unlimited) |
| Machine-readable spec | GET /api/tools/video-music-mix |
| OpenAPI 3.1 (Swagger) | this tool (JSON) · all tools |
Request body
Every parameter accepted by the run endpoint, in request-body order.
Fields are optional unless marked required. The same schema is published as
OpenAPI 3.1.
Upload files with multipart/form-data; a JSON body replays a saved config.
| Parameter | Type | Required | Default / allowed values | Description |
|---|---|---|---|---|
sequence |
sequence | required | |
Videos play in full. Pictures run for the number of seconds you set (3 by default). The first item sets the format. |
audio |
file | required | |
MP3 or WAV. The video follows this track's length. |
mixinfo |
mixinfo | no | |
|
music_offset |
number | no | 0 |
Leave it at 0 to start the music straight away. Enter 5 and the track comes in after 5 seconds of silence - the whole video is that much longer, so you get a clean opening (dialogue, ambience, a product shot) before the music starts. |
fit_mode |
select | no | auto · color · fadeout · silent |
Auto-match holds the last image (or freezes the last frame of a video) so the picture reaches the end of the music, and trims the video when it is the longer one. |
fade_seconds |
number | no | 2 |
How long the music takes to fade at the end. Only used when {"fit_mode": ["fadeout"]} matches. |
background_color |
color | no | #000000 |
The colour that fills the time the picture does not cover. Only used when {"fit_mode": ["color"]} matches. |
video_volume |
range | no | 100 |
0 % mutes the sound that comes with the clips. 100 % is unchanged. |
music_volume |
range | no | 100 |
100 % is the track as it is. |
preview_mix |
mixpreview | no | |
Renders the first 3 seconds of the mix (audio only, so it is quick). |
resolution |
select | no | auto · 1920x1080 · 1280x720 · 1080x1920 · 720x1280 · 1080x1080 |
|
fps |
select | no | 24 · 25 · 30 |
Call it from an agent
GET /api/tools/video-music-mix- machine-readable spec of this tool (inputs, category, API block).GET /api/tools- list of every tool plus the categories.POST /api/tools/video-music-mix/run- run it. Acceptsmultipart/form-data(with files) or a rawapplication/jsonbody. Returns JSON withoutputs[].url,zipandconfig_url.- The
config_urlJSON is the request body - POST it back to replay the same generation.
# agent example curl -s https://genbox.eu/api/tools/video-music-mix/run \\ -H 'Content-Type: application/json' \\ --data @genbox-config-video-music-mix.json
Rate limits
- Max 1 request per minute per IP on the run endpoint.
- Over the limit you get HTTP 429 with
retry_after(seconds) - wait that long and retry. - Higher limits and API keys are coming soon: an API key will lift the per-IP throttle. Not available yet.