When to use
Use this when you need a script for a sub-60s vertical video (TikTok, Reels, Shorts) engineered for the first-2-second hook and high replay/completion. Best for single-point ideas.
Not for: long-form videos (use cc-video-script), multi-point tutorials that need chapters, or thumbnail/title work.
Method
- Pick one point. Shorts deliver exactly one idea; anything more loses completion. Decision point: if you have two points, make two shorts.
- Write the 2-second visual + verbal hook together. The first frame and first words must both stop the scroll — state the payoff or a pattern break, no runway.
- Front-load value; deliver the promised payoff by the halfway mark so the viewer stays for the "why."
- Pace in beats of 2-4 seconds; every beat changes something (angle, text, cut) to reset attention.
- Write on-screen text for sound-off viewing — it should carry the message even muted, and reinforce (not duplicate) the voiceover.
- Engineer a loop or a re-hook at the end so the video replays or the viewer rewinds. Decision point: end on a button (payoff/twist), not a slow "thanks for watching."
Example
Point: "Salt your pasta water more." Hook (0-2s), on-screen "You're doing this wrong" over a shot of bland pasta, VO: "Your pasta tastes flat and it's not the sauce." 0-8s: show under-salted water. 8-20s: the fix — "as salty as the sea," pour shot. 20-30s: taste reaction, on-screen "THIS is the difference." Loop: ends on "try it tonight and tell me" cutting back to the first shot.
Pitfalls
- A slow first frame or "hey guys, so today" intro — the scroll is gone by second two.
- Cramming multiple tips, which drops completion rate.
- On-screen text that just transcribes the voiceover instead of adding or emphasizing.
- Ending with a fade/outro instead of a loop or payoff button.
Output format
POINT (one idea): <...>
PLATFORM: <TikTok/Reels/Shorts>
[0-2s HOOK] VISUAL: <first frame> VO: <line> TEXT: <overlay>
[2-8s] VISUAL: <...> VO: <...> TEXT: <...>
[8-20s PAYOFF] VISUAL/VO/TEXT
[20-Xs] VISUAL/VO/TEXT
[END — loop/button]: <line that replays or lands the twist>
CAPTION: <hook line + 1 CTA> HASHTAGS: <3-5>