Music video clips from your lyrics. 3 minutes of footage from $8.18.

Claude turns your lyrics into a shot list, Seedance makes a clip for every shot and GPT Image 2 draws the cover. You cut the clips to the beat in your editor.

Example: a 3-minute song

Every clip bills, including the ones you regenerate. The clips are made from text, not from your track, so you cut them to the song.

ItemQuantity and priceCost
Shot list from your lyrics (Claude Sonnet 4.6)1 × $0.034$0.03
Clips, one per shot (Seedance 2.0 Fast, 4 s, 480p, 16:9)45 × $0.18$8.10
Cover art tries (GPT Image 2, 2K, 1:1)2 × $0.025$0.05
Per video$8.18

What a video costs by song length

The whole video: shot list, clips to cover the song and cover art, by clip model.

Song lengthSeedance 2.0 Fast (4 s, 480p, 16:9)Seedance 2.5 (4 s, 480p, 16:9)Seedance 2.0 Mini (5 s, 720p, 9:16)
2 minutes$5.48$10.88$7.88
3 minutes$8.18$16.28$11.78
4 minutes$10.88$21.68$15.68

From lyrics to footage

  • Write the shot list: Send your lyrics to Claude Sonnet 4.6 on /v1/chat/completions and ask for one visual for every few seconds of the song.
  • Make a clip per shot: Send each visual to /v1/videos/generations with seedance-2.0-fast, then poll the task until the clip is ready.
  • Cut it to the beat: Drop the clips on your track in any editor and trim them to the rhythm.
import time, requests

API = "https://api.apisrouter.com/v1"
headers = {"Authorization": "Bearer sk-your-apisrouter-key"}
lyrics = open("lyrics.txt").read()

shots = requests.post(f"{API}/chat/completions", headers=headers, json={
    "model": "claude-sonnet-4-6",
    "messages": [{"role": "user", "content": "Write a shot list for a music video, one visual per 4 seconds, following these lyrics:\n" + lyrics}],
}).json()["choices"][0]["message"]["content"]
print(shots)

task = requests.post(f"{API}/videos/generations", headers=headers, json={
    "model": "seedance-2.0-fast",
    "prompt": "Neon-lit rain on an empty city street at night, slow dolly forward",
}).json()
while task.get("status") == "processing":
    time.sleep(10)
    task = requests.get(f"{API}/videos/tasks/{task['task_id']}", headers=headers).json()
if task.get("status") != "completed":
    raise RuntimeError(task)
print(task["result"]["url"])

Two ways to pay

Both fill one balance, spent per clip, image and token.

FAQ

How much does an AI music video cost?

On APIsRouter, a 3-minute video as above costs $8.18: a shot list, 45 clips at $0.18 each and cover art. The table gives the cost for other lengths and models.

Does it sync the video to my music?

No. The clips come from text descriptions and do not hear your song, so you place them on the beat in your editor. A shot list written from your lyrics keeps the scenes in order.

Which clip model should I use?

Seedance 2.0 Fast makes 4 s, 480p, 16:9 clips at $0.18 each; Seedance 2.5 makes 4 s, 480p, 16:9 clips at $0.36 each; Seedance 2.0 Mini makes 5 s, 720p, 9:16 clips at $0.325 each.

Can it show me or my band?

No. Video on APIsRouter is text-to-video, so a clip follows your description but cannot copy a photo of you.

Can I try it for free?

Yes. Sign in and claim the $2 trial credit from your dashboard, no card needed: that covers 11 Seedance 2.0 Fast clips. Top up from $10 after that.