muapi-music-video — Claude Code skill for music videos
Turns a song theme into keyframes, animated scenes, and a matching music track. Use it to build a short video story or visualize a song.
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-music-video -a claude-code
npx skills add SamurAIGPT/Generative-Media-Skills --skill music-video -a claude-codeWhat muapi-music-video does
The skill splits a theme into scenes, generates a keyframe for each one, animates those images into clips, and creates a soundtrack. Set the scene count with scenes; it defaults to 3, and each clip is 5 seconds long. You can also provide music and visual styles.
The workflow has two stages: keyframes and music are created in parallel, then each keyframe is animated. The agent returns the asset IDs in order and a short description of the cut. To keep a character consistent, repeat its description verbatim in every scene prompt.
Calls require the muapi CLI and a configured MUAPI_API_KEY; run muapi auth configure if the key is unset. A video call costing more than 50 cr needs user approval. If animation still fails after failover, the skill falls back to text-to-video for that scene.
What it helps with
- turn a song theme into a sequence of scenes
- generate keyframes for a short music video
- animate still images into video clips
- create a soundtrack that matches the requested style
- return ordered asset IDs and a suggested cut sequence
Example prompts for the agent
- Make a video about a lonely robot finding a friend, with a hopeful mood.
- Create a 4-scene music video with a soft cinematic look and instrumental music.
- Visualize this song with a slow-tempo soundtrack and keep the character consistent across scenes.
How to install muapi-music-video
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-music-video -a claude-codenpx skills add SamurAIGPT/Generative-Media-Skills --skill music-video -a claude-code2Manually: put the files in place
~/.claude/skills/music-video/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/music-video/
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill music-video -a codex2Manually: put the files in place
.agents/skills/music-video/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill music-video -a cursor2Manually: put the files in place
.cursor/skills/music-video/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install SamurAIGPT/Generative-Media-Skills music-video2Manually: put the files in place
.github/skills/music-video/SKILL.md1Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill music-video -a gemini-cli2Platform CLI
gemini skills install https://github.com/SamurAIGPT/Generative-Media-Skills --path library/motion/music-videoManually: put the files in place
.devin/skills/music-video/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add SamurAIGPT/Generative-Media-Skills --skill music-video -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about muapi-music-video
How do I install muapi-music-video in Claude Code?
Run npx skills add SamurAIGPT/Generative-Media-Skills --skill muapi-music-video -a claude-code. The skill file is at ~/.claude/skills/music-video/SKILL.md.
What does muapi-music-video do?
It creates scene keyframes from a song theme, animates them into clips, and generates a matching music track. The agent returns the asset IDs and a brief cut order.
What does muapi-music-video need to run?
It needs the muapi CLI and a configured MUAPI_API_KEY. If the key is unset, run muapi auth configure.
Source text
SKILL.md · MIT
---
slug: muapi-music-video
name: muapi-music-video
version: "1.0.0"
description: Build a short music video from a song theme — N keyframes, animate each, generate matching music.
acceptLicenseTerms: true
---
# Music Video
**Build a short music video from a song theme — N keyframes, animate each, generate matching music.**
## Inputs
| Name | Type | Required | Default | Description |
|:---|:---|:---|:---|:---|
| `theme` | text | yes | — | Song / video theme (e.g. "lonely robot finds a friend, hopeful"). |
| `scenes` | int | no | 3 | Number of scenes (each becomes a 5s clip). |
| `music_style` | text | no | ambient cinematic, instrumental, slow tempo, warm | Suno-style tags for the soundtrack. |
| `visual_style` | text | no | cinematic, photoreal, soft volumetric light, 16:9 | |
## Steps
Build one the plan covering:
1. **Layer A (parallel)** — N keyframes + 1 music track all at once.
- For each scene 1..N: `muapi image generate` with a beat-specific prompt +
`{{visual_style}}`, model=nano-banana-pro (these feed video gen).
- One `muapi audio create` (kind=music) using `{{music_style}}`, duration =
N × 5 + a 2s tail.
2. **Layer B (parallel, depends on Layer A)** — animate each keyframe.
- For each scene: `muapi video from-image` with `image=$nX.url`, model=veo3.1-image-to-video,
duration=5, prompt=scene-specific motion direction.
3. Return:
- The scene keyframes (asset ids in order).
- The animation clips (asset ids in order).
- The music track asset id.
- A short summary describing the cut order.
## Notes
- Keep character continuity by repeating the character description in every
scene prompt verbatim.
- Don't auto-confirm any single video call > 50 cr — those need the user's
nod (the loop will prompt automatically).
- If a scene's `muapi video from-image` fails after failover, fall back to
`muapi video generate` (text-to-video) for that scene only.
## Trigger Keywords
`music video`, `mv`, `video story`, `song visualization`
---
## Notes for the Executing Agent
- This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call `muapi` CLI commands. Use `muapi auth configure` first if `MUAPI_API_KEY` is unset.
- For model IDs without a CLI alias yet, fall back to the raw endpoint via `curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}'` and poll with `muapi predict wait <request_id>`.
- Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
© SamurAIGPT · MIT · SamurAIGPT/Generative-Media-Skills