Soundtrack Studio
Give your videos the perfect background music — free, legal, and ready for social media in a few clicks.
What it does
Upload a video, pick a music style, listen to free songs until you find the one, and Soundtrack Studio blends it into your video. You get back a polished MP4 you can post straight to Instagram, TikTok, YouTube, or anywhere else.
All music comes from Pixabay's royalty-free library, so it's free to use even in monetized posts — no copyright strikes, no licensing fees.
Highlights
- Pick by mood, not by title — browse 15 styles like Upbeat & happy, Chill & lo-fi, Cinematic & epic, and Tropical & summer, with nearly 600 hand-curated songs.
- Listen before you choose — preview any song right in the app.
- Voices stay clear — keep your video's own sound and layer music softly underneath, or replace the sound entirely for scenery and montages.
- One slider, no jargon — set how loud the music should be; the app handles the rest.
- No quality loss — your video frames are untouched; only the sound changes.
- Guided setup — if the free video tool it relies on isn't installed, the app explains why it's needed and sets it up for you after you say yes.
When you'd use it
- A travel clip or montage that feels flat without music
- A talking video that needs subtle background atmosphere
- A product demo or business update that should sound polished
- Any clip you want to post without worrying about music copyright
Agent actions
Agents can use the same catalog and video renderer as the UI; no browser automation or raw HTTP uploads are needed.
soundtrack-studio:soundtrack_catalog— browse genre keys and tracks, or search withq. Optionalgenre,limit(1–100), andoffsetsupport focused/paginated results. Keep the returned genre + track ID pair.soundtrack-studio:soundtrack_add— supply exactly one ofvideoPath(absolute or relative to the active profile'sprojects/directory) orprojectId(an existing app project), plusgenreandtrackId. Supportsmode: "mix" | "replace",musicVolume: 1–100(default 30), and optionaltrimStart/trimEndin video seconds.titleapplies only to new imports. The original video is copied, never modified; supported extensions and the 500 MB limit match UI uploads.soundtrack-studio:soundtrack_projects— omitprojectIdto list videos, or provide it to check status. When status isdone, the result includesoutputPath,outputUrl, anddownloadUrl; when status iserror, inspecterrorMessage.setup.readyreports FFmpeg availability.
Example arguments after selecting an actual track from the catalog:
trackId above is illustrative; always use a real ID from the selected genre. Actions return app/API URLs relative to this Rome host (not public-sharing URLs); outputPath is available for subsequent local processing.
Asynchronous processing: soundtrack_add returns the project ID and mixing status, not a completed render. Call soundtrack_projects with that ID until done or error (a few seconds between checks). Do not keep submitting videoPath while waiting: each new import creates a project. To retry/remix, reuse projectId. Active renders reject overlapping mixes, track changes, and deletion. Render status is persisted, but jobs are not restart-resumable; avoid restarting/reinstalling during a render.
Setup: FFmpeg must already be available. If not, the action fails before importing and directs the guardian to approve the existing one-time setup in the app. Agents do not download/install binaries automatically. Local imports are limited to the active profile's projects/ directory; path traversal and symlinks that escape it are rejected. Track selection uses the bundled catalog, not arbitrary remote URLs or custom audio files.
Development checks
Run pnpm install --frozen-lockfile, pnpm typecheck, pnpm build, and pnpm test. Tests use a disposable profile and an in-memory SQLite database, never the guardian's app data. To include actual FFmpeg render tests, set SOUNDTRACK_TEST_FFMPEG to an existing binary's absolute path before pnpm test; otherwise the FFmpeg tests explicitly skip. Render tests use synthetic video/audio and do not depend on external music downloads. They also check that music reaches the video end when original audio ends early, including trimmed segments, without extending the export or changing music gain.