> ## Documentation Index
> Fetch the complete documentation index at: https://docs.videngineer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Script analysis

> The 7-element narrative skeleton: hook, re-hooks, hero's journey, beats, CTAs, phrases, and voice-over.

Script analysis answers: **how is the story told, structurally?** The engine extracts the video's narrative *skeleton* — the reusable shape another creator could pour a different idea into — rather than summarizing its content. The skeleton has seven elements: **Hook · Re-hooks · Hero's Journey · Beats · CTAs · Phrases · Voice-over.**

<Frame caption="The Script tab on a live teardown — the opening hook (typed and scored) plus the beat sheet.">
  <img src="https://mintcdn.com/videngineer/xzKDutij2z2tdFvi/images/script-analysis.png?fit=max&auto=format&n=xzKDutij2z2tdFvi&q=85&s=abda8ddec3bf47a12416e71fc1fde6b1" alt="Script analysis showing a quoted hook with type and strength, and a timestamped beat sheet" width="1540" height="1414" data-path="images/script-analysis.png" />
</Frame>

*Live example: [Coinbase — 'Break The Cycle' teardown](https://videngineer.com/teardowns/cinematic/coinbase-break-the-cycle-manifesto-teardown/), The Script tab.*

## The 7-element skeleton

### `hook`

The opening move, quoted verbatim from the transcript.

| Field                   | What it holds                                                                            |
| ----------------------- | ---------------------------------------------------------------------------------------- |
| `start_sec` / `end_sec` | Where the hook runs (typically the first 10–30 seconds)                                  |
| `text`                  | The verbatim hook line, max 25 words                                                     |
| `type`                  | `promise` \| `contradiction` \| `big-claim` \| `question` \| `cold-open` \| `story-open` |
| `strength`              | 1–10, a content-based score of how hard the open earns attention                         |

Hooks get a full page of their own — see [Hooks & re-hooks](/layers/hooks).

### `rehooks`

Every point where the video re-earns attention after the open:

| Field      | What it holds                                                            |
| ---------- | ------------------------------------------------------------------------ |
| `at_sec`   | When the re-hook fires                                                   |
| `text`     | The verbatim line                                                        |
| `function` | `reopen-loop` \| `raise-stakes` \| `pattern-interrupt` \| `new-question` |

### `heros_journey`

The story spine in five slots: `who` (the protagonist), `want` (what they're chasing), `obstacle` (what's in the way), `turn` (the moment it breaks), `resolution` (what's different at the end — `null` when the ending is deliberately open).

### `beats`

The timestamped beat sheet. Each beat: `start_sec`, a `label` from **Hook · Setup · Authority · Proof · Re-hook · Reveal · Counter · Resolution · CTA**, and a one-sentence `summary`. The beat sequence is the skeleton you can lift most directly — same beats, your content.

### `ctas`

Two slots, `soft` and `hard`, each with `at_sec`, the verbatim `text`, and a `type` — soft CTAs are `comment` / `save` / `like` / `share`; hard CTAs are `subscribe` / `link` / `product` / `sub-channel`. Where the CTAs sit relative to the beats tells you how aggressive the video's conversion logic is.

### `phrases`

Repeated verbal tics: `text`, `count`, and `function` (`branded-callback` | `emphasis` | `filler` | `signature`). Signature phrases are part of a channel's format — worth noticing, never worth reusing verbatim.

### `vo`

Voice-over delivery: `tone`, `pace_wpm`, `pauses` (`minimal` | `moderate` | `dramatic`), `is_ai_voice`, and a short cadence note. Useful for casting and for briefing a voice artist — or for deciding whether an AI voice is viable in your niche.

## Structure match

The extracted skeleton is compared against **68 known storytelling skeletons curated from 71 outlier channels**. You get `best_match`, a `confidence` score, `why_it_fits`, `what_doesnt_fit`, an `alternative_match`, and example channels that use the same skeleton — so you can see the pattern working elsewhere before you commit to it.

## Bend it

From the app you can pour your own topic into the extracted skeleton. The engine inherits the structure — hook style, re-hook cadence, beat sequence, CTA placement, VO tone — and writes fresh language for your idea. Two hard rules are enforced: the structure carries over, the wording never does.

## Diagnostic fields

Alongside the skeleton, the analysis keeps a set of diagnostic reads: `hook_strength`, `emotional_arc`, `pacing`, `content_patterns`, `script_style`, `virality_signals`, `key_topics`, `narrative_summary`, `cta_present`. [Reading script analysis](/scriptwriters/reading-script-analysis) is the working guide to those fields — what each value means and when to trust it.

## What to do with it

* **Start with the beat sheet.** Count the beats, note the labels and their timing, then write your script into the same slots. That's the fastest path from teardown to draft.
* **Match re-hook cadence, not re-hook lines.** If the reference re-hooks every 20 seconds, your script needs a reason to keep watching every 20 seconds — the specific lines must be yours.
* **Check the CTA placement before the CTA copy.** A soft CTA at the midpoint and a hard CTA at the close is a different machine than a single hard close.

## Related layers

<CardGroup cols={2}>
  <Card title="Hooks & re-hooks" icon="anchor" href="/layers/hooks">
    The attention machinery, in depth.
  </Card>

  <Card title="Reading script analysis" icon="book-open" href="/scriptwriters/reading-script-analysis">
    The diagnostic fields, value by value.
  </Card>

  <Card title="Scorecard" icon="gauge-high" href="/layers/scorecard">
    How the execution rates for its format.
  </Card>

  <Card title="What it's selling" icon="bullseye" href="/layers/what-its-selling">
    The format and meaning layer this skeleton serves.
  </Card>
</CardGroup>
