danielrosehill/claude-video-editor-plugin/karaoke-video
Claude Code and agent skill by danielrosehill/claude-video-editor-plugin
- community
Checking that the SKILL.md file is still in the repository.
Build a karaoke-style music video from a source video or song — separate stems with Demucs, attenuate (or remove) the lead vocal, then burn animated lyric subtitles with music-note glyphs synced to the song. Accepts an existing LRC/SRT lyric file, or whisper-transcribes the original vocal as a fallback. Use when the user says "make this karaoke", "remove the vocals and add lyrics", "karaoke version", "instrumental with lyrics".
Install
npx vskill@latest install danielrosehill/claude-video-editor-plugin/karaoke-videoSKILL.md
Karaoke Video
Composite pipeline:
- Extract audio from the source.
- Run Demucs to separate stems (
vocals,drums,bass,other). - Mix a karaoke audio bed: instrumental at full level + lead vocal at user-chosen attenuation (
-12 dBdefault;muteremoves entirely). - Build the lyric track:
- If the user supplied an LRC or SRT, use it.
- Otherwise, run whisper on the isolated vocals stem (much cleaner transcript than mixed audio) and convert to ASS with per-line timing.
- Render the karaoke video — original picture + new audio bed + animated subtitles with music-note bullets.
Procedure
1. Resolve tools
Whisper backend resolution mirrors burn-subtitles (use preferences.subtitle_backend).
2. Inputs
| Field | Default | |
|---|---|---|
| Source | required (video or audio) | |
| Vocal level | -12dB (alt: mute, -6dB, -18dB) | |
| Lyrics | optional path to .lrc / .srt | |
| Lyric style | bouncy (default) / block / word-highlight | |
| Output | <basename>.karaoke.mp4 |
3. Demucs separation
For 4-stem separation (drums/bass/other), drop --two-stems=vocals. Two-stems is faster and sufficient for karaoke.
4. Mix the karaoke audio bed
Set normalize=0 so the instrumental retains its loudness and the vocal is genuinely attenuated rather than auto-leveled back up.
5. Lyrics
If LRC supplied
LRC is line-timed ([mm:ss.xx]Lyric line). Convert to ASS with karaoke \k tags for per-syllable highlight (when lyric_style=word-highlight), or to plain SRT for block / bouncy.
For word-highlight: split each line into words, distribute the line's duration evenly across words, emit {\kNN}word tokens. (More accurate karaoke needs forced-alignment — out of scope.)
If SRT supplied
Use as-is for block / bouncy. For word-highlight, same word-split approach as LRC.
If nothing supplied — whisper the isolated vocal
Vocals-only input gives whisper a much cleaner signal than the mix — output is significantly more accurate. Suggest the user run clean-transcription on this SRT before rendering.
6. Subtitle styling — music-note glyphs
ASS supports inline styling and Unicode glyphs. Build the karaoke ASS with a music-note prefix on each cue:
For bouncy style, add a vertical wobble via \move or \t(0,500,\fscy105)\t(500,1000,\fscy100) (subtle 5% scale pulse on the beat — looks animated without forced-alignment data).
For word-highlight, use ASS karaoke tags (\k) so each word lights up in sequence as its duration elapses:
(The \k value is centiseconds. Computed by word_duration_ms / 10.)
Music-note glyphs to consider: ♪ ♫ ♬ 🎵. Stick to the BMP characters (♪♫♬) — emoji renders inconsistently with libass.
Save the styled file as $WORK/lyrics.ass.
7. Render
The ass filter (vs subtitles) honours full ASS styling including animations.
For audio-only sources (no source video), pair this with audio-to-music-video to produce a waveform background, then run karaoke-video over that synthesised video.
8. Cleanup
…unless the user wants to keep the stems for further work — in which case copy to <project>/working/stems/ first.
9. Report
Notes
- Demucs first run downloads the
htdemucsmodel (~80 MB). Subsequent runs are fast. - If the user wants a true sing-along (perfect per-syllable timing), forced alignment (e.g.
aeneas,whisperx) is the right tool — out of scope here. - Music-note glyph rendering depends on the system having a font that covers
U+266A. Inter does. If a custom font is set inpreferences.subtitle_style, verify it before rendering. - Demucs is GPU-accelerated when CUDA is available. On AMD-only systems it runs CPU-only — separation of a 4-min track takes ~2–4 minutes.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/karaoke-video/SKILL.md
Popularity
- Repository stars
- 6
- 7-day trend score
- 10
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/danielrosehill/claude-video-editor-plugin/karaoke-video)