Instagram Reel Transcript & Script Extractor avatar

Instagram Reel Transcript & Script Extractor

Pricing

from $6.00 / 1,000 reel transcripts

Go to Apify Store
Instagram Reel Transcript & Script Extractor

Instagram Reel Transcript & Script Extractor

Turn Instagram Reels into text by link or username, in many languages. Optional AI script breakdown: hook, on-screen text, beats, CTA, format and topics. Reels without speech are not billed as transcripts.

Pricing

from $6.00 / 1,000 reel transcripts

Rating

0.0

(0)

Developer

Firsthand

Firsthand

Maintained by Community

Actor stats

0

Bookmarked

37

Total users

18

Monthly active users

5 days ago

Last modified

Share

Turn Instagram Reels into text. Paste reel links or usernames and get what was said in each reel, in its own language. Turn on Analyze reels to also get the script behind it: the hook, on-screen text with timestamps, beat-by-beat structure, call to action, format and topics.

Use it to study what works for a creator or a niche, to repurpose reels into posts and newsletters, to research competitors' content, or to feed reel scripts into your AI workflow.

Why use it

  • Links or usernames. Transcribe single reels, or a creator's video posts in one go.
  • Many languages. Whisper large-v3 turbo, about 100 languages. Tested on English and Hindi.
  • No charge for reels without speech. Music-only reels come back with speech: false and are not billed as transcripts. Speech models like to invent a "Thank you." on music; the Actor double-checks before it says "no speech".
  • Script analysis that also reads the screen. Works on music-only reels too, where the on-screen text is the whole script.
  • No login, no cookies, no proxies to set up.

What you get

One row per reel.

Transcript: transcript, speech, language, duration, wordsPerMinute, and with Include timestamps also segments.

Reel data: url, username, postedAt, caption, hashtags, mentions, likes, comments. In username mode also likesVsCreatorMedian and isOutlier (3x the creator's median likes or more), and the sound: original audio or licensed music.

Analysis (with Analyze reels): hookSpoken, hookOnScreen, hookType, onScreenText, beats, cta, ctaType, contentFormat, topics, summary, takeaways, entities.

{
"url": "https://www.instagram.com/reel/DdVSJYSuZoc/",
"username": "recipeincaption",
"postedAt": "2026-09-16T03:10:40Z",
"duration": 30.4,
"language": "en",
"transcript": "Dinners You'll Actually Make, episode 57, Hot Honey Chicken Tenders with Buttermilk Ranch.",
"likes": 213478,
"hookSpoken": "Dinners you'll actually make, episode 57: Hot honey chicken tenders with buttermilk ranch.",
"hookType": "bold_claim",
"onScreenText": [
{"t": 0.5, "text": "dinners you'll actually make"},
{"t": 29, "text": "try the osta app :)"}
],
"beats": [
{"start": 0, "end": 4.8, "label": "Hook", "summary": "The creator introduces hot honey chicken tenders with buttermilk ranch."},
{"start": 17.8, "end": 30, "label": "App Promotion", "summary": "The creator demonstrates how to save the recipe from social media into the Osta app."}
],
"cta": "try the osta app :)",
"contentFormat": "product_demo",
"topics": ["recipe", "fried chicken", "hot honey", "recipe organizer", "mobile app"]
}

A real row from a test run, shortened.

How to use it

  1. Paste reel links (instagram.com/reel/… or instagram.com/p/…) into Reel links, or usernames (natgeo or instagram.com/natgeo/) into Usernames and set Max reels per username. One per line. Paste links and usernames only, not captions or post texts: the actor reads the reel itself.
  2. Turn on Analyze reels if you need the script breakdown.
  3. Run, then export to JSON, CSV or Excel, or connect via API, Make, Zapier or n8n.

Tip: sort a creator's reels by likesVsCreatorMedian to find the scripts that outperformed.

Chain it after an Instagram scraper

Put the dataset ID of a finished apify/instagram-scraper or instagram-reel-scraper run into Dataset ID, or pass its rows as datasetItems. Every video post is transcribed straight from its video file, with the scraper's caption, likes and date kept. Video file links expire in 1 to 3 days; an expired one is fetched again by its reel link. With the "Connect actor" integration put {{resource.defaultDatasetId}} into datasetId. One run reads up to 10,000 reels from a dataset.

Input fields of other reel transcript actors are read too

If your API calls or integrations were built for another Instagram transcript actor, you can send the same input fields. The output fields are this actor's own (see above).

FieldRead as
startUrlsreel and post links, usernames, @handles, profile links and Instagram video file links, as strings or {"url": ...} objects, mixed in one list
handlesusernames, @handles or profile links
videoUrlsInstagram video file links (.mp4 on cdninstagram.com or fbcdn.net), the videoUrl / audioUrl of a scraper row
datasetId, datasetItemsrows of an Instagram scraper run
maxReelsPerHandle, resultsLimitmax reels per username
videoUrl, bulkUrlsreel and post links

A bare reel code (the shortCode column, like DdVSJYSuZoc) is read as its reel link. Fields this actor does not use are ignored.

Pricing

EventPrice
Transcript, per reel with speech$0.006
Analysis, per reel up to 2 minutes$0.04 on paid Apify plans, $0.06 on the Free plan (up to 5 reels per run)
Run start$0.00005 per run

Not charged: reels without speech (as transcripts), failed reels, duplicates. Set Max reels in total for a hard cap; the Actor also stops before your maximum cost per run.

Good to know

  • Public reels and profiles only. Private and age-restricted reels return an error row.
  • Video file links are read from Instagram's own servers only (https on cdninstagram.com or fbcdn.net). A file on any other host is not processed and not charged.
  • Videos longer than 10 minutes are not transcribed and not charged.
  • No view counts; outliers are measured by likes.
  • Username mode reads the profile's video posts in Instagram's order (pinned posts may come first), not the separate Reels tab. Tested up to 120 reels per profile.
  • On the Apify Free plan, analysis is limited to 5 reels per run; the other reels in the run get transcripts as usual, are marked analysisStatus: skipped and are not charged for analysis. Transcripts have no such limit. Any paid Apify plan removes it.
  • Reels longer than 2 minutes get a transcript but no analysis. From a carousel post, only the first video is processed.
  • Every row has a status: ok, error with the reason, empty for a profile with no videos, or skipped when a limit was reached.
  • Audio and video are processed by third-party AI models through OpenRouter (Whisper, OpenAI, Google Gemini). The Actor keeps nothing after the run except your dataset.
  • If a run fails or times out, Apify sends the run record to the developer (it has no input and no results). Only the status, error type and place in the code, memory use, run settings and input counts are kept (how many links and usernames, not the links or usernames themselves). They are used only to find and fix the cause.

FAQ

Is it legal? The Actor reads only public content without logging in. Instagram's terms restrict automated collection, what creators say is their copyrighted content, and GDPR applies if you store personal data. You are responsible for how you use the data.

How fast is it? About 2 minutes for 8 reels with analysis in our tests.

Something missing or wrong? Open an issue with the reel link. We read every issue.


Instagram is a trademark of Meta Platforms, Inc. This Actor is not affiliated with Meta.