Quick Start¶
1. Clone and configure¶
git clone https://github.com/klojtas/claude-hyper-frames-test.git
cd claude-hyper-frames-test
cp .env.example .env
Edit .env and set your ElevenLabs API key:
2. Run the build¶
This will:
- Read the
SCENESlist defined inbuild.py - Call ElevenLabs for each scene →
video/hf/audio/NN_<id>.mp3
(skips any file that already exists and is non-empty — cached) - Probe each audio file for duration with
ffprobe - Compute per-scene timing (lead pad + audio + trail pad, with crossfade overlap)
- Emit
video/hf/scenes/NN_<id>.html— one self-contained HyperFrames block per scene - Emit
video/hf/index.html— slim host with<audio>elements and block includes
Expected output:
00_intro.mp3 14.45s
01_llm.mp3 28.87s
...
06_outro.mp3 15.05s
wrote scenes/00_intro.html
...
wrote scenes/06_outro.html
wrote /path/to/video/hf/index.html
total duration: 182.57s (7 scenes)
3. Render to video¶
The first run installs hyperframes via npm and downloads a Chromium binary (~170 MB, one time). Then it renders all 5478 frames across 4 parallel workers.
Expected duration: 3–5 minutes on a modern machine.
4. Play the video¶
Making changes¶
To change content, edit SCENES in video/hf/build.py, then re-run steps 2 and 3.
To regenerate audio for a specific scene only, delete its MP3 first:
See Configuring Scenes for the full scene schema.