Get started
Video Ad Hook Checker — First 3 Seconds and CTA

Video Ad Hook Checker — First 3 Seconds and CTA

Check a short video ad script before it is recorded: does the opening line fit the first seconds, are your product and audience words there, is there exactly one call to action near the end, are the subtitle lines short enough. Python standard library only; reads text, calls nothing.
#Marketing
Rating
More ratings needed
Sold
0
How to use
Download

The first seconds of a short video ad are where scripts most often go wrong, and the faults are plain ones: an opening line that takes eight seconds to say, an opening that never names the product, two calls to action, a subtitle line too wide for the screen, a script ten seconds over its slot. Video Ad Hook Checker reads the script as text and measures exactly those points, the same way every time, before anyone records it.

Give it a script as a plain text file, JSON or a CSV with one script per row, plus (if you know them) the target length and the words that name your product and your audience. It prints a pass/fail table:

| Check | Result | Detail |
|---|---|---|
| hook-fit | PASS | first line ~2.0 s of a 3.0 s window (5 words) |
| hook-terms | PASS | product: sourdough; audience: busy, mornings |
| claims | PASS | none of 22 listed words found |
| cta | PASS | line 5 starts at ~11.2 s of ~12.8 s (88%) |
| subtitle | PASS | widest line 37 of 40 |
| duration | PASS | ~12.8 s against a 15.0 s target |
| structure | PASS | 5 lines, no empty or repeated lines |
| **Overall** | **PASS** | |

What it does:

  • hook-fit: can the first line be spoken inside the opening window (3 seconds by default)?
  • hook-terms: do your product and audience words appear in what is spoken inside that window?
  • claims: lists the lines that contain words you marked as needing evidence ("best", "guaranteed" and similar; the list is yours to edit)
  • cta: exactly one call-to-action line, starting in the closing part of the script
  • subtitle: no subtitle line wider than your limit; Japanese and other full-width characters count double
  • duration: estimated spoken length against your target seconds
  • structure: empty lines, the opening line repeated later, repeated lines, broken or mixed speaker marks
  • --compare: put a rewrite beside the original and see which checks improved, got worse or stayed the same
  • --timeline for the estimated start and end of every line; --json, --strict and an exit code (0 / 1 / 2) for scripts and agent loops
  • Your own limits in a small JSON settings file; unknown keys are rejected so a typo cannot silently fall back to a default
  • Works with English and Japanese scripts (Latin words and CJK characters are timed separately); a Japanese example is included
  • SKILL.md tells an AI agent when to run it, and lists the questions the tool cannot answer (one promise, does it work with the sound off, three rewrites of the opening) so the agent answers them itself and re-checks every rewrite with the tool

Honest limits, stated in the README: timings are estimates from reading speeds, not audio measurements; it does not check or claim to meet any ad platform's rules; it promises no results and cannot tell whether a claim is true; the default word lists are short general examples you should edit; it reads text only and never connects to an ad account, a model or the network.

What is inside

  • SKILL.md, README.md, LICENSE
  • scripts/hook_checker.py
  • tests/test_hook_checker.py (72 tests)
  • examples/: a passing script, a failing script, a rewrite, a Japanese script, a CSV of two scripts, a settings file and the real output of each
  • images/, listing/

Requirements and safety

Python 3.9+ and nothing else. The tool makes no network calls, needs no credentials and writes no files. It only reads the file you point it to.

License

Personal, non-transferable license for your own projects, including commercial work. No resale or redistribution.