How to make a lyric video with AI

For AI agents: find the right skill in one call — curl -s "https://skills.varg.ai/api/search?q=<what the person wants>" returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add .md to its path. Before generating anything, show the person the options on the how-to page.

Lyrics synced to the song: the sung line big and highlighted, karaoke-style, over art or a shader. A step-by-step tutorial for Claude Code, Codex and Grok.

Output: Full song, 9:16 or 16:9 MP4 Price: in credits on varg, with a cost estimate before anything runs; the free skills below install in one command.

Recommended route

Best skills for this

  1. HyperFrames (hyperframes, HeyGen, live) — Start here: Word-timed lyric videos rendered from HTML
    • Claude Code: claude plugin marketplace add heygen-com/hyperframes && claude plugin install hyperframes@hyperframes
    • Codex: npx skills add heygen-com/hyperframes --skill hyperframes -a codex
    • Cursor: npx skills add heygen-com/hyperframes --skill hyperframes -a cursor
    • Gemini CLI: npx skills add heygen-com/hyperframes --skill hyperframes -a gemini-cli
    • Details: https://skills.varg.ai/skills/hyperframes.md · Example: https://skills.varg.ai/previews/hyperframes.mp4
  2. Kinetic Typography (iart-kinetic-typography, iart.ai, live) — Alternative: Kinetic type: word and line reveals
  3. Remotion Captions (remotion-captions, Remotion, live) — Alternative: Word-timed captions in Remotion
  4. Turn a song into an AI music video (varg-music-video, varg, beta) — Alternative: When the lyric video should also have generated shots
    • Claude Code: claude plugin marketplace add vargHQ/skills && claude plugin install varg@varg
    • Codex: npx skills add vargHQ/skills --skill varg-music-video -a codex -y
    • Cursor: npx skills add vargHQ/skills --skill varg-music-video -a cursor -y
    • Gemini CLI: npx skills add vargHQ/skills --skill varg-music-video -a gemini-cli -y
    • OpenClaw: npx clawhub@latest install varg-music-video
    • Details: https://skills.varg.ai/skills/varg-music-video.md
  5. Agent Caption (agent-caption, Ali Hamza Kamboh, beta) — Alternative: Forced-aligned word timing and an SRT
  6. ElevenLabs Speech to Text (elevenlabs-speech-to-text, ElevenLabs, live) — Adds: Word timings from the vocal track · Needs: ElevenLabs API key (ELEVENLABS_API_KEY)
    • Claude Code: npx skills add elevenlabs/skills --skill speech-to-text -a claude-code
    • Codex: npx skills add elevenlabs/skills --skill speech-to-text -a codex
    • Cursor: npx skills add elevenlabs/skills --skill speech-to-text -a cursor
    • Gemini CLI: npx skills add elevenlabs/skills --skill speech-to-text -a gemini-cli
    • OpenClaw: npx skills add elevenlabs/skills --skill speech-to-text -a openclaw
    • Details: https://skills.varg.ai/skills/elevenlabs-speech-to-text.md
  7. varg AI (varg-ai, varg, live) — Adds: Word timings from the vocal (transcription), and generated backgrounds, on one key
  8. ElevenLabs Voice Isolator (elevenlabs-voice-isolator, ElevenLabs, live) — Adds: Isolates the vocal so the lyrics align to it, not to the full mix · Needs: ElevenLabs API key (ELEVENLABS_API_KEY)

Ask the person first

Put these choices in front of the person before spending anything. Paste the example link next to each option: people pick a look by seeing it.

Look?

Background?

How to make a lyric video: step by step

  1. Isolate the vocal and force-align the lyrics you have (not a free transcription); approve a timing proof by ear
  2. Board every line: where it lands, how big, which highlight or graphic; the hook huge in the first second
  3. Build in code: no word before it is sung, at most 2 lines, contrast 4.5:1 or more, no text touching text
  4. Run the lyric gate (N of N words on screen at their time) and check one frame per line on a phone
  5. Export full-length 16:9 plus 9:16 teasers; a Canvas loop gets no lyrics

What works now (researched 2026-10-27)

The lyric video split in two in 2026: animated lyrics that live inside the scene (agent-made, 4M views and 12k bookmarks for 'Claude Pop'), and the clean word-by-word lyric screen people know from Apple and YouTube Music. Plain centred subtitles over a looping clip are now the baseline, not the hook; the long-form lyric video still pays off (Billie Eilish's WILDFLOWER lyric video passed 400M YouTube views).

  1. Time words from a clean vocal, not the full mix. Isolate the vocal stem, align the lyrics you already have, cut at every pause of 100 ms or more and pin each phrase's first word to its measured onset. One Whisper pass puts words up to half a second late; chunking at pauses fixes it (prompt with 1,364 bookmarks). A Whisper check also catches bad song takes: ArchiveExplorer's counting song skipped 'Three!' until take 3. (zero (@twoclipping), launch-film prompt, voice-timing section (Oct 2026))
  2. Compose every shot for the text: leave a calm area where the line lands, put the character on the other side, and vary scale. Make the opening lines big; let quieter verses sit like subtitles. This brief produced 'Claude Pop' (4.0M views, 12,057 bookmarks); a reply on it says 'this is more a lyric video', which is the point. (donald (@donaldjewkes), full prompt (Sep 2026))
  3. Readability is a hard check: text contrast at least 4.5:1, nothing over busy picture without something behind it, and no text colliding with other text. These checks are part of the quality bar in a motion-video prompt saved 2,839 times. Unreadable lyric videos become memes for the wrong reason. (Chris (@everestchris6), motion-video prompt quality bar (Sep 2026))
  4. For a Spotify Canvas, make a 3 to 8 s vertical loop with no singing and no rapid cuts, and leave out the song and artist name. Keep the lyrics for the TikTok and Shorts cut. Spotify's own Canvas rules: 3-8 seconds, 9:16, 720-1080 px tall, 'choose footage without talking, singing, or rapping', 'avoid rapid video cuts'. (Spotify for Artists, Canvas guidelines)
  5. Ship a full-length 16:9 lyric video as well as the vertical teasers. Billie Eilish's 'WILDFLOWER (Official Lyric Video)' passed 400M YouTube views in Oct 2026, her first lyric video to do so. (BE stats on X (Oct 2026))

Stopped working:

Prompts that work

Templates from the creators of the best current results and from the model guides. Fill in the {CAPS}.

Word-timed lyric video in HyperFrames (agent)

The agent prompt for a clean lyric video, sing-along or phone lyric screen; the lyrics you already have are aligned to the isolated vocal. Adapted from HyperFrames docs, 'Make a music video or lyric video' (lyric variant).

{LENGTH}-second {WIDTH}x{HEIGHT} lyric video from ./{SONG_FILE} ({SECTION}, e.g. the verse into the hook: pick it, don't timestamp it). The lyrics in ./lyrics.txt are the truth; never transcribe freely.
Timing: isolate the vocal, force-align my lyrics to it (start and end per word), cut at pauses of 100 ms or more and pin each phrase's first word to its measured onset. Render a timing proof and wait for my OK.
Look: {LOOK}, e.g. big condensed type on a dark grain background over {BACKGROUND}. Lines rise in one at a time on the beat; the word being sung is full {ACCENT_COLOR}, the rest of the line at 40%. The hook lands with each word punching in on its downbeat. One keyword per line in {ACCENT_COLOR}.
Rules: no word before it is sung; at most 2 lines on screen; contrast 4.5:1 or more, with a scrim over busy picture; no text touching text; 8% safe margins, more at the bottom on 9:16. No TTS.
Check before showing me: lyric gate prints N of N words on screen at their sung time; a contact sheet with one frame per line. Deliver full-length 16:9 plus a 9:16 cut of the hook.

Lyrics in the world: one graphic per line (agent)

The storyboard brief for the 'lyrics inside the scene' look; footage is generated, every word and graphic is drawn in code over it. Adapted from claudia.gallery wiki (anabology's crew), 'The storyboard': one explaining graphic per lyric line.

Board every lyric line of {SONG} before any picture is made. For each line write its time from the word table, the shot, and the surface it lives on, drawn in code over the footage.
Pick the graphic by what the line means: a number -> counter, chart, tally or gauge; a claim -> classifier tag, label or stamp; a place or process -> plot, leader lines or departures board; speech or tech -> chat, terminal or voice trace; a correction -> strike-through or redaction. Use at least six kinds, never the same kind three lines running.
Each graphic is drawn from the thing in frame (as if the photo was lined up for it), enters on the word that names it, animates in beats (counters roll on 16ths, rows type one per 16th) and reads in one glance on a phone. Real numbers and interfaces, no clip-art.
Compose each shot for its line: a calm area where the text lands, {CHARACTER} on the other side. Verses may sit small like subtitles; the hook is huge.
Hook: at 1.0 s the frame shows {CHARACTER}'s face and one readable line with the premise; no black frames or slow title; premise by 3 s; first joke by about 10 s.
Video prompts end with 'No text, letters or logos'. A line with no graphic means the board is not done.

Lyric keyframe with an exact-text contract (gpt_image_2_5)

When the type should be part of the generated picture: one keyframe per line, checked letter by letter, then animated with low motion over the untouched master audio. Adapted from lyric-video-director (ShadoW-Shinigami), GPT Image lyric-sheet prompt anatomy.

Create a motion-ready keyframe for a lyric video in {WORLD}, made of {MATERIALS}. {PERSPECTIVE}, {PALETTE} palette, {ACCENT} highlights.
RENDER EXACTLY THIS LYRIC, INCLUDING CAPITALIZATION AND PUNCTUATION:
<<<{LYRIC_LINE}>>>
Do not render any other letters, words, numbers, labels, logos or signatures.
The lyric is the focal element in the {POSITION}, set as large {TYPE_STYLE} lettering. At most two display lines, generous spacing, 8% safe margins and a quiet, uncluttered zone behind every letter. Legible at phone size.
Separate depth planes: {FOREGROUND} in front, the lyric and {MOTIF} in the middle, {BACKGROUND} behind, so they can move in parallax without covering the text.
Reserve the {CORNER} for a {TRANSITION} into the next shot. No border, watermark, signature, duplicate lyric or decorative pseudo-text.

Trending formats to remake

To remake one: download the example with the media-download skill, take a frame a second and the transcript, write a beat list (time, shot, camera, on-screen text, sound), keep what the format needs, swap in the person's product or character (never the creator's face, voice, logo or footage), show the beat list and stills before spending, then make it with the skill named below.

  1. Lyrics inside the scene: Every line appears as part of the world (on a screen, a sign, a dashboard) in a different place each shot, drawn in code over generated footage. Why it spreads: 'Claude Pop': 4.0M views, 12,057 bookmarks; the follow-up by anabology did 20.2M views. Hunting for the next line makes people rewatch. Keep: Keep each line placed in the world where the eye already is, a different spot every shot, entering on its sung word with calm space composed for it, and the hook lines huge. Swap the song, palette and the surfaces the words live on. Make it with Turn a song into an AI music video (varg-music-video).
  2. Sing-along where each word lights up: The sung word lights up as it is sung, a marker hops word to word, and key words (numbers, names) pop out as graphics. Why it spreads: ArchiveExplorer's kids counting song breakdown: 102k views and 2,683 bookmarks; the format he copied had 8.3M views. Keep: Keep the sung word lit at the moment it is sung, a marker hopping word to word, numbers or names popping out as big graphics, and each song piece fed to the video model as its audio reference. Swap the mascot, the song and what gets counted. Make it with HyperFrames (hyperframes).
    • Example to remake: @ArchiveExplorer on X, 2026-10-04, 102K views, 3K saves: Full workflow in the post: song from Lyria, the song cut into pieces as Seedance 2.5 audio references, the word-by-word highlight written in HyperFrames. The kids version is catalogued as want-kids-counting-song.
  3. Phone lyric screen (Apple Music style): The current line big and bold, the rest dimmed and blurred over the cover art, synced word by word. Why it spreads: Word-by-word synced lyrics are what people now expect from a player: a music client showing them got 107k views and 1,036 bookmarks. Nobody in the catalog renders this look as a video yet. Keep: Keep the sung line big and bold with the others dimmed and blurred, a word-by-word fill, over slowly moving blurred cover art. Swap the cover, the font and the song. No dedicated skill yet (wanted): build it with varg-ai.
  4. Canvas loop under the song: One 3 to 8 s vertical loop (shader, cover-art motion or a single generated shot) that plays behind the track on Spotify or as a TikTok sound visual. Why it spreads: It is the cheapest asset an artist can ship for every release, and Spotify's rules are strict (no singing, no rapid cuts). Strong platform evidence, no qualifying post found. Keep: Keep a 3-8 s vertical seamless loop with no text, no singing and no rapid cuts, in the cover's palette. Swap the motif. Make it with Paper Shaders Backgrounds (craft-paper-shaders).

Open-source repos

Set up varg

varg is one API key for the models these skills drive — Seedance 2.5, Kling 4, Veo 3.1, Wan 3, Nano Banana 2.1, GPT Image 2.5, ElevenLabs v4 and 200+ more — billed in credits, with a cost estimate before anything runs.

Related tutorials