Instagram Reel Script Extractor — AI Hook, CTA & Beats
Pricing
from $2.50 / 1,000 videos
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
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

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 Actor | The four others | |
|---|---|---|
| Script breakdown for all 3 Reels | Yes | 2 of 4 (one gives a transcript only, one stopped at 2 Reels on the Free plan) |
| Says why the hook works | Yes | 1 of 4 |
| Fill-in script template | Yes | 0 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?
| Field | What it holds |
|---|---|
ai.hook | text, source, type, whyItWorks |
ai.beats | [{startSeconds, endSeconds, label, visual, text}] |
ai.cta | text, type |
ai.topic, ai.format, ai.audience, ai.emotion | One line each, in English |
ai.scriptTemplate | The script as a fill-in template |
ai.speechIsSong | True when the audio is song lyrics |
ai.onScreenText | Lines of text the model reads on the frames, verbatim |
transcriptText, transcript | Our speech-to-text, plain and as timestamped segments |
firstThreeSecondsSpeech | What is said in the first 3 seconds |
hookText, ctaText, beats, wordsPerMinute | Rule-based hook, CTA and timeline (no AI), free |
author, likes, comments, caption, hashtags, mentions, postedAt, durationSeconds, language | Reel details |
views | Play count — filled when you give a profile (Instagram shows it in the profile's Reels tab); empty for single Reel links |
vsAuthorMedian, isOutlier | How the Reel did against the author's usual (4+ Reels of one author in a run) |
aiModel, aiError | The model used, and why a breakdown is missing when it is |
chargedEvents, chargeUsd | What 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.
| Event | Free plan | Bronze | Silver | Gold 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 length | Free plan, per Reel | Per 1,000 Reels | Gold, 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
- Click Try for free.
- Paste Reel links into 🔗 Instagram Reel URLs (or a profile into 👤 Instagram profiles). The form comes with a working example.
- 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@handleor 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
vsAuthorMedianandisOutlier(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 ApifyClientclient = 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
Is it legal to scrape Instagram Reels?
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
| Actor | What it does |
|---|---|
| Instagram Reels Transcript Scraper | Reels, TikTok and Shorts to text, transcript only, from $0.003 per video |
| TikTok Transcript Scraper | TikTok videos and profiles to text |
| YouTube Shorts, TikTok & Reels Transcript Scraper | Three 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.