Instagram Reel Script Extractor — AI Hook, CTA & Beats avatar

Instagram Reel Script Extractor — AI Hook, CTA & Beats

Pricing

from $2.50 / 1,000 videos

Go to Apify Store
Instagram Reel Script Extractor — AI Hook, CTA & Beats

Instagram Reel Script Extractor — AI Hook, CTA & Beats

Break Instagram Reels down into a reusable script with AI: hook and why it works, beats with what is on screen, call to action, topic, format and a fill-in script template, plus our timestamped transcript. No login.

Pricing

from $2.50 / 1,000 videos

Rating

0.0

(0)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Instagram Reel Script Extractor turns a public Instagram Reel into a reusable script: the hook and why it works, the beats with what is on screen in each one, the call to action, topic, format, audience and a fill-in script template — the full viral reel breakdown, written by AI, next to our own timestamped transcript. Paste Reel links or a profile, press Start, get one row per Reel. No login, no cookies, no API key.

How it works, honestly: the AI does not "watch" the video as a film. We take one frame every 2 seconds (at most 12 per Reel), send those frames to the model together with our own speech-to-text transcript and the caption, and the model writes the breakdown. That is why it catches on-screen text hooks and visual hooks that audio-only tools miss.

Tested head-to-head — 24 October 2026

Reel script Actors tested on the same 3 public Reels: this Actor returned a full breakdown for all 3 with why the hook works and a fill-in script template, at $0.059 per Reel on the Free plan

The same three public Reels (10 s, 24 s and 61 s) through the most-used Reel transcript Actor and the three most-used Reel script-breakdown Actors on the Apify Store, each on its default settings with its breakdown switched on.

This ActorThe four others
Script breakdown for all 3 ReelsYes2 of 4 (one gives a transcript only, one stopped at 2 Reels on the Free plan)
Says why the hook worksYes1 of 4
Fill-in script templateYes0 of 4
Price per Reel with a breakdown, Free plan$0.059$0.066–$0.10

What is Instagram Reel Script Extractor?

A reel script extractor and reel hook analysis tool for marketers, creators and agencies who study what works and want to reuse it. For every Reel you get:

  • the hook — its words, where it comes from (speech, on-screen, visual, caption), its type (question, statement, number, how-to, pov, shock, story) and why it works;
  • beats — 2 to 8 consecutive parts with start and end seconds, a label (hook, setup, value, proof, twist, cta, outro), what is on screen and what is said;
  • the call to action and its type (link_in_bio, follow, comment, dm, book, shop, save, share);
  • topic, format, audience, emotion, whether the audio is a song rather than the author talking, and the text the model reads on the frames;
  • a script template with [placeholders] you can fill in for your own brand;
  • our transcript with timestamps, language, author, likes, comments, caption and publish date.

Need only the transcript, at $0.003 per Reel plus seconds of speech? Use our general Instagram Reels Transcript Scraper — same engine, the AI breakdown off by default. This Actor is the same engine with the AI breakdown on, because here it is the product.

What data does it extract?

FieldWhat it holds
ai.hooktext, source, type, whyItWorks
ai.beats[{startSeconds, endSeconds, label, visual, text}]
ai.ctatext, type
ai.topic, ai.format, ai.audience, ai.emotionOne line each, in English
ai.scriptTemplateThe script as a fill-in template
ai.speechIsSongTrue when the audio is song lyrics
ai.onScreenTextLines of text the model reads on the frames, verbatim
transcriptText, transcriptOur speech-to-text, plain and as timestamped segments
firstThreeSecondsSpeechWhat is said in the first 3 seconds
hookText, ctaText, beats, wordsPerMinuteRule-based hook, CTA and timeline (no AI), free
author, likes, comments, caption, hashtags, mentions, postedAt, durationSeconds, languageReel details
viewsPlay count — filled when you give a profile (Instagram shows it in the profile's Reels tab); empty for single Reel links
vsAuthorMedian, isOutlierHow the Reel did against the author's usual (4+ Reels of one author in a run)
aiModel, aiErrorThe model used, and why a breakdown is missing when it is
chargedEvents, chargeUsdWhat this row cost you

Spoken and on-screen words are quoted in the Reel's own language; descriptions are in English.

Real output, shortened

A 10-second Reel of a brow artist (run of 24 Oct 2026, DckEW9NNVsJ):

{
"url": "https://www.instagram.com/reel/DckEW9NNVsJ/",
"durationSeconds": 10.4,
"ai": {
"hook": { "text": "Some people call me Kara", "source": "on-screen", "type": "statement",
"whyItWorks": "The on-screen text opens with a name intro that feels personal and curiosity-sparking — viewers wait to learn what the name is for, while the walking selfie keeps the frame moving so they stay." },
"beats": [
{ "startSeconds": 0, "endSeconds": 3, "label": "hook", "visual": "Handheld selfie walking past a modern building…", "text": "Some people call me Kara" },
{ "startSeconds": 3, "endSeconds": 5.5, "label": "setup", "visual": "She keeps walking, adjusts sunglasses…", "text": "Some people call me Kara Ann" },
{ "startSeconds": 5.5, "endSeconds": 8, "label": "value", "visual": "She turns, smiles, and waves at the lens", "text": "But you can call me when you want the best brows" }
],
"cta": { "text": "Link in bio to book", "type": "link_in_bio" },
"topic": "Brow artist personal branding / booking intro",
"format": "Talking-text selfie walk with name-and-nickname wordplay",
"scriptTemplate": "Some people call me [formal name]. Some people call me [nickname or full name]. But you can call me when you want the [your signature result / service]. 🔗 Link in bio to [booking action]. 📍[city]",
"speechIsSong": true,
"onScreenText": ["Some people call me Kara", "Some people call me Kara Ann", "But you can call me when you want the best brows"]
},
"transcriptText": "In a room full of people I look for you Would you avoid me or would you look for me too?",
"author": "themidwesti", "likes": 8092, "comments": 111,
"aiModel": "deepseek-flash", "aiError": null
}

Note what happened there: the audio is a song, so a transcript-only tool would call the lyrics the "hook". The breakdown sees the text on the frames and says the hook is on screen.

A 24-second National Geographic Reel (De1S3KpCXf0) came back with the hook "You are looking at nudibranchs." (source speech), six beats, on-screen title "My Love Letter to Nudibranchs" and the call to action "Which animal do you want to see next?" (type comment).

How much does it cost?

Pay per event, no subscription, no fee per run.

EventFree planBronzeSilverGold and above
ai-analysis — the AI script breakdown of one Reel$0.05$0.045$0.04$0.035
reel-processed — one Reel: transcript, details, rule-based hook$0.003$0.0028$0.0026$0.0025
audio-10-seconds — each started 10 seconds of speech recognised$0.0015$0.0014$0.0013$0.0012
on-screen-text — optional exact OCR of burned-in text (off by default)$0.06$0.054$0.048$0.042

What a Reel costs with the default settings (AI on, OCR off):

Reel lengthFree plan, per ReelPer 1,000 ReelsGold, per 1,000
No speech (music only)$0.053$53$37.50
15 s$0.056$56$39.90
30 s$0.0575$57.50$41.10
60 s$0.062$62$44.70
90 s$0.0665$66.50$48.30

Never charged: private, deleted or broken links, Reels above your duration limit, and a breakdown that fails — the row then carries aiError and the ai-analysis event is not taken. Every row shows in chargedEvents and chargeUsd exactly what it cost.

How to break down a Reel

  1. Click Try for free.
  2. Paste Reel links into 🔗 Instagram Reel URLs (or a profile into 👤 Instagram profiles). The form comes with a working example.
  3. Press Start. Open the AI breakdown tab of the results: hook, hook type, why it works, CTA, topic, format, audience, emotion and the script template, one row per Reel.

⬇️ Input

{
"videoUrls": ["https://www.instagram.com/reel/DckEW9NNVsJ/"],
"aiAnalysis": true,
"includeOnScreenText": false
}
  • 🔗 Instagram Reel URLs — instagram.com/reel/... links. TikTok and YouTube Shorts links work too.
  • 👤 Instagram profiles — a profile link or a username (natgeo) gives its newest Reels, up to 12 (all Instagram shows without a login). A TikTok @handle or a YouTube channel also works.
  • 🤖 AI script breakdown — on by default. Switch off and you get only the transcript and the rule-based fields.
  • 🖼️ Exact on-screen text, frame by frame — off by default, because the AI already reads text on its frames. Switch on when you need every burned-in line with timestamps (OCR at 1.5 frames per second); the AI then gets that text too.
  • 📈 Compare with the author's usual — with 4+ Reels of one author in a run, each Reel gets vsAuthorMedian and isOutlier (3× the author's median likes or more). Free.
  • Also: maximum Reels per run, only Reels newer than a date, only Reels not processed before (for schedules, with separate watch lists), a time limit, a free summary row, and links taken from another Actor's dataset.

⬆️ Output

One row per Reel in the dataset, three table views: AI breakdown (opens first), Overview and Hooks and calls to action. A link that fails gives a free row with type: "error", errorCode and a plain-English errorMessage. Export as JSON, CSV, Excel or HTML, or read it through the API.

Use cases

Swipe file of hooks

Run a competitor's profile once a week with only new Reels on and collect every hook, its type and why it works in one sheet.

Script templates for your own Reels

Feed scriptTemplate and beats to your writer or to your own LLM and adapt the structure that already worked.

Viral reel breakdown for clients

Agencies: put a client's best Reels (isOutlier: true) next to their weakest and show in the beats where attention drops.

AI agents and RAG

Each row is clean JSON with the transcript and the structure apart, ready for an index or an agent's context.

Integrations

Run it from the Apify API, the Python or JavaScript client, Make, Zapier, n8n or Google Sheets, on a schedule, or from an AI agent through the Apify MCP server.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lergassy/instagram-reel-script-extractor").call(run_input={
"videoUrls": ["https://www.instagram.com/reel/DckEW9NNVsJ/"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
ai = item.get("ai") or {}
print(ai.get("hook", {}).get("text"), "|", ai.get("cta", {}).get("type"))

❓ FAQ

It reads only public Reels that anyone can open without logging in and does not collect personal profiles beyond the author's public name. Laws differ by country and by use; ask a lawyer before building a commercial product on scraped data.

Does the AI watch the whole video?

No. It looks at still frames taken every 2 seconds (at most 12; longer Reels are sampled evenly) and reads our transcript and the caption. It does not hear the sound itself — the sound reaches it as our transcript. A model can misread a frame, so treat the breakdown as a strong first draft.

Why is the hook sometimes in square brackets?

When a Reel opens with no words at all — a striking shot, a reveal — the hook is described, for example [close-up of a baby pangolin], and hook.source is visual.

How is this different from your Instagram Reels Transcript Scraper?

Same engine and the same prices per event. There the AI breakdown is an add-on that is off by default; here it is on, the AI breakdown table opens first and the form starts with the breakdown switches.

What does a failed breakdown cost?

Nothing for the breakdown. You still get the transcript row ($0.003 plus seconds of speech), with the reason in aiError.

Which languages?

Speech recognition is multilingual; quoted words stay in the Reel's language and descriptions are in English.

Can I get the exact on-screen text?

Yes: switch on 🖼️ Exact on-screen text ($0.06 per Reel on the Free plan). The text arrives in onScreenText with timestamps, separated from what the author says.

Run health

When a run ends with many error rows, the Actor sends its developer the counts (rows, error types, run ID) so the cause gets fixed fast; your input and results are never sent.

You might also like

ActorWhat it does
Instagram Reels Transcript ScraperReels, TikTok and Shorts to text, transcript only, from $0.003 per video
TikTok Transcript ScraperTikTok videos and profiles to text
YouTube Shorts, TikTok & Reels Transcript ScraperThree platforms in one run

Your feedback

Found a Reel it breaks down badly? Open an issue on the Issues tab with the link — every issue gets a reply.