Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aviz85 avatar

Lyrics Overlay

  • 3 installs
  • 4 repo stars
  • Updated March 11, 2026
  • aviz85/ai-music-video-maker

lyrics-overlay is a Claude Code skill that adds animated lyrics and caption overlays to videos using Remotion React components.

About

A Claude Code skill that overlays animated lyrics and captions onto videos using Remotion React components. A developer picks one of seven template styles based on song genre and mood, feeds it word-level timing from a transcript, and renders the result. It supports RTL text and per-style props like colors, position, and glow.

  • Adds animated lyrics/captions to videos using Remotion React components
  • Seven template styles (karaoke, minimal, fade, neon, cinematic, bounce, typewriter)
  • Parses ElevenLabs word-level transcript JSON for word-timed karaoke highlighting

Lyrics Overlay by the numbers

  • 3 all-time installs (skills.sh)
  • Ranked #1,155 of 1,337 Generative Media skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

lyrics-overlay capabilities & compatibility

No API keys required for the overlay itself; needs a Remotion project.

Capabilities
video generation · transcription
Use cases
video generation · transcription
Pricing
Free
From the docs

What lyrics-overlay says it does

Add beautiful animated lyrics/captions to videos using Remotion with multiple template styles.
SKILL.md
All styles have **slower decay** - words linger ~1.5 seconds after their timing ends for better readability.
SKILL.md
npx skills add https://github.com/aviz85/ai-music-video-maker --skill lyrics-overlay

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs3
repo stars4
Last updatedMarch 11, 2026
Repositoryaviz85/ai-music-video-maker

What it does

Add word-timed karaoke or caption overlays to a video by choosing a Remotion style and feeding ElevenLabs transcript timing.

Who is it for?

Rendering karaoke-style, word-timed lyric overlays on music videos with a style matched to the song's genre.

Skip if: Videos without word-level timing data, since the parser depends on transcript timestamps.

When should I use this skill?

You need lyrics, captions, subtitles, karaoke, or song-text overlaid on a video.

What you get

A rendered video with animated lyric captions timed to the audio.

  • Video with animated lyric/caption overlay

By the numbers

  • 7 template styles
  • words linger ~1.5 seconds after timing ends

Files

SKILL.mdMarkdownGitHub ↗

Lyrics Overlay Skill

Add beautiful animated lyrics/captions to videos using Remotion with multiple template styles.

Style Selection Guide (For Agent)

Choose style based on song mood, genre, and visual aesthetic:

StyleComponentBest ForMood/Vibe
karaokeLyricsOverlayPop, dance, singalongEnergetic, fun, accessible
minimalLyricsOverlayBallads, acousticClean, elegant, subtle
fadeLyricsOverlayNarration, spoken wordGentle, smooth, understated
neonLyricsOverlayNeonElectronic, synthwave, EDMCyberpunk, futuristic, high-energy
cinematicLyricsOverlayCinematicEpic, orchestral, trailersDramatic, powerful, movie-like
bounceLyricsOverlayBounceKids, fun, upbeatPlayful, colorful, joyful
typewriterLyricsOverlayTypewriterStorytelling, retro, indieNostalgic, intimate, artistic

Style Details

1. Karaoke (Default)
  • Position: Bottom
  • Animation: Spring bounce word-by-word, current word glows
  • Colors: White text, gold/orange highlight
  • Use when: Standard music videos, pop songs, singalong content
2. Minimal
  • Position: Bottom
  • Animation: Full line shows, current word scales up slightly
  • Colors: Subtle white/gray
  • Use when: Clean look needed, don't distract from visuals
3. Fade
  • Position: Bottom
  • Animation: Words fade in smoothly as spoken
  • Colors: Pure white
  • Use when: Speeches, narration, gentle songs
4. Neon (Cyberpunk)
  • Position: Bottom or center
  • Animation: Chromatic aberration, glitch on entrance, flicker
  • Colors: Magenta glow (#FF00FF), cyan split (#00FFFF)
  • Effects: Scanlines, RGB split, multi-layer glow
  • Use when: Electronic music, synthwave, futuristic aesthetic
5. Cinematic (Movie Trailer)
  • Position: CENTER (large, dramatic)
  • Animation: Words scale from big to normal with blur, uppercase
  • Colors: Gold accent (#FFD700) on white
  • Effects: Vignette, letterbox bars, dramatic glow
  • Use when: Epic songs, trailers, powerful moments, orchestral
6. Bounce (Playful)
  • Position: Center
  • Animation: Words bounce in from random positions, rotation
  • Colors: Rainbow palette, each word different color
  • Effects: Continuous subtle bounce on active word
  • Use when: Fun/upbeat songs, kids content, party vibes
7. Typewriter (Retro)
  • Position: Center
  • Animation: Character-by-character reveal with cursor
  • Themes: classic (white), terminal (green), vintage (sepia)
  • Effects: Blinking cursor, themed backgrounds
  • Use when: Storytelling, indie, nostalgic feel, artistic

Quick Start

1. Prepare Lyrics Data

cd skills/transcribe/scripts
npx tsx transcribe.ts -i <audio.mp3> -o <project>/subtitles --json

2. Create Composition

// Pick the right component for your style:
import { LyricsOverlay } from './LyricsOverlay';           // karaoke, minimal, fade
import { LyricsOverlayNeon } from './LyricsOverlayNeon';   // neon
import { LyricsOverlayCinematic } from './LyricsOverlayCinematic'; // cinematic
import { LyricsOverlayBounce } from './LyricsOverlayBounce';       // bounce
import { LyricsOverlayTypewriter } from './LyricsOverlayTypewriter'; // typewriter

import { parseElevenLabsTranscript } from './LyricsOverlay';
import { staticFile } from 'remotion';

const transcript = require('../../public/lyrics/subtitles.json');

export const MyVideo: React.FC = () => {
  const lyrics = parseElevenLabsTranscript(transcript, {
    maxWordsPerLine: 6,
    lineGapThreshold: 0.8,
  });

  // Example: Cinematic style
  return (
    <LyricsOverlayCinematic
      videoSrc={staticFile('videos/input.mp4')}
      lyrics={lyrics}
      fontSize={90}
      accentColor="#FFD700"
      isRTL={true}
      useOffthreadVideo={true}
    />
  );
};

3. Render

cd ~/remotion-assistant
npx remotion render MyVideo out/final.mp4

Props Reference

Common Props (All Styles)

PropTypeDefaultDescription
videoSrcstringrequiredVideo file path
lyricsLyricsDatarequiredParsed lyrics data
fontSizenumbervariesBase font size
isRTLbooleanautoRight-to-left mode
useOffthreadVideobooleanfalseUse OffthreadVideo for better memory

LyricsOverlay (karaoke/minimal/fade)

PropTypeDefault
style'karaoke' \'minimal' \
position'bottom' \'center' \
primaryColorstring'#FFFFFF'
highlightColorstring'#FF6B35'

LyricsOverlayNeon

PropTypeDefault
glowColorstring'#FF00FF'
secondaryGlowstring'#00FFFF'
glitchIntensitynumber0.5

LyricsOverlayCinematic

PropTypeDefault
accentColorstring'#FFD700'
letterSpacingnumber0.15
Position-CENTER (fixed)

LyricsOverlayBounce

PropTypeDefault
highlightColorstring'#FFFFFF'
bounceIntensitynumber0.7
position'bottom' \'center' \

LyricsOverlayTypewriter

PropTypeDefault
theme'classic' \'terminal' \
showCursorbooleantrue
typeSpeednumber20
position'bottom' \'center' \

Color Presets

By Style

StyleRecommended Colors
karaokeGold #FFD700, Orange #FF6B35
neonMagenta #FF00FF + Cyan #00FFFF
cinematicGold #FFD700, Silver #C0C0C0
bounceRainbow (automatic)
typewriterTheme-based (green/sepia/white)

By Song Genre

GenreStyleColors
Popkaraoke#FF6B35 highlight
Electronicneon#FF00FF / #00FFFF
Rock/Metalcinematic#FF0000 accent
Balladminimal#FFFFFF highlight
KidsbounceRainbow
Indietypewriter vintageSepia

Integration with music-video

This skill is called in Step 7 of the music-video pipeline.

The agent should select style based on: 1. Song genre (electronic → neon, epic → cinematic) 2. Energy level (high → bounce/neon, low → minimal/fade) 3. Visual aesthetic (modern → neon, retro → typewriter, dramatic → cinematic)

Text Decay Behavior

All styles have slower decay - words linger ~1.5 seconds after their timing ends for better readability. The fade starts AFTER the line ends, not before.

Remotion Templates (Included)

All Remotion components are included in this skill:

.claude/skills/lyrics-overlay/remotion-templates/
├── compositions/
│   ├── LyricsOverlay.tsx          # karaoke, minimal, fade
│   ├── LyricsOverlayNeon.tsx      # neon/cyberpunk
│   ├── LyricsOverlayCinematic.tsx # cinematic/epic
│   ├── LyricsOverlayBounce.tsx    # bounce/playful
│   └── LyricsOverlayTypewriter.tsx # typewriter/retro
└── utils/
    └── lyricsParser.ts            # ElevenLabs JSON parser

Setup Remotion Project

Copy templates to your Remotion project:

# One-time setup
cp -r .claude/skills/lyrics-overlay/remotion-templates/* ~/remotion-assistant/src/

Dependencies

  • Remotion project (use templates above)
  • transcribe skill - For word-level timing (included in project)

Related skills

FAQ

How many overlay styles are available?

Seven: karaoke, minimal, fade, neon, cinematic, bounce, and typewriter.

Where does word timing come from?

From the transcribe skill's ElevenLabs word-level transcript JSON, parsed by parseElevenLabsTranscript.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.