Tutorial · 8 min read
How to Script a 20 to 30 Second Instagram Reel
A 20 to 30 second Reel script has five beats: a hook in the first two seconds, one line of stakes, three short steps, one honest catch and a single call to action. At the roughly 2.5 to 3 spoken words per second of our own voiceovers, that is 60 to 80 words.
Why script a Reel at all?
A talking-head creator can wing a Reel because the face carries it. A faceless Reel has nothing to carry it except the plan. Words that run past their visual, a number that appears after it is spoken, a joke with no beat to land on: all of these come from not having a script with times on it. The good news is that the script is small. For 25 seconds you are writing 60 to 75 words.
We make a lot of short Reels from code (see how to make Reels without filming), and almost every defect we find comes from the script, not the render. Here is the structure we settled on.
How long should the Reel be, and how many words does that allow?
Instagram allows Reels of up to three minutes. Social Media Today reported on 18 January 2025 that the limit had doubled from 90 seconds, and that Instagram's advice was still not to post Reels longer than 90 seconds. That tells you the ceiling, not the best length. We looked for a study showing that 20 to 30 seconds outperforms 60 and did not find one, so please do not read our range as a finding. We use it because a short script has nowhere to hide, and because our own examples sit there.
Our own data, measured with ffprobe on 2026-10-30. White bars have on-screen text and sound effects only; green bars have a spoken voiceover. n = 7, all our own examples.
The two voiceover Reels give us a pace. The Paperclip script has 94 words in 32 seconds, which is 2.94 words a second. The Warm Cinema script has 82 words in 33.4 seconds, 2.45 a second, because it leaves room for pauses and numbers that appear on screen. Both are text-to-speech, and your own voice will differ, so treat 2.5 to 3 words a second as a starting budget and then read your script out loud with a stopwatch. For 25 seconds that is 62 to 75 words. For 30 seconds it is 75 to 90.
What are the five beats of a 20 to 30 second script?
Here is the skeleton with time boxes for a 25 second Reel. The percentages are loose; the order is what matters.
| Beat | Time | Job | Words |
|---|---|---|---|
| 1. Hook | 0 to 2 s | Say the pain or promise. Text, picture and voice agree. | 5 to 8 |
| 2. Stakes | 2 to 5 s | One line on why the viewer should care, in their words. | 8 to 12 |
| 3. Steps | 5 to 19 s | Three short steps, one idea each, one visual change per step. | 30 to 40 |
| 4. Honest catch | 19 to 22 s | The limit, cost or exception. It reads as trust, not weakness. | 8 to 10 |
| 5. One action | 22 to 25 s | A single ask. A DM keyword, "link in bio" or nothing. | 6 to 10 |
The honest-catch beat is the one people skip, and the one we would keep if we could keep only one. Our Warm Cinema Reel about a free voice model spends two seconds on "One honest limit. English sounds best." We think it works because it is the only thing in the Reel that the viewer cannot suspect is salesmanship. We have no data that it lifts any number, so it is a judgement. A related framework is Alex Kallaway's idea that an honest caveat can function as a deposit of trust, but this is our paraphrase of his videos and not a measurement.
How do you write the hook so it holds?
Kallaway's hook framework (our notes from his YouTube transcripts) gives four tests that we run on every opening line. The subject must be instantly clear. There must be a stake. It must be fast, meaning few words, and it must be unambiguous, meaning one possible reading. The part we use most is his point about alignment: the text on screen, the picture and the spoken line should all say the same thing, because a viewer who gets three different messages in the first second has to decide which to trust.
The hook patterns from our carousel analysis carry over. A command ("Stop posting every day") and a plain label are the easiest to say in two seconds. See our first-slide patterns for examples. For Reels we add two practical rules from rendering our own: show the hook text in the first frame, not after a fade, and keep it out of the bottom 380 pixels and right 120 pixels, which Instagram's interface covers. These are our working rules; Instagram has not published them as requirements.
A worked script, beat by beat
This is a fresh example on the topic of this blog, written to the structure above. It runs 25 seconds and 59 words, which is 2.4 words a second: a little under our band on purpose, because the numbered cards need air.
| Time | Spoken | On screen | What changes |
|---|---|---|---|
| 0 to 2 s | Stop posting every day. | STOP POSTING EVERY DAY (big, two lines) | Hard cut in; text snaps in on frame one |
| 2 to 5 s | Not because it is wrong. Because you run out of ideas first. | "You run out of ideas" | Text swaps; background colour shifts |
| 5 to 9 s | Step one. Pick one idea, not seven. | 1 ONE IDEA | Number counter appears; icon of a single card |
| 9 to 14 s | Step two. Make a carousel from it. | 2 ONE CAROUSEL | Card flips into a carousel stack |
| 14 to 19 s | Step three. Cut two short Reels from the same plan. | 3 TWO REELS | Two phone frames slide in |
| 19 to 22 s | The catch: they are three versions of one idea, so space them out. | THE CATCH: space them out | Calendar with gaps appears |
| 22 to 25 s | Want the plan? DM me PLAN. | DM ME PLAN | Hold on the keyword for the full 3 seconds |
Two checks on that script. Count the sentences: there are twelve, and every one lands a visual change. That is deliberate. In our renderer, if two beats compete inside one sentence, one of them steals the next sentence, and a card meant to show for a second shows for a fraction of one. The fix is the rule we use now: one beat per sentence. And count the pace: 59 words in 25 seconds is 2.4 a second. If you read it aloud and it feels slack, add one step, not more words per step.
What mistakes break the timing?
- A number at the end of a long sentence. If a counter counts up until the number is spoken, "three hundred and eighty" at the end of a twenty-word sentence leaves a wrong value on screen for seconds. Use short sentences for numbers, or show the number big and let the voice add meaning.
- Repeating the screen in the voice. If the card says "1 idea" and the voice says "one idea", viewers feel the redundancy. Let one carry the number and the other carry the meaning.
- Letting the speaker read words your voice cannot say. Our text-to-speech model read "POV" as one word, "pov", until we wrote it as P.O.V. Run your script through the voice before you build visuals.
- Calling the pace "fast" when the problem is compression. Cut words before you speed up speech. Rushed delivery is as bad as no hook.
- More than one ask. Pick the DM, the follow or the save. Not all three.
How do you know if the script worked?
Instagram's ranking has several inputs, and Adam Mosseri said in January 2025 (Social Media Today) that the top three are watch time, likes and sends. For Reels, Meta's developer reference lists metrics for average watch time and skip rate, which are the closest public measures of whether people stayed through your hook. Compare each of your Reels against your own median, not a benchmark, as we describe in our measurement guide. And remember that one idea can be a Reel, a carousel and a Story from the same script: see the repurposing workflow.
Write one script this week with a stopwatch beside you. If it runs long, cut the second step, not the hook.
Frequently asked questions
How long should an Instagram Reel be?
Instagram allows Reels up to three minutes since January 2025, but the report we read says its guidance remained not to go beyond 90 seconds. We found no study showing that 20 to 30 seconds wins. We use it because a short script is easier to make tight and to finish.
How many words is a 30 second Reel?
About 70 to 90 at our voiceover pace. Our 32-second example has 94 words (2.94 words a second) and our 33-second example has 82 (2.45). Read your own script aloud with a timer, because natural speech and text-to-speech differ.
What should the first line of a Reel be?
The pain or the promise in eight words or fewer, matched by the on-screen text and the first picture. Alex Kallaway calls the matching of text, visual and spoken hook triple-hook alignment.
Do I need to show my face?
No. Our example Reels use animated text, shapes and code-drawn art with either no voice or a text-to-speech voiceover.
What does Instagram measure about a Reel?
Instagram has said watch time, likes and sends are the top three ranking signals. Its developer reference also exposes metrics such as average watch time and skip rate, which are the ones to read after you publish.
The Content Engine researches a niche, writes post ideas and renders carousels (PNG) and reels (MP4) on your own computer. USD 67 one time, 7-day refund. It needs a paid Claude plan (Pro or higher), Node.js and FFmpeg, and we have tested it on Windows only.
See the Content EngineSources and our data
- Social Media Today, 18 January 2025: Reels up to three minutes; the article says Instagram's advice was still not to exceed 90 seconds
- Social Media Today, 22 January 2025: Adam Mosseri names watch time, likes and sends as the top three ranking signals
- Meta for Developers, Instagram Media Insights reference (lists ig_reels_avg_watch_time and reels_skip_rate among the metrics)
- Our own data: durations and word counts of the seven example Reels shipped with the Content Engine, measured with ffprobe on 2026-10-30 (15.0, 16.0, 16.0, 17.0, 17.0, 32.0 and 33.4 seconds; two have voiceovers of 94 and 82 words).
- Our own working rules from rendering Reels (a new beat every 1.5 to 2.5 seconds; keep key text out of the bottom 380 pixels and right 120 pixels). They are not published by Instagram.
- Alex Kallaway's hook framework: our notes from his YouTube transcripts, September 2026. A framework, not a statistic.
Go deeper: how The Content Engine works · pricing and the 7-day refund · compare the options · glossary of Instagram terms · all guides
Keep reading
Results vary. No promise of views, followers or income. The Content Engine is an independent product, not made or endorsed by Anthropic. Claude is named only as the tool it runs on.