Blog

Suno AI Music Video Generator: Build One with an API (2026)

Unicorn API Team · · 11 min read

Suno AI music video generator workflow: a song waveform turning into a strip of animated video frames

A Suno AI music video generator takes a finished song, usually an MP3 or WAV you exported from Suno, and builds visuals that play along with it: a still cover, a lyric video, or a sequence of animated scenes cut to the beat. Suno is an AI music generator, so the song is its job; the pictures are a separate step. This guide compares the three ways people handle that step, then walks through building your own pipeline in Python with real credit costs, beat-sync rules and the mistakes that waste money.

What is a Suno AI music video generator?

Despite the name, a Suno AI music video generator rarely makes any music. It starts from audio you already have and produces video to match it. Tools in this space do some combination of the following:

  • Visualiser: a static image or simple animation (often a waveform) looped for the length of the track.
  • Lyric video: the words appear on screen in time with the vocals. The tool either transcribes the vocals (speech-to-text) or asks you to paste the lyrics and align them.
  • Generated scenes: an image model draws keyframes (stills that define how each scene looks), and an image-to-video model animates each keyframe into a short clip. The clips are then joined in the order of the song.
  • Beat sync: cuts land on the beat or the start of a bar, which is most of what makes an edit feel “musical”.
  • Lip sync: a character’s mouth moves with the vocal. This is the hardest feature, and you should not expect it from general image-to-video models.

The tutorials that rank for this topic mostly show one of two things: an app where you upload a track and pick a template, or a manual workflow where you generate images, animate them in one tool and edit in another. Both work. The question is how much control you want and how much you are willing to pay per song.

Three ways to turn a Suno song into a video

Here is how the approaches compare. Costs on the Unicorn API side are in credits; on a monthly plan one credit is $0.01.

ApproachWhat you getEffortCost per 3-minute song on Unicorn APIBest for
Static visualiserOne image for the whole track, optional slow zoomMinutes0 to 4 creditsUploading a catalogue of songs to YouTube
Lyric or template appAuto-timed lyrics over templated backgroundsMinutesNot applicable (the app’s own pricing)Quick lyric videos for social
Generated scene pipelineA different animated shot for every section, cut on bar linesAn hour the first time, then scriptedAbout 508 credits at 480p, 883 at 720pSingles, channel trailers, anything you want people to watch

The template apps trade control for speed. You get their look, their fonts and, on free tiers, often their watermark. A static visualiser is nearly free but nobody watches it for the visuals. The generated scene pipeline is what produces the “insane AI music videos” in tutorial thumbnails, and it is also the easiest one to automate, because every step is an API call or an ffmpeg command.

Three approaches to a music video: still image, lyric template and generated scenes
The three common ways to put visuals on a Suno song, from cheapest to most work.

The Unicorn API models behind the pipeline

You can build every piece of a Suno AI music video generator with one API key: the song, the artwork and the animated clips. These are the models that matter, with their prices from the catalog. Prices are per output and rounded up to whole credits, so a 2.5-credit job bills 3 credits and a 0.4-credit job bills 1.

ModelRole in the pipelinePrice
Ai Music API Sounds (Suno)Generates a track from a text prompt, with optional key, tempo and loop settings2.5 credits per track
Ai Music API Mashup (Suno)Builds a song from uploaded audio plus title, style, lyrics and vocal gender12 credits per track
Ai Music API Generate Lyrics (Suno)Writes lyrics from a prompt0.4 credits
Ai Music API Boost Music Style (Suno)Expands a short style description into a fuller one0.4 credits
Ai Music API Generate Music Cover (Suno)Cover artwork for a finished music task, by task_id0 credits
Ai Music API Generate Persona (Suno)Saves a vocal persona from a track so later songs can reuse it0 credits
Nano Banana 2 Lite (Google)Fast 1K keyframes in 16:9 or 9:16, up to 10 reference images4 credits per image
GPT Image 1.5 (OpenAI)Title cards and covers with legible text (1:1, 3:2, 2:3)3, 4 or 22 credits (low, medium, high)
Grok Imagine Video 1.5 (xAI)Animates a keyframe, 1 to 15 seconds, 480p to 1080pFrom 2.4 credits (1 s, 480p); 54 credits for 12 s at 720p
Grok Imagine Video 1.0 (xAI)Text-to-video or image-to-video, 6 to 30 secondsSame per-second rate as 1.5; 72 credits for 30 s at 480p

Two practical notes. First, GPT Image 1.5 has no 16:9 option, so use Nano Banana 2 Lite for widescreen YouTube keyframes and keep GPT Image 1.5 for square covers and text-heavy title cards. Second, Grok Imagine Video 1.5 is image-to-video only, which suits this workflow: you approve a keyframe before paying for motion, so you rarely animate a shot you would have rejected as a still.

If you already have a song from the Suno app, you can skip the audio models entirely. If you are generating music for many videos, the Generate Persona model is worth a look, since keeping one voice across a series matters more to viewers than any single visual.

How to build a Suno AI music video generator with the API

The pipeline below is a small, working Suno AI music video generator. It takes a shot list, draws a keyframe for each shot, animates it, downloads the clips and writes a list file for ffmpeg. You need Python 3 with requests, ffmpeg installed, and an API key from your keys page.

Step 1: Get the song and its tempo

Export the track from Suno as a high-quality file and note its BPM (beats per minute). Suno often puts the tempo in the style text you wrote; if not, any free tap-tempo tool will do. You need the tempo to size your clips, as explained in the next section. If the intro has silence before the first beat, trim it now so beat one sits at 0:00.

Step 2: Write a shot list

Break the song into sections (intro, verse, chorus, bridge, outro) and write one scene per clip. Each line needs two prompts: what the still looks like, and how it moves. Keep one shared style string so the shots look like the same video. A three-minute song at 120 BPM with 12-second clips needs 15 shots.

Step 3: Generate keyframes and clips

import os
import time
import requests

API = "https://api.unicornapi.net"
HEADERS = {"Authorization": f"Bearer {os.environ['UNICORN_API_KEY']}"}

STYLE = "moody synthwave film still, neon city at night, light rain, cinematic lighting"
CLIP_SECONDS = 12  # six bars at 120 BPM

# (section, what the keyframe shows, how the shot moves)
SHOTS = [
    ("intro", "empty highway at night, city glow on the horizon",
     "slow drone push forward along the road, rain streaks in the headlights"),
    ("verse 1", "a lone driver in a vintage car, face lit by the dashboard",
     "slow push-in on the driver, reflections sliding across the windscreen"),
    ("chorus", "the car bursting out of a tunnel into a neon skyline",
     "fast forward motion, lights streaking past, camera shake on the beat"),
    # ...one line per clip, 15 in total for a three-minute song
]


def run_job(model, job_input, poll_every=5):
    """Create a job, poll until it finishes, return the first output URL."""
    resp = requests.post(
        f"{API}/v1/jobs",
        headers=HEADERS,
        json={"model": model, "input": job_input},
        timeout=60,
    )
    resp.raise_for_status()
    job_id = resp.json()["id"]
    while True:
        job = requests.get(f"{API}/v1/jobs/{job_id}", headers=HEADERS, timeout=60).json()
        if job["status"] == "succeeded":
            return job["outputs"][0]["url"]
        if job["status"] in ("failed", "canceled", "cancelled"):
            raise RuntimeError(f"{model} job {job_id} ended with status {job['status']}")
        time.sleep(poll_every)


def download(url, path):
    with requests.get(url, stream=True, timeout=300) as r:
        r.raise_for_status()
        with open(path, "wb") as f:
            for chunk in r.iter_content(chunk_size=1 << 20):
                f.write(chunk)


os.makedirs("clips", exist_ok=True)
with open("clips/list.txt", "w") as concat_list:
    for i, (section, scene, motion) in enumerate(SHOTS, start=1):
        frame_url = run_job("nano-banana-2-lite", {
            "prompt": f"{scene}, {STYLE}",
            "aspect_ratio": "16:9",
        })
        clip_url = run_job("grok-imagine-video-1-5-preview", {
            "image": frame_url,
            "prompt": motion,
            "duration": CLIP_SECONDS,
            "resolution": "720p",
            "aspect_ratio": "16:9",
        })
        name = f"clip{i:02d}.mp4"
        download(clip_url, f"clips/{name}")
        concat_list.write(f"file '{name}'\n")
        print(f"{section}: clips/{name}")

On a first run, stop after the keyframes, look at them, and only then animate. The keyframe costs 4 credits and the 12-second clip costs 54, so rejecting a bad still before it moves saves about 13 times its cost. If you want to generate the song in the same script, a minimal call is run_job("ai-music-api-sounds", {"model": "V5", "prompt": "An upbeat synthwave track with driving drums"}).

Step 4: Assemble with ffmpeg

Join the clips in order, drop whatever audio the clips carry, and use your song as the only soundtrack:

ffmpeg -f concat -safe 0 -i clips/list.txt -i song.mp3 \
  -map 0:v -map 1:a -c:v libx264 -pix_fmt yuv420p -r 30 \
  -c:a aac -b:a 192k -shortest music_video.mp4

For the static visualiser route, this one command is the whole Suno AI music video generator:

ffmpeg -loop 1 -i cover.png -i song.mp3 \
  -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" \
  -c:v libx264 -tune stillimage -pix_fmt yuv420p \
  -c:a aac -b:a 192k -shortest still_video.mp4

If you prefer to work from an editor like Cursor or Claude Code, the same calls are available to agents through MCP, and you can test prompts by hand first in the browser playground. Full request and response details are in the docs.

Five-step pipeline from song to shot list, keyframes, animated clips and an ffmpeg-assembled video
The generated-scene pipeline: every clip starts as a keyframe and ends as a bar-aligned cut.

Cutting to the beat and adding lyrics

The single biggest upgrade to any AI music video is making the cuts land on bar lines. You do not need beat detection software for this; you need arithmetic.

Size clips in whole bars

In 4/4 time, one bar lasts 240 divided by the BPM, in seconds. Pick a clip length that is a whole number of bars and within the model’s range (1 to 15 seconds for Grok Imagine Video 1.5):

TempoOne barGood clip lengths
80 BPM3 s6, 9, 12 or 15 s
90 BPM2.67 s8 s (3 bars, close enough at 30 fps)
120 BPM2 s8, 10, 12 or 14 s
150 BPM1.6 s8 s (5 bars)

Choruses usually look better with shorter, faster clips and verses with longer, slower ones. Mixing 8-second chorus shots with 12-second verse shots works as long as each length is whole bars. For a long instrumental section, Grok Imagine Video 1.0 can hold a single shot for up to 30 seconds.

Match motion to energy

Write motion prompts that follow the arrangement: slow push-ins and drifting camera in verses, fast forward motion and handheld shake in choruses, near-static shots for breakdowns. The model does not hear the song, so the energy has to be in your words.

Add lyrics as subtitles

None of these models transcribe audio, so a lyric video needs the words and their timings. You already have the words if you wrote them or used the lyrics model. Time each line by ear into an SRT file, then burn it in:

ffmpeg -i music_video.mp4 -vf "subtitles=lyrics.srt" -c:a copy final.mp4

Lip sync is a different problem. General image-to-video models animate faces but do not match mouths to a vocal, so avoid close-ups of a singer’s mouth and favour wide shots, silhouettes and performers seen from behind.

What does a three-minute AI music video cost?

Here is a worked budget for a three-minute song at 120 BPM: 15 clips of 12 seconds, one Nano Banana 2 Lite keyframe per clip, plus a generated song and lyrics. If you bring your own song from Suno, subtract 13 credits.

Item480p720p1080p
Lyrics (0.4, billed as 1)111
Song via Mashup121212
Cover art000
15 keyframes at 4 credits606060
15 clips of 12 s435 (28.8, billed as 29 each)810 (54 each)1,440 (96 each)
Total credits5088831,513
At plan rate ($0.01)$5.08$8.83$15.13
At top-up rate ($0.015)$7.62$13.25$22.70

Add about 20% for shots you regenerate. On that basis, the Starter plan ($25 a month, 2,500 credits) covers about two 720p music videos a month, and Studio ($100, 10,000 credits) covers about nine. Top-up credits cost more but never expire, which suits a musician who releases a single every few months. Plans are on the pricing page, and you can check the exact price of any request before running it with POST /v1/models/price.

A cheaper middle ground: animate only the chorus shots and use slow zooms on stills for the verses. Five animated 720p chorus clips plus ten stills costs 5 × 54 + 15 × 4 = 330 credits, about $3.30 on a plan.

Free AI music video generator options and their catches

Searches for a free Suno AI music video generator are common, and the honest answer is that “free” depends on what you are willing to give up.

  • Static visualiser: genuinely close to free. ffmpeg costs nothing, the Generate Music Cover model costs 0 credits, and a custom 16:9 image costs 4 credits.
  • Free tiers of template apps: usually come with a watermark, capped resolution, a render limit or a required sign-up. Read the export settings before you spend an hour on a project.
  • “No credits” claims: animated video is expensive to compute, so a tool that renders full-length animated music videos at no cost is paying for it somewhere, often with your watermark-branded upload acting as its advertising.

Rights matter more than price. Check the terms of the Suno plan you made the song under before monetising it, since commercial use can depend on your plan, and Suno has faced legal action from major record labels over how its models were trained. The visuals are a separate question: keep your prompts away from real artists’ likenesses and trademarked characters. If you are comparing other video models for the visual side, our posts on Runway image to video and Kling 3.0’s free options cover the trade-offs.

Mistakes that waste credits

  1. Animating before approving the still. The keyframe is the cheap draft. Review all of them first, then animate.
  2. Clip lengths that ignore the tempo. A 10-second clip at 90 BPM ends mid-bar, and after a few cuts the edit drifts visibly off the beat.
  3. No shared style string. Fifteen independently prompted shots look like fifteen different videos. Reuse one style line, and pass earlier keyframes as reference images to Nano Banana 2 Lite (up to 10) to keep a character consistent.
  4. Rendering everything at 1080p. It costs about 1.8 times as much as 720p. Draft at 480p, then re-render only the keepers at the final resolution.
  5. Square or vertical keyframes for a widescreen video. Set the aspect ratio on both the image and the video request, or you will get letterboxing and crops.
  6. Odd image dimensions in ffmpeg. H.264 with yuv420p needs even width and height; the scale filter in the still-image command above fixes this.
  7. No retry logic. Grok Imagine Video 1.5 can be busy at peak times. Catch failures per shot and re-queue them instead of restarting the whole script.

Get those right and a homemade Suno AI music video generator beats most template apps on look, cost and control. Start with one chorus: four keyframes and four clips, under 250 credits at 720p, then scale the script to the full song once the style is locked. The same pipeline works for tracks from Udio or any other AI music generator, because all it needs is an audio file and a tempo. Browse the full model catalog if you want to swap in a different image or video model.

Frequently asked questions

Is there a free Suno AI music video generator?

The closest thing to free is a static visualiser: one image looped over your song with ffmpeg, which is free software. On Unicorn API the Generate Music Cover model costs 0 credits, and a custom 16:9 image from Nano Banana 2 Lite costs 4 credits. Fully animated videos are never really free. Free tiers of apps usually add watermarks, cap resolution or limit how many renders you get.

How much does it cost to make an AI music video for a three-minute song?

With 15 animated clips of 12 seconds from Grok Imagine Video 1.5 plus one keyframe per clip, a three-minute video costs about 508 credits at 480p or 883 credits at 720p, including a generated song and lyrics. That is about $5.08 or $8.83 at monthly plan rates. Budget around 20% extra for clips you regenerate.

Can I make a music video from an MP3 I already have?

Yes. The video side of the pipeline does not care where the audio came from. Generate keyframes and clips that match the song's sections, then use ffmpeg to join the clips and map your MP3 as the only audio track. The same steps work for songs from Suno, Udio, a DAW or a band recording.

How do I sync AI video clips to the beat of a song?

Make every clip a whole number of bars long. One bar in 4/4 time lasts 240 divided by the BPM in seconds, so at 120 BPM a bar is 2 seconds and a 12-second clip is exactly six bars. Start the first cut on the downbeat. If the intro is off-grid, trim the audio so beat one sits at zero.

Can the same pipeline make lyric videos?

Yes, but the lyric timing is your job. None of the image or video models transcribe audio, so you need the lyrics text, which you already have if you wrote them or used a lyrics model, and the timestamps for each line. Put both in an SRT subtitle file and burn it into the finished video with ffmpeg's subtitles filter.

Does the pipeline work for Udio songs too?

Yes. A music video pipeline only needs an audio file and its tempo. Export the track from Udio, Suno or any other AI music generator, note the BPM, plan scenes around the verses and choruses, and run the same keyframe, image-to-video and ffmpeg steps described in this guide.