Instagram Reel Transcript Scraper avatar

Instagram Reel Transcript Scraper

Under maintenance

Pricing

from $10.00 / 1,000 transcripts

Go to Apify Store
Instagram Reel Transcript Scraper

Instagram Reel Transcript Scraper

Under maintenance

Get transcripts of all Reels on an Instagram profile, or any list of Reel URLs. Bulk Instagram Reel transcript API: Reels to text with timestamped segments, hook, call to action, language, caption, views, likes and comments. Music-only Reels and every miss get a free row that says why. No login.

Pricing

from $10.00 / 1,000 transcripts

Rating

0.0

(0)

Developer

API Mint

API Mint

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Get transcripts of all Reels on an Instagram profile, or any list of Reel links, in one run. Instagram Reels to text with the hook (the opening line), the call to action, views and timestamps in the same row. It works as an Instagram Reel transcript API too: call it from code, n8n, Make or an AI agent and get JSON back.

  • Bulk Instagram Reel transcripts: paste hundreds of Reel links and profiles, mixed in one list.
  • Instagram profile transcripts: a profile's newest Reels, with a date range if you want only recent ones.
  • Hooks and calls to action: what each Reel says first and what it asks viewers to do, next to views and likes.
  • Every row: the full transcript and timestamped segments, the detected language, caption, hashtags, views, likes, comments, posting date, duration and audio. Optional SRT or WebVTT subtitle files.

Music-only Reels are detected before transcription and never charged. Every Reel without a transcript gets a row that says why. No Instagram account, no cookies, no API key.

ReelStatusHookCall to actionViews
@nasaokThis asteroid, 2024 YR4, might get interesting.Check our link in bio for details. (link)5,638,998
reel/Ddi3q68I1BQokHere are three really quick ways to make money in your business right now.—— (single links don't carry views)
reel/DdO99ZaxLrtno-speech, free———
What you payFree planStarterScaleBusiness
Per 1,000 transcripts (Reels up to 3 minutes)$15$14$12.50$10
Per extra minute of a longer Reel$0.005$0.005$0.005$0.005

Proxy traffic and speech-to-text are included. Music-only Reels, Reels without sound, unavailable posts and anything blocked are free.

Works with: TikTok Transcript Scraper (the same rows for TikTok videos and profiles) and YouTube Transcript Scraper (channels, playlists and Shorts).

What you get

FieldExample
text, wordCountthe whole transcript as one string
segments[{start: 0.03, end: 3.49, text: "This asteroid, 2024 YR4, might get interesting."}, …]
hook, hookEndSeconds"This asteroid, 2024 YR4, might get interesting.", 3.49
cta, ctaType"Check our link in bio for details.", link
language, speechDetected, speechSecondsen, true, 33.5
caption, hashtags, mentionsthe post caption and what's tagged in it
views, likes, comments, postedAt, durationSeconds5638998, 115593, 968, 2026-09-28T15:27:08Z, 38.6
music{title: "Original audio", artist: "nasa", isOriginalSound: true}
ownerUsername, ownerFullName, isCollab, coauthorsnasa, NASA, false, []
srt, vtt (optional)subtitle files as text
status, errorMessageok, or why there is no transcript

hook and cta are derived: the hook is the first sentence spoken; the call to action is the closing "comment…", "link in bio", "follow…", "DM me", "shop…" line found in the speech, else in the caption.

How to get Instagram Reel transcripts in bulk

Paste Reel or post links into Reels or profiles, one per line: instagram.com/reel/…, /p/…, or just the shortcode. Hundreds at a time are fine; duplicates are fetched and charged once.

Instagram profile transcripts

Paste a profile link (https://www.instagram.com/nasa/) or @handle. You get its newest Reels first, up to Max Reels per profile, with view counts. Add Posted after ("30 days", "2026-09-01") to keep only recent ones. Instagram limits how fast profiles can be listed without a login; if it stops the listing early, the run summary says how far it got.

Hooks and calls to action for competitor research

Run a few competitors' profiles and sort by views: the hook and cta columns show what top-performing Reels say first and what they ask viewers to do. The Transcripts view in the dataset shows creator, hook, CTA and text side by side, ready for a swipe file.

Subtitle files (SRT and WebVTT)

Pick SRT and/or WebVTT under Subtitle files. Each row then carries the transcript as subtitle text in srt or vtt, ready to save as a file.

Monitor profiles

Turn on Only new Reels and run the Actor on a schedule (daily or weekly). Each run returns only Reels it hasn't returned before for that profile, so you pay once per Reel. Send the results to Google Sheets, n8n, Make, Zapier or a webhook with Apify's integrations, and new transcripts arrive there on their own.

Instagram Reel transcript API

Call the Actor over HTTP and get the transcripts back as JSON in the same request. The request waits up to 5 minutes, which suits a handful of Reels; for whole profiles, start a run and read its dataset when it finishes.

curl -X POST "https://api.apify.com/v2/acts/apimint~instagram-reel-transcript-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://www.instagram.com/reel/Dd1gQBsCWE8/", "https://www.instagram.com/nasa/"], "maxReelsPerProfile": 5}'

Apify's JavaScript and Python clients, the n8n and Make integrations and Apify's MCP server for AI agents all take the same input.

Input example

{
"urls": [
"https://www.instagram.com/reel/Dd1gQBsCWE8/",
"https://www.instagram.com/nasa/"
],
"maxReelsPerProfile": 30,
"postedAfter": "30 days",
"extraFormats": ["srt"]
}

Switching from another Reel transcript Actor? Calls that use startUrls, reelUrls, videoUrls, bulkUrls, handles, usernames, username, resultsLimit, maxReelsPerHandle or onlyPostsNewerThan work as they are.

Output example

{
"shortcode": "Dd1gQBsCWE8",
"url": "https://www.instagram.com/reel/Dd1gQBsCWE8/",
"status": "ok",
"errorMessage": null,
"wordCount": 94,
"language": "en",
"hook": "This asteroid, 2024 YR4, might get interesting.",
"hookEndSeconds": 3.488,
"cta": "Check our link in bio for details.",
"ctaType": "link",
"speechDetected": true,
"speechSeconds": 33.54,
"text": "This asteroid, 2024 YR4, might get interesting. There was a chance that it could impact Earth. The ATLAS survey operated by the University of Hawaii finds about 200 to 250 near-Earth objects per year. …",
"segments": [
{ "start": 0.034, "end": 3.488, "text": "This asteroid, 2024 YR4, might get interesting." },
{ "start": 3.488, "end": 6.11, "text": "There was a chance that it could impact Earth." }
],
"caption": "What happens when we detect an asteroid that could pose a threat to Earth? … Check our link in bio for details.",
"hashtags": [],
"mentions": [],
"postedAt": "2026-09-28T15:27:08.000Z",
"durationSeconds": 38.613,
"views": 5638998,
"likes": 115593,
"comments": 968,
"music": { "title": "Original audio", "artist": "nasa", "isOriginalSound": true },
"ownerUsername": "nasa",
"ownerFullName": "NASA",
"ownerUrl": "https://www.instagram.com/nasa/",
"isCollab": false,
"coauthors": [],
"transcriptEngine": "openai",
"extraMinutes": 0,
"source": { "type": "profile", "value": "https://www.instagram.com/nasa/" }
}

A music-only Reel:

{ "shortcode": "DdO99ZaxLrt", "status": "no-speech", "errorMessage": "No speech: music or sound only", "speechDetected": false, "speechSeconds": 0, "caption": "Lets do a commercial with one product #ugc #skincare #tips" }

How much does it cost to scrape Instagram Reel transcripts?

JobFree planStarter
100 Reel links$1.50$1.40
10 profiles × 30 Reels (300 transcripts)$4.50$4.20
A 5-minute Reel (1 transcript + 2 extra minutes)$0.025$0.024

On profiles, a fifth to a third of Reels are usually music only; those come back as free rows, so a 30-Reel profile often costs less than 30 transcripts. Set Max transcripts in total or the run's maximum charge to cap any run.

Status codes (none of them is charged)

StatusMeaning
no-speechMusic or sound only, nothing spoken
no-audioThe Reel has no sound
too-longLonger than Skip Reels longer than (minutes)
not-a-videoA photo or carousel post
unavailableDeleted, private or restricted for logged-out viewers
blockedInstagram kept refusing it on fresh IPs
errorSomething else went wrong; errorMessage says what

What Instagram doesn't give without a login

  • Saved, liked or bookmarked Reels, private accounts, Stories and DMs.
  • Instagram's own auto-captions: they aren't public, so every transcript is made by speech recognition from the audio.
  • View counts for single Reel links (profile listings include them).
  • Text written on the video (on-screen captions), speaker names, word-by-word timing.
  • Every Reel of a very large profile in one go: Instagram slows profile listing down.

FAQ

Is it legal to scrape Instagram Reel transcripts? The Actor reads public Reels the way a logged-out visitor sees them and returns text for analysis. What a creator says is their work: use transcripts for research and analysis, not to republish.

Why not the official Instagram API? The Instagram Graph API only returns media of business or creator accounts you manage, after an app review, and it has no transcript or audio field for anyone's Reels. This Actor works on any public Reel and makes the transcript from the audio.

How accurate is it? On paid plans transcripts come from OpenAI's speech recognition, with the caption's names (brands, products, @handles) used as spelling hints. On the Free plan they come from an open-source Whisper model running on the run's own computer: free for everyone, a little less accurate, and slower (about half a minute per Reel at 4 GB; give the run 4 GB of memory for the best speed).

Which languages? Any language Whisper knows. The transcript is in the language spoken; it is never translated. Set Language hint if you know it.

Why is there no transcript for some Reels? Mostly music-only Reels (no-speech), which are free. Every Reel without a transcript has a status and an errorMessage.

What if Instagram blocks the run? A few refused requests are normal and retried on fresh IPs, residential ones if needed. If Instagram starts blocking most of them, the run stops early and tells you so, instead of grinding on. Blocked Reels are never charged; try again later.

Can I use it from n8n, Make, Zapier, an API or an AI agent? Yes. Use the Apify integration or API with the input above (see "Instagram Reel transcript API"), or connect it to an AI agent through Apify's MCP server.

How often should I run it? For profiles you follow, weekly with Only new Reels on is enough for most creators; daily for accounts that post every day. Results can go straight to Google Sheets or an n8n workflow.

How is it different from other Reel transcript scrapers?

This ActorTypical
Reel links and whole profiles in one runYesOften one link per run
Hook and call to action next to viewsYesRare, or an extra AI charge
Music-only Reels detected before transcriptionYes, free rowOften charged, or an empty transcript
Reason for every missing transcriptYes, free rowEmpty result or failed run
Timestamped segments and SRT/VTTYesOften plain text only
Free-plan URL capNone5 links per run is common
Only new Reels for schedulesYesRare

Feedback

Found a Reel that should work but doesn't? Open an issue with the Reel URL and we'll look at it. Reviews help other people find the Actor. See the ./CHANGELOG.md for updates.