Talking-Head Footage
→ Viral 9:16
Automatically.
A Python CLI that turns raw talking-head video into vertical clips, with face tracking, punch zoom, word-level captions and loudness-normalised audio, in one command.
One Command.
Six Stages.
Every step is deterministic, testable in isolation, and configurable via CLI flags.
Extract & Detect Speech
Word-Level Timestamps
Face Tracking
Crop & Punch Zoom Plan
ASS Caption Burn
FFmpeg Render & Loudnorm
Built for Reliability.
Automatically centres the 9:16 crop on the detected face. Falls back to centre crop when no face is present.
Adds slow-zoom punch-in effects at strategic moments to increase retention without looking artificial.
Word-level timestamps from Whisper drive 3–5 word caption groups with an active-word highlight that tracks speech.
WebRTC VAD detects and cuts silent sections. --silence-gap flag controls the minimum gap to cut.
EBU R128 loudness normalisation applied per-segment and on the final output. Consistent audio across all clips.
Unit tests cover every module. Automated CI runs on every push. Zero suppressed warnings.
Built on Proven Tools.
V2 Complete.
All V2 modules are shipped. V3 (smart tracking, AI-guided cuts) is on the roadmap.
Security Posture, Measured Live
A tool that touches your video files has to answer this before it asks for them. Here is what this origin actually does, read out of the page you are reading right now by your own browser. Open devtools and check any line of it.
- Third-party origins loaded
- 0
- No fonts, analytics or tag manager loaded from another host
- Cookies set
- 0
- No consent banner, because there is nothing to consent to
- Browser storage entries
- 0
- Nothing written to localStorage or sessionStorage
- Content Security Policy
- default-src 'self'
- No unsafe-inline, no unsafe-eval, no external origin permitted
- HTTPS enforcement
- 2-year
- Strict-Transport-Security with includeSubDomains
- Capabilities denied
- 9
- Camera, microphone, geolocation, payment, USB and ad-topics APIs
The values above are the ones we ship. With JavaScript enabled they are replaced by what your own browser actually observed, measured at —. A row turns red if reality disagrees with us.
Contact
Questions, feedback or integration requests: write to us.
contact@lpagesapplabs.com