| name | agentforge-promo-video |
| description | Build and iterate technical product promo videos with Remotion and Playwright using frame-accurate timelines, automated screenshot/clip capture, macOS say voiceover generation, bilingual subtitle sync, and production QA gates. Use when creating a new promo video, refreshing existing promo assets, fixing audio/subtitle timing, or upgrading visual quality (QHD/4K) for stakeholder demos. |
AgentForge Promo Video
Overview
Create repeatable product promo videos for technical decision makers with deterministic timing and verifiable capture quality.
Follow This Workflow
- Define the narrative contract.
- Lock audience, tone, language, duration target, and 3-4 core messages.
- Keep one timing source of truth in a dedicated timeline file (
*Timeline.ts).
- Build a sentence-level script.
- Write short English lines for narration (10-18 words each).
- Write paired Chinese lines only for subtitle overlay.
- Prefer sentence boundaries that map cleanly to scene switches.
- Capture assets with Playwright.
- Force English locale and light theme before every capture.
- Capture both static PNG screenshots and WebM operation clips.
- Reject captures that include non-content Chinese in UI chrome.
- Compose in Remotion.
- Register composition in
Root.tsx with explicit width/height/fps.
- Organize scenes with
Sequence and shared containers (for consistent spacing/background).
- Use click highlight overlays only; avoid fake cursor trails.
- Generate voiceover and timings.
- Use
scripts/build_voiceover.py for line-level macOS say synthesis.
- Produce merged audio (
.wav) plus line-level timings.json.
- Map timing JSON to frame ranges in the timeline file.
- Sync and polish.
- Hold scene transitions until the sentence end; do not cut mid-sentence.
- Keep 0.2-0.6s visual breathing room after key statements.
- Tune subtitle box width/font size to avoid line wrapping spikes.
- Render and QA.
- Render draft with placeholders, then final with real media.
- Confirm resolution, subtitle sync, voice rate, and key-message coverage.
Reusable Principles
- Drive all motion and subtitles by frame math, not by best-effort runtime events.
- Keep one timeline data file for durations and subtitle ranges.
- Separate capture tooling (Playwright) from composition logic (Remotion).
- Standardize outputs so assets can be replaced without code rewrites.
- Preserve realism: show real UI states and true interaction intent.
Resource Map
- Voiceover script:
scripts/build_voiceover.py
- Workflow details and command templates:
references/workflow-checklist.md
- Stack and architecture patterns:
references/tech-stack.md
- QA acceptance gates:
references/quality-gates.md
- Optimization and extension roadmap:
references/optimization-roadmap.md
Load only the reference file needed for the current task.
TODO (Maintenance Backlog)