DeanSPN/motion-reel

Claude Code skill for music-synced motion reels in Remotion: song analysis, a unique art direction every time, frame-level review and verified web deliverables.

★ 3Forks 0PythonGitHub ↗Compare

Project website ↗

claude-codeclaude-code-pluginlyric-videomotion-designmusic-visualizationremotion

README

motion-reel

A Claude Code skill that makes music-synced motion reels in code with Remotion: showreels, lyric videos, beat-synced edits and promos, set to a song you supply.

It reads the song before it designs anything. Beats, downbeats, sections, energy, kick and hi-hat hits and where the vocals sit all become data the reel is timed from, so big moves land on the song's real changes and quiet passages get room to breathe. Every reel starts from a treatment anchored in a specific real-world visual tradition, and that treatment is checked against a log of your earlier reels, so the next one can't quietly turn into the last one.

How it works

  1. Brief. Subject, song, length, aspect ratio, where it plays (a muted website loop, a social post with sound, or both) and any footage, images or logos. When the reel is for a named brand or site, it reads that site first: its copy, typefaces, colours and marks.
  2. Song. It analyses the whole track, maps where the vocals are, and picks an excerpt that carries the chorus. When the best material is in two places, it joins them on measured downbeats. Lyrics can go on screen from an .lrc file or a transcription.
  3. Treatment. A named visual reference sets the palette, type, motion and transitions. A list of banned defaults (beat-by-beat zoom punches, glitch transitions, grain and vignette on everything, word-by-word captions and more) keeps it away from the usual generated look, and the reel log rejects a treatment that shares too much with a recent one.
  4. Build. One Remotion composition, every frame a pure function of time, with cues addressed by bar and beat rather than hard-coded frame numbers.
  5. Review. Contact sheets and frame-by-frame strips around every cue, checked against the treatment, for legibility, collisions and sync.
  6. Render and deliver. A web MP4 (H.264, BT.709, faststart), a muted loop, a VP9 WebM and a poster, each decoded and checked: duration, audio, colour tags, background colour and the loop seam.

Install

In Claude Code:

/plugin marketplace add DeanSPN/motion-reel
/plugin install motion-reel@motion-reel

Or copy the skill folder by hand:

git clone https://github.com/DeanSPN/motion-reel
mkdir -p ~/.claude/skills
cp -R motion-reel/plugins/motion-reel/skills/motion-reel ~/.claude/skills/

Use

Ask Claude Code for a reel and give it the song:

Make a 60 second 16:9 reel for our website with this song, pick the best part with the chorus.

It asks for anything the brief is missing, then works through the steps above.

What's inside

plugins/motion-reel/skills/motion-reel/
├── SKILL.md            the workflow, design rules, banned defaults, review defects
├── reference/brand.md  discovery for reels made for a brand or site
├── scripts/
│   ├── analyze.py      beats, downbeats, sections, energy and hits into cues.json
│   ├── vocals.py       vocal phrase timings (never lyric text)
│   ├── lyrics.py       on-screen lyrics from .lrc or transcription
│   ├── cut.py          join stretches of a song on measured downbeats
│   ├── reel-log.mjs    the uniqueness log and treatment check
│   ├── sheet.py        paginated contact sheets for review
│   └── deliver.py      web deliverables plus decoded checks
└── template/           a bare Remotion project with cue helpers

Requirements

  • Claude Code. The skill runs your local toolchain.
  • Node.js and uv. The Python scripts pull their dependencies (librosa, faster-whisper, imageio-ffmpeg and a few more) on demand; nothing is installed system-wide, and a full ffmpeg comes from imageio-ffmpeg, so none is needed on the machine.
  • Remotion, installed per reel from the template. Remotion has its own license: free for individuals and small teams, while larger companies need a company license. See remotion.dev/license.
  • On a bare Linux server, Remotion's headless Chrome needs libnss3, fontconfig and at least one font package.
  • Music you have the rights to use. The skill works only from files you supply and never downloads a song.

The reel log lives at ~/.claude/motion-reel/log.json.

License

MIT, for the skill's own text and code. See LICENSE.

Contributors

DeanSPN

Issues