Turn any landscape video into vertical 9:16 clips — with resizable angles. Load a podcast, interview, or any long-form recording, mark the moments worth posting, frame each one with a draggable aspect-locked crop box (or two, stacked, for interviews), watch the result live on a phone-shaped preview, and export ready-to-post 1080x1920 MP4s. All of it runs locally on your machine — no cloud, no upload, no watermark.
Pay once. Own it forever. No subscription. Try it — if it's not for you, email support@onetimesuite.com within 30 days for a full refund.
Third app in the Bloom family, alongside BloomRecorder (screen/camera recording) and Bloom Meeting (remote multi-guest recording). Bloom Clipper automatically lists videos from their libraries as clip sources.
Clipper
- Any source video — open any MP4/WebM/MOV/MKV, or pick straight from your
Videos/BloomRecorderandVideos/BloomMeetinglibraries (thumbnails included) - Cut marking — scrub the timeline, hit Set start / Set end, + Add cut; every cut is an editable row (tweak start/end to the tenth of a second, preview in place, delete)
- Full 9:16 angle — one aspect-locked crop box over the source: drag to move, drag the corner to zoom, with a live zoom readout
- Half 9:16 angle — for interviews: two aspect-locked 9:8 boxes (one per speaker); the render stacks angle 1 on top of angle 2 to fill the vertical frame
- Phone preview — a live phone mock on the right shows exactly what the rendered 1080x1920 clip will look like, per cut, while you drag
- Per-cut angles — every cut remembers its own mode and framing; switching Full/Half never loses your work
- Export — every cut renders to
<source-folder>/clips/<source>-clip-<n>.mp4(1080x1920, H.264 + AAC, faststart) with per-clip progress; audio is the source's own audio for that range
Library + local AI editing (shared with the rest of the Bloom family — all fully offline, no API keys)
- Local library with thumbnails, sort/filter, rename, multi-select, batch delete
- MP4 / optimized two-pass GIF export with trim
- Captions — local Whisper transcription (quantized, ONNX) burned in with drag-to-position placement and 4 styles
- Remove Silences — detect quiet gaps, review/trim/undo each one, cut in a single pass
- Edit Transcript — Descript-style: delete words or pauses from the text to cut the video
- Make Viral Reels — local heuristic that finds hook moments and auto-cuts vertical clips
And
- 100% local — zero telemetry, zero network calls, zero accounts
git clone https://github.com/bensblueprints/bloomclipper
cd bloomclipper
npm ci && npm startnpm test # ffmpeg pipeline smoke test + clipper unit tests
npm run test:unit # just the clipper-core unit tests (node --test)
node scripts/clipper-render-test.js # end-to-end: synthesizes a 1920x1080 source, renders one full and one half+half cut through the real app, verifies 1080x1920 outputnpm run dist # Windows NSIS installer
npm run dist:mac # macOS DMG (see MAC-BUILD.md)- Crop boxes are stored as fractions of the source frame (
xPct,yPct,wPct) with height locked to the mode's ratio — the same convention as BloomRecorder's Scaled Angles. - Full mode:
crop=w:h:x:y,scale=1080:1920,setsar=1 - Half mode: each box is cropped and scaled to
1080x960, then stacked —[0:v]crop=…,scale=1080:960,setsar=1[top];[0:v]crop=…,scale=1080:960,setsar=1[bottom];[top][bottom]vstack=inputs=2[v] - All pure logic (cut validation, percentage → pixel crop geometry, ffmpeg args) lives in
clipper-core.js, unit-tested withnode --test.
- Electron — main + preload + renderer, context isolation on
- ffmpeg-static — bundled ffmpeg for all rendering, thumbnails, probing, silence detection, and caption burn-in
- @huggingface/transformers (ONNX runtime, Node) — quantized Whisper running fully locally for captions, reels, and the transcript editor
- Plain HTML/CSS/JS renderer — no framework, boots instantly
Rendered clips land in a clips/ folder right next to the source video. The app's own library lives at %USERPROFILE%\Videos\BloomClipper (or your platform's Videos folder).
MIT © 2026 Ben (bensblueprints)
See MAC-BUILD.md.
