Blog

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.

TL;DR: Write backwards from the one action you want. Budget about 2.5 to 3 words per second, give every sentence one visual change, and make the on-screen text, the picture and the first spoken line say the same thing. We found no published rule that short Reels perform better, so 20 to 30 seconds is our choice, not a law.
A Reel script is the timed plan for a short vertical video: the words spoken, the words shown, and what changes on screen at each moment. For a faceless Reel it is the whole creative decision, because there is no performance to fall back on.

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.

Duration of our seven example Reels, in secondsBars: Minimal Mono 15.0; Pixel Arcade 16.0; Volt 16.0; Pixel Arcade faceless 17.0; Studio Pop 17.0; Paperclip (voiceover) 32.0; Warm Cinema (voiceover) 33.4.Minimal Mono (text)15.0 sPixel Arcade (text)16.0 sVolt (text)16.0 sPixel Arcade faceless (text)17.0 sStudio Pop (text)17.0 sPaperclip (voiceover)32.0 sWarm Cinema (voiceover)33.4 s

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.

BeatTimeJobWords
1. Hook0 to 2 sSay the pain or promise. Text, picture and voice agree.5 to 8
2. Stakes2 to 5 sOne line on why the viewer should care, in their words.8 to 12
3. Steps5 to 19 sThree short steps, one idea each, one visual change per step.30 to 40
4. Honest catch19 to 22 sThe limit, cost or exception. It reads as trust, not weakness.8 to 10
5. One action22 to 25 sA 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.

TimeSpokenOn screenWhat changes
0 to 2 sStop posting every day.STOP POSTING EVERY DAY (big, two lines)Hard cut in; text snaps in on frame one
2 to 5 sNot because it is wrong. Because you run out of ideas first."You run out of ideas"Text swaps; background colour shifts
5 to 9 sStep one. Pick one idea, not seven.1 ONE IDEANumber counter appears; icon of a single card
9 to 14 sStep two. Make a carousel from it.2 ONE CAROUSELCard flips into a carousel stack
14 to 19 sStep three. Cut two short Reels from the same plan.3 TWO REELSTwo phone frames slide in
19 to 22 sThe catch: they are three versions of one idea, so space them out.THE CATCH: space them outCalendar with gaps appears
22 to 25 sWant the plan? DM me PLAN.DM ME PLANHold 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?

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 Engine

Sources and our data

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.