cd /news/generative-ai/show-hn-a-music-video-made-end-to-en… · home › topics › generative-ai › article
[ARTICLE · art-151276] src=github.com ↗ pub= topic=generative-ai verified=true sentiment=↑ positive

Show HN: A music video made end to end by Claude Code, full production repo

A music video for the Suno song "Always Allow" was produced end to end by Claude Code across six sessions between 28 and 30 Sep 2026, using Midjourney v8.2 for stills, Seedance 2.5 for moving and singing shots, sync-2-pro for lip-sync repair, and Remotion for code-drawn graphics. The production consumed roughly 3,700 tool calls and 1.1 billion tokens and cost $76.60 across fal and OpenRouter, plus a Midjourney subscription, against a brief that paused paid calls at $150 and set a hard stop at $400. The 4:37 video is published on YouTube and X, with the full production repo including runlog.csv, ledger.csv, and song analysis files released alongside it.

read4 min views3 publishedOct 16, 2026
Show HN: A music video made end to end by Claude Code, full production repo
Image: Michielbdejong (auto-discovered)

The full production record for the music video to Always Allow, a Suno song sung by an AI agent asking for "Always allow". The video was made end to end by Claude Code in six sessions between 28 and 30 Sep 2026, with the owner giving notes at checkpoints. It follows the method behind @anabology's ESCAPE VELOCITY:

  • Midjourney v8.2 made every still, driven in the browser by Claude in Chrome.
  • Seedance 2.5 (through OpenRouter) made the moving and singing shots, each conditioned on its still and the exact slice of the vocal.
  • sync-2-pro (through fal) repaired the lip sync, and the result was measured afterwards, not judged by eye.
  • Remotion drew everything else in code, on the beat: every piece of type, UI, chart and transition, plus the print texture over the footage.

Watch the video (4:37) on YouTube or X. The video file itself isn't in this repo.

Nobody gave the agent a BPM. tools/analyze_song.py runs librosa's beat tracker on the MP3, keeps only the beats with kick and bass under them, and fits a smooth curve through those, because the tempo drifts between 133.97 and 134.43 BPM and a fixed grid would slip. Bar 0 is where the kick comes in at the first drop, and every 4th beat from there is a downbeat. The result, production/analysis/song.json, holds every beat and downbeat time. Everything in the compositor snaps to those times and to the word times in production/analysis/words.json, which come from force-aligning the lyric sheet to the vocal stem (wav2vec2, checked against Whisper).

  1. BRIEF.md : the instructions every session started from, including the spending limits and the fixed rules.
  2. PLAN.md : the song's section map, the first-pass treatment, the pipeline and the cost estimate.
  3. research/escape-velocity.md : how the reference video was made.
  4. LESSONS.md : what each session learned the hard way, from Midjourney's UI to Seedance's face filter. The other docs call itHANDOVER.md , its name during the run.
  5. production/storyboard/QA_NOTES.md : the decisions at each checkpoint, the agent's own and the owner's.
  6. production/runlog.csv andproduction/ledger.csv : what each session did, with its tool calls and tokens, and every paid API call.
  • 6 sessions, about 3,700 tool calls and 1.1 billion tokens (production/runlog.csv ).
  • $76.60 across fal and OpenRouter (production/ledger.csv ), plus a Midjourney subscription. The brief d paid calls at $150 and set a hard stop at $400.
  • 119 shots, 67 Midjourney plates, 31 Seedance clips (25 repaired with sync-2-pro), and 14 chapters of code graphics.
Always Allow.mp3, Lyrics (Suno).txt   the song and its Suno lyric sheet
BRIEF.md, PLAN.md, LESSONS.md         the brief, the plan, the lessons from each session
research/                             the reference video; lip-sync model research
tools/                                Python: song analysis, alignment, the Midjourney and Seedance pipeline,
                                      sync checks, depth, mattes, tracking, delivery
tests/                                tests for the paid-call guard, the clip loop and the closure check
production/
  analysis/                           song.json (beat grid, sections), words.json (word times)
  storyboard/                         STORYBOARD.md, shots.json, board.py, Midjourney prompts and manifest,
                                      sync reports, QA notes
  style/                              STYLE_BIBLE.md, casting and look tests
  comp/                               the Remotion compositor (see ANIMATION_GUIDE.md)
  ledger.csv, runlog.csv              spend per call; one row per session

Only the master MP3 is published. The Suno stems (production/stems/), the lip-sync test clips, the Midjourney plates, the Seedance clips, depth maps, mattes and renders are all left out, so the paths to them in the storyboard and sync reports point at nothing. Without them you can still rerun the song analysis, which reproduces song.json exactly, the tests and the lyric layout check. The studio falls back to storyboard cards where footage is missing. A full render needs the media.

  • Python 3.12 or 3.13:python -m venv .venv , then.venv/Scripts/python -m pip install -r tools/requirements.txt -r tools/requirements-avsync.txt . That coverstools/analyze_song.py and the tests (.venv/Scripts/python -m unittest discover -s tests ). Each heavier tool has its owntools/requirements-*.txt .
  • Node 22: inproduction/comp ,npm ci , thennpm run scan (it lists the media it finds and writes the git-ignoredsrc/data/*.generated.json ), thennpm run check:lyrics ornpm run studio .
  • Keys for the paid tools (FAL_KEY ,OPENROUTER_API_KEY ) go in.env , which is git-ignored.

The commands in the docs are written for Windows (.venv/Scripts/python); on macOS and Linux use .venv/bin/python.

The code and docs are under the MIT License (LICENSE). The song ( Always Allow.mp3) and its lyrics ( Lyrics (Suno).txt) aren't covered by it: all rights reserved.

── more in #generative-ai 4 stories · sorted by recency
── more on @claude code 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-a-music-vide…] indexed:0 read:4min 2026-10-16 · —