Shortformer: Generating Genuinely Different Video Candidates, Not One Script Reworded
Shortformer takes a topic and generates several genuinely different short-form vertical videos — not one script rewritten five ways, but five different angles on the same idea, each with its own persona, script, and visual style. It's an internal tool, not a public product.
Most short-form content tooling automates the wrong step. It makes one video faster instead of testing more ideas. The actual bottleneck isn't production speed — it's not knowing which angle on a topic will land before you've already spent time producing it. So the tool generates several structurally different candidates per topic (myth-bust, listicle, contrarian take, how-to), reviews them side by side, and lets a human pick the one worth polishing in Remotion Studio before export.
Script generation runs on DeepSeek. B-roll comes from Pexels/Pixabay with a cached pool of candidate photos per keyword, so a batch doesn't reuse the same stock image across scenes. Voiceover comes from a free Microsoft Edge TTS wrapper with word-level karaoke captions. Final assembly happens in Remotion. Zero-config by design: it boots and produces a full video with no API keys at all, using mock scripts and gradient fallbacks, and each key you add unlocks a better tier. A startup log prints exactly which integrations are live versus running on fallback, so a missing key never fails silently.
The Bug That Actually Mattered
Not a rendering glitch. A factual one — a generated script stated an incorrect mortgage timeline as fact, and it made it most of the way to a finished candidate before anyone caught it. That's the real risk of an LLM writing short-form scripts at volume: a confidently wrong number looks identical to a confidently right one until someone checks. The fix was structural, not a one-line patch. Any on-screen statistic now has to be gated on real numeric data actually present in the input, never generated freely by the model. The more ordinary bugs — caption overlap, a voice/script mismatch, duplicate assets reused across candidates — got the same treatment: dedupe everything, and stop trusting a number the model didn't get from a real source.
Testing Infrastructure, Not a Product
This isn't a standalone content product — it's infrastructure for testing ideas cheaply before committing to them elsewhere. It already produces content scripts that feed directly into the CollectorHQ pipeline, which is the clearest example in this whole portfolio of one tool built for one property turning out to be useful for another. The actual goal is angle discovery: generate five different takes on a topic, see which one a human (or eventually, real engagement data) picks, and only then invest further.
Where It Stands
Twelve commits over about a week, moving fast from initial pipeline to a caught-and-fixed factual accuracy bug to a real content-quality pass. It's a live internal tool already producing usable output for at least one other property here — the next real test is whether the angle-testing premise holds up once there's engagement data to check the picks against, not just a human's gut call.
Frequently Asked Questions
- What is Shortformer?
- An internal tool that takes a topic and generates several genuinely distinct short-form vertical videos (Reels/TikTok/Pinterest-ready) — each with its own content angle, target persona, script, and visual style — reviewable in-browser and exportable as real MP4s with platform metadata.
- How is this different from a typical AI video generator?
- Most tools take one script and reformat it into several videos. Shortformer generates each candidate as a different content angle from the start — myth-bust, listicle, contrarian take, how-to — so what's being tested is which idea resonates, not which edit of the same idea does.
- What was the most important bug fixed in this build?
- A factual error in a generated script (an incorrect mortgage timeline claim) that made it through to a near-final candidate. The fix wasn't just correcting that one line — it was gating any on-screen statistic or claim behind real numeric data instead of letting the model state a number unsupported by the input.