# Music Video

Build a music video from an existing song and lyrics, either as p5.js/p5.brush...

- Repository: https://github.com/NoizAI/skills (532 stars)
- Category: Design
- License: see repository
- Last updated: 2026-09-28
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add NoizAI/skills --skill music-video -g -a claude-code -y`
Codex: `npx skills add NoizAI/skills --skill music-video -g -a codex -y`
Cursor: `npx skills add NoizAI/skills --skill music-video -g -a cursor -y`
Gemini CLI: `npx skills add NoizAI/skills --skill music-video -g -a gemini-cli -y`

## Description

Build a music video from an existing song and lyrics, either as p5.js/p5.brush animation or by assembling local images and clips. Use when the user mentions a music video, MV, lyric video, visualizer, storyboard, 音乐视频, 歌词动画, or MV合成. Do not use it to compose the song, generate sound effects, or call an image or video generation API.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# music-video

Turn one finished song into a 24fps music video. The song is the master audio. Scene intervals cover it exactly once.

## Triggers

- music video / MV / lyric video / visualizer / storyboard
- 音乐视频 / MV合成 / 歌词动画 / 歌曲动画

## Capabilities

- `code`: initialize a pinned p5.js and p5.brush project, then animate the song in JavaScript.
- `hybrid`: inspect local character images, scene stills, and video clips, then assemble them. No image or video generation API is called.
- Local beat, onset, low-frequency, and loudness analysis for cut points and animation cues.
- Frame-exact assembly with the original song as the only soundtrack.

## Inputs

Required:

- `song`: local audio (`.mp3`, `.wav`, `.m4a`, `.flac`, `.ogg`, `.aac`)
- `brief`: the visual idea, audience, and any required references
- `mode`: `code` or `hybrid`

Optional:

- `lyrics`: text or `.srt`. Required before storyboarding when the vocal timing matters.
- `assets`: directory of stills and clips for `hybrid`
- `aspect`: `16:9` (default), `9:16`, `1:1`, or `4:3`

If the user wants a song created first, use [text-to-music](../text-to-music/SKILL.md), then return here with the chosen file.

## Outputs

- `<project>/output/final.mp4`
- `docs/CREATIVE_BRIEF.md`, `docs/STORYBOARD.md`, `docs/TASKS.md`, and `docs/PROGRESS.md`
- `audio/analysis.json`, and `docs/inspect.json` when assets exist

## Workflow

Run `python3 skills/music-video/scripts/mv.py` from the repository root. If this skill is installed elsewhere, use the `scripts/mv.py` beside this file. Create the project outside the skill directory.

1. Choose `code` when the video is drawn in JavaScript. Choose `hybrid` when the user supplies stills or clips. Ask once when neither is clear.
2. Initialize an isolated project:

```bash
python3 skills/music-video/scripts/mv.py init \
  --project ./mv-project --song ./song.mp3 --lyrics ./lyrics.txt --mode code

The rest: https://github.com/NoizAI/skills/blob/HEAD/skills/music-video/SKILL.md
