Skip to main content

lyrics-overlay

Beautiful animated lyrics overlay for videos using Remotion. Use for: lyrics, captions, subtitles, karaoke, song text overlay.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
aviz85/ai-music-video-maker
آخر نشاط في المصدر
٣ فبراير ٢٠٢٦ في ٠٦:٢٠
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤
التفرعات
١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
7 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
lyrics-overlay
description
Beautiful animated lyrics overlay for videos using Remotion. Use for: lyrics, captions, subtitles, karaoke, song text overlay.
# 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: | Style | Component | Best For | Mood/Vibe | |-------|-----------|----------|-----------| | **karaoke** | `LyricsOverlay` | Pop, dance, singalong | Energetic, fun, accessible | | **minimal** | `LyricsOverlay` | Ballads, acoustic | Clean, elegant, subtle | | **fade** | `LyricsOverlay` | Narration, spoken word | Gentle, smooth, understated | | **neon** | `LyricsOverlayNeon` | Electronic, synthwave, EDM | Cyberpunk, futuristic, high-energy | | **cinematic** | `LyricsOverlayCinematic` | Epic, orchestral, trailers | Dramatic, powerful, movie-like | | **bounce** | `LyricsOverlayBounce` | Kids, fun, upbeat | Playful, colorful, joyful | | **typewriter** | `LyricsOverlayTypewriter` | Storytelling, retro, indie | Nostalgic, 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 ```bash cd skills/transcribe/scripts npx tsx transcribe.ts -i <audio.mp3> -o <project>/subtitles --json ``` ### 2. Create Composition ```typescript // 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 ```bash cd ~/remotion-assistant npx remotion render MyVideo out/final.mp4 ``` ## Props Reference ### Common Props (All Styles) | Prop | Type | Default | Description | |------|------|---------|-------------| | `videoSrc` | string | required | Video file path | | `lyrics` | LyricsData | required | Parsed lyrics data | | `fontSize` | number | varies | Base font size | | `isRTL` | boolean | auto | Right-to-left mode | | `useOffthreadVideo` | boolean | false | Use OffthreadVideo for better memory | ### LyricsOverlay (karaoke/minimal/fade) | Prop | Type | Default | |------|------|---------| | `style` | 'karaoke' \| 'minimal' \| 'fade' | 'karaoke' | | `position` | 'bottom' \| 'center' \| 'top' | 'bottom' | | `primaryColor` | string | '#FFFFFF' | | `highlightColor` | string | '#FF6B35' | ### LyricsOverlayNeon | Prop | Type | Default | |------|------|---------| | `glowColor` | string | '#FF00FF' | | `secondaryGlow` | string | '#00FFFF' | | `glitchIntensity` | number | 0.5 | ### LyricsOverlayCinematic | Prop | Type | Default | |------|------|---------| | `accentColor` | string | '#FFD700' | | `letterSpacing` | number | 0.15 | | **Position** | - | **CENTER (fixed)** | ### LyricsOverlayBounce | Prop | Type | Default | |------|------|---------| | `highlightColor` | string | '#FFFFFF' | | `bounceIntensity` | number | 0.7 | | `position` | 'bottom' \| 'center' \| 'top' | 'center' | ### LyricsOverlayTypewriter | Prop | Type | Default | |------|------|---------| | `theme` | 'classic' \| 'terminal' \| 'vintage' | 'classic' | | `showCursor` | boolean | true | | `typeSpeed` | number | 20 | | `position` | 'bottom' \| 'center' \| 'top' | 'center' | ## Color Presets ### By Style | Style | Recommended Colors | |-------|-------------------| | karaoke | Gold `#FFD700`, Orange `#FF6B35` | | neon | Magenta `#FF00FF` + Cyan `#00FFFF` | | cinematic | Gold `#FFD700`, Silver `#C0C0C0` | | bounce | Rainbow (automatic) | | typewriter | Theme-based (green/sepia/white) | ### By Song Genre | Genre | Style | Colors | |-------|-------|--------| | Pop | karaoke | `#FF6B35` highlight | | Electronic | neon | `#FF00FF` / `#00FFFF` | | Rock/Metal | cinematic | `#FF0000` accent | | Ballad | minimal | `#FFFFFF` highlight | | Kids | bounce | Rainbow | | Indie | typewriter vintage | Sepia | ## 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: ```bash # 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)
عرض على GitHub