---
url: https://superduperai.co/library/promo-script-30-45-seconds-template/
title: The 30-45 second promo script: hook, problem, demo, CTA with timings
description: A fill-in script template for a vertical product promo: four blocks with second counts and a 75-100 word narration budget, so the video ends before the viewer scrolls.
category: scripts
platforms: [tiktok, reels, shorts]
works_with: [claude-code, claude, chatgpt, any-llm]
tags: [promo, script, template, timing, product-video, vertical]
difficulty: beginner
verified: false
created: 2026-11-01
skill: video-promo
---

# The 30-45 second promo script: hook, problem, demo, CTA with timings

A fill-in script template for a vertical product promo: four blocks with second counts and a 75-100 word narration budget, so the video ends before the viewer scrolls.

## Prompt

```text
Write a 30-45 second promo script for {product} aimed at {audience}. The viewer should {goal: download / sign up / visit URL} after watching.

Format: vertical 9:16, screen recording plus text overlays, no actor. Narration budget: 75-100 words total.

Use exactly this structure with these timings:

HOOK (0:00-0:03)
Audio: one line, a question or a bold statement, max 12 words.
Visual: text overlay on a blurred or gradient background.

PROBLEM (0:03-0:10)
Audio: the pain in the user's own words, max 20 words.
Visual: the frustrating current state (the manual process, the mess before).

DEMO (0:10-0:25)
Audio: narrate what the product does, max 45 words.
Visual, three shots of 5 s each: Shot 1 {feature 1}, Shot 2 {feature 2}, Shot 3 the wow moment, {the differentiator}.

CTA (0:25-0:30)
Audio: one call to action, max 12 words, name the place to go.
Visual: logo, URL, download badge.

After the script, count the words of each Audio line and the total, and flag any block over budget.
```

## Steps

1. Fill product, audience, goal and the three features before you paste. If you cannot name three features, you have two and the script gets shorter, not vaguer.
2. Read the Audio lines aloud with a stopwatch. 75-100 words lands in 30-40 seconds at a normal pace; at 120 words, cut the problem block first.
3. Record the three demo shots as separate files named by block (demo-1.mp4, demo-2.mp4, demo-wow.mp4), then assemble.

## Example

HOOK (0:00-0:03)
Audio: "Your phone is full of video nobody will ever watch."
Visual: camera roll scrolling fast, blurred, white text over it.

PROBLEM (0:03-0:10)
Audio: "Editing takes an evening. So the clips sit there. For years."
Visual: a timeline with 200 clips, the cursor hovering, nothing happening.

DEMO (0:10-0:25)
Audio: "Drop in a folder. It scores every frame, finds where the scenes change, and cuts a film to the length you ask for. On your Mac. Nothing uploaded."
Shot 1: import, a progress bar. Shot 2: the scene list appears. Shot 3: the montage plays.

CTA (0:25-0:30)
Audio: "Life2Film Studio. Free beta at life2film.com."
Visual: logo, URL.

Total: 71 words.

## Tips

- In Claude Code, `/video-promo` reads the project's PRD and README, picks the three features, writes this script and a storyboard to docs/video-promo.md.
- The DEMO block is half the video. If the wow moment is not obvious on a muted phone screen, it is not the wow moment.

## Works with

- Claude Code: Runs as a skill or a prompt in the terminal; can read your files and write the result.
- Claude: Paste into claude.ai or the Claude app.
- ChatGPT: Paste into ChatGPT; works with any GPT model.
- Any LLM: Model-agnostic: Gemini, Mistral, a local model.
