All skills
heygen-com avatar

/music-to-video

@ff6e210
by HeyGenheygen-com/hyperframes55k stars
4,998

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

Use this Skill: https://skilld.dev/gh/heygen-com/hyperframes/music-to-video

This session only. Nothing lands on disk.

referencestemplate-catalog.md

≈2.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Template catalog — the selection menu (Step 3)

Reverse-engineered, asset-free group templates. This file is the only thing the planner reads to pick one — you do not open the template's index.html to choose. One template realizes one group of a frame (a frame may stack several groups; the brand spine unifies them).

How to pick. For each group, read its frame's pacing + mood + the one-line music situation from the skeleton, then scan Reach for it when + Best span below and take the closest fit. If nothing fits, free-compose from motion-primitive-catalog.md — that is a first-class choice, not a failure.

Brand comes from frame.md, not the template. Templates ship their own demo palette (theme / palette / color params). Fill those params from the project's frame.md (the chosen preset's colors + fonts) so every group reads as one piece — the template supplies the motion + layout, the preset supplies the look.

Params are listed so you can fill content slots in the storyboard. Exact semantics + defaults live in each template's index.html (data-composition-variables) — the frame-worker reads those at build time; you only name the values.

Pacing tag: every template below is beat_cut except held-message-living-field (phrase_flow). Never put a beat_cut template on a phrase_flow frame.

Group duration discipline

Template choice is per group, not per frame. A frame longer than a template's Best span should usually split into multiple groups at real audiomap anchors (SURGE, DROP, roll edge, hard_stop, phrase edge) instead of stretching one template across the whole frame.

  • Best span below is the active treatment span: the part where the template's system is doing meaningful motion. A short readable hold at the end is fine; a long empty tail means pick another group.
  • Frames over ~6s usually need 2+ groups. Beat-cut exceptions are rich programs with real sub-phases (poster-tile-mosaic, sometimes card-flyby); phrase-flow exceptions use held-message-living-field.
  • Roll templates are one-roll tools. If a frame has two rolls or a drop between rolls, split it into two groups.
  • Do not extend by slowing every tween. Preserve the template's motion feel, then fill extra time with a hold / palette change / new group.

card-flyby

  • What — a depth column of cards rolls forward through perspective; each landing beat tumbles the next card into the front slot with a solid colored wipe, the old front falls toward camera, dwells shrink card-to-card so the deck accelerates into a held final card.
  • Reach for it when — a stream of discrete onsets that accelerate (gaps shrinking / a build into a downbeat) and you want to flash a sequence of items — titles, projects, posters, tiles — one per hit, climaxing on a held card.
  • Best span — 4-6.5s for 4-7 landings plus a short final hold; split at the next downbeat if it wants to run >7s.
  • Params — theme, bgColor, cards, landings, yaw

held-message-living-field · phrase_flow

  • What — a readable mark (logo / word / title) held dead still over a soft, color-shifting blurred field; only the field breathes.
  • Reach for it when — a calm / sparse stretch with an onset desert — energy present but few or no onsets (a held pad or riser); you have one word or mark to hold and let breathe.
  • Best span — 6-16s; this is the long-group exception. Under 4s feels underdeveloped; over ~20s needs a state change or another group.
  • Params — markText, titleText, tagText, palette, flowSpeed, duration

held-text-strobe-burst

  • What — a dead-still word whose letters flip through texture-filled frames (texture-clipped fill + per-frame tint + bg color) every ~3 frames, in short bursts pinned to a roll.
  • Reach for it when — a dense, hard-hitting roll / fill and a single word you want to strobe through textures for a few bars. (Ships texture-mask PNGs under assets/.)
  • Best span — 1.2-3.5s; strobe fatigue starts fast, so cap at ~4s and cut to a cleaner system.
  • Params — markText, fontStyle, markScale, idleColor, idleInk, frames, strobePlan, decor, duration

intro-kinetic-cascade

  • What — a line laid out as a sequence of big editorial phrases (each a stacked poster with one enlarged hero word), revealed word-by-word on its anchors, hard cut between phrases, climaxing on a phrase that slides in with a swappable ringing icon (bell / cursor / sparkle / emoji / SVG).
  • Reach for it when — an intro / opening statement: a short line to land word-by-word as big type, climaxing on one keyword + an icon. Medium-or-more energy, steady grid.
  • Best span — 3.5-7s for 2-4 phrase beats; if the statement needs more time, make the next clause a new group.
  • Params — theme, icon, phrases, climax

logo-split-lockup-pulse

  • What — a two-part mark joined at center splits left↔right to open a gap, grows a center word-lockup one word per onset (key word lands on the downbeat surge), snap-closes on a hit, then pulses with the beat.
  • Reach for it when — a short logo / brand sting (not a typed sentence): fast dense onsets + a sustained roll bed to pulse on, with a left/right bracketing mark.
  • Best span — 2-4s; at >4.5s it reads like a sting stretched too long. Follow with a separate held-lockup / next idea group.
  • Params — bgColor, markColor, textColor, leftMark, rightMark, word1, word2, word3, word4

poster-tile-mosaic

  • What — a packed mosaic of different-sized colored tiles that tessellate to fill the frame (no overlap), driven by interchangeable beat-synced operations: staggered enter/exit, locked global recolor, snake-fill + overlay.
  • Reach for it when — many discrete, individually-placeable onsets (a hit for every tile move) with distinct sub-phases you want articulated differently (accumulate → recolor-on-roll → fill-then-drop). A dense section best held as one rich tile program rather than split.
  • Best span — 4-7s, up to 8s only when the program has clear sub-phases. If the music changes regime, split even if the tile system could continue.
  • Params — bgColor, tiles, bands, gap, showText, labels, program

roll-flipbook-word-cycle

  • What — a hi-hat roll drives a centred word that flips every 16th-note through a word list; optionally the flicker resolves and locks into a final phrase.
  • Reach for it when — a fast sustained-fill roll (hundreds of hits/min, ~16th-note) with no single readable message — fill the roll with a rapidly-cycling word flipbook.
  • Best span — 1.2-3.8s, one roll into one resolve. Two rolls, or a drop between rolls, means two groups.
  • Params — bgColor, textColor, accentColor, flipWords, resolveText, periodChar

split-anchor-word-slot

  • What — a held left anchor column of fixed-word rows beside a torn-paper word-slot box on the right, driven by beat-synced operators: anchor lock-in, slot word-group cycle (in/out + per-line color), full-scene background flip, per-beat jitter, box-zoom exit wipe. Row count + number of flips are data.
  • Reach for it when — a short section with a held idea (a brand / name to anchor on the left) and a stream of onsets popping separate words on the right, plus a dense run to ride a shake on and a strong downbeat to wipe out into.
  • Best span — 3-6s; above ~6.5s the fixed anchor goes stale unless the right slot enters a new group/program.
  • Params — bgColor, anchors, theme, showText, program

typewriter-phrase-keyword-shuffle

  • What — words type in one-per-onset to spell a phrase, then one keyword cycles typefaces on the beat while everything else holds dead still.
  • Reach for it when — a steady grid with a continuous onset stream (no desert): a phrase to type out, then a keyword to shuffle. The inverse of held-message-living-field (which wants an onset desert).
  • Best span — 2.5-5s; if the phrase cannot type and shuffle inside ~5s, reduce words or split the sentence across groups.
  • Params — bgColor, textColor, accentColor, lead1, lead2, lead3, keyword, periodChar

Source: SKILL.md on GitHub

No alerts3d3 checks · Risk SAFE
  • Gen Agent Trust Hub3d

    The 'music-to-video' skill is a comprehensive workflow for generating beat-synced videos from audio tracks. It performs audio analysis, storyboard planning with user approval gates, and multi-frame rendering using HTML/JavaScript. The skill follows security best practices, including robust SVG sanitization to prevent XSS and local asset management. It uses well-known libraries and standard command-line tools for its operations.

  • Socket3d

    No alerts

  • Snyk3d

    Risk: LOW · No issues

Signed by skilld at ff6e210. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 14 hours ago.

Activeupdated 4 days ago

README badge

README badge for heygen-com/hyperframes/music-to-video