Instagram Transcript Scraper avatar

Instagram Transcript Scraper

Pricing

from $0.93 / 1,000 reels

Go to Apify Store
Instagram Transcript Scraper

Instagram Transcript Scraper

Instagram transcript scraper: the transcript of Instagram reels and videos from Instagram's own captions: text, timed segments, SRT and VTT, language and the first three seconds, with each reel's views, likes and creator. Paste reel links, or read a profile's latest reels or a search.

Pricing

from $0.93 / 1,000 reels

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

0

Monthly active users

5 hours ago

Last modified

Security

Limited permissions

Share

Get the transcript of Instagram reels from Instagram's own captions: paste reel links, or name profiles, search words or hashtags, and get one row per reel with the transcript, timed segments, SRT and WebVTT, the language and what is said in the first three seconds, next to the reel's plays, likes, comments and creator.

The transcript is the captions track Instagram itself shows on the reel, read as text. A reel without one comes back with its details and hasTranscript: false, and you pay only the reel's price for it.

InputReel or post links, profiles, search words, hashtags, or another run's dataset
OutputOne row per reel: transcript, segments with start and end times, SRT, WebVTT, language, first three seconds, word count, plays, likes, comments, shares, creator, sound, posting time
Ceiling2,000 reels per run, 1,000 links, 50 profiles, 20 searches and 20 hashtags
Account neededNone from you
Price$0.93 per 1,000 reels plus $1.85 per 1,000 transcripts, the same on every plan. The free plan's $5 a month covers about 5,300 reels, or about 1,790 that all have a transcript
Using an AI agent?
Actordami_studio/instagram-transcript-scraper
Set one fieldreelUrls, labelled "Reel links" in the Console
Cap the billmaxTotalChargeUsd on the run, for example 0.10: it never charges past that
MCP, one linkhttps://mcp.apify.com/?tools=fetch-actor-details,dami_studio/instagram-transcript-scraper
How oftenDaily on a creator's profile with "Only reels not delivered before" on

🔍 What Instagram Transcript Scraper does

It takes reels from four places: links you paste, the latest reels of profiles you name, the reels Instagram's search returns for a word or a hashtag, and the reel links in another run's dataset. Each reel becomes one row.

When Instagram has captions for the reel, the row carries them as plain text, as timed segments, and as ready-made SRT and WebVTT subtitle files. hook is what is said in the first three seconds, and wordsPerMinute is the speaking pace over the whole reel.

Nothing is downloaded: no video, no audio. A reel two of your inputs found arrives once.

📋 What data you get from each Instagram reel

What you getField
Transcript and whether there is onetranscript, hasTranscript, transcriptSource
Timed segmentssegments (each start, end in seconds, text)
Subtitle filessrt, vtt
Language of the captionstranscriptLanguage
First three seconds, length, pacehook, wordCount, wordsPerMinute
Reel link, shortcode, media idurl, shortcode, id
Caption, hashtags, handlescaption, hashtags, mentions
Plays, likes, comments, sharesplayCount, igPlayCount, fbPlayCount, likeCount, commentCount, shareCount
Length and posting timedurationSeconds, postedAt
CreatorauthorUsername, authorFullName, authorId, authorIsVerified
SoundaudioTitle, audioArtist, audioId, isOriginalAudio
Collaborators, tagged accounts, placecoauthors, taggedUsers, locationName
Pinned and paid partnership flagsisPinned, isPaidPartnership
Cover and video linksthumbnailUrl, videoUrl
Where the reel came fromsourceType, sourceInput

▶️ How to scrape Instagram reel transcripts

  1. Open the actor and go to the Input tab.
  2. Paste reel links into Reel links, one per line, or fill Profiles, Search words or Hashtags.
  3. Set Maximum reels in all to what you need. Keep it small on a first try.
  4. Press Start, then open the Output tab. The Transcripts view shows the text first.

💰 How much does it cost to scrape Instagram reel transcripts?

$0.93 per 1,000 reels, plus $1.85 per 1,000 transcripts, on every plan. A reel with a transcript costs $0.00278; one without costs $0.00093. The free plan's $5 a month covers about 5,300 reels, or about 1,790 that all have a transcript.

Not charged: note rows (a dead link, a photo post, a private account, a search with nothing), reels an earlier run already delivered when "Only reels not delivered before" is on, and duplicates inside a run.

📥 What you give it

FieldWhat it doesDefault
reelUrlsReel or post links, bare shortcodes or share links. Up to 1,000none
usernamesProfiles whose latest reels you want: nasa, @nasa or a profile link. Up to 50none
maxReelsPerProfileReels read from each profile, newest first10
searchQueriesWords or phrases searched on Instagram's reels search. Up to 20none
hashtagsHashtags searched the same way. Up to 20none
maxReelsPerSearchReels read for each search word and hashtag10
datasetIdAnother run's dataset to take reel links from (url, reelUrl, postUrl, inputUrl, shortCode, code)none
maxItemsThe most reels a run delivers, across everything50
postedAfter, postedBeforeDate window for profiles, searches and hashtags: 2026-03-01 or a span like 3 weeksnone
minViewsLeast plays a reel needs, for profiles, searches and hashtagsnone
skipPinnedReelsLeave out a profile's pinned reelsfalse
onlyNewReelsSkip reels an earlier run with the same watchlist deliveredfalse
watchlistNameName of the store in your account that remembers delivered reelsinstagram-transcripts-seen

Dates take YYYY-MM-DD, a full timestamp, or a number with day, week, month or year. Anything else stops the run before it looks anything up, with a free note saying which field to fix.

{
"reelUrls": ["https://www.instagram.com/reel/DeSM5CYPDfd/"],
"usernames": ["nasa"],
"maxReelsPerProfile": 5,
"maxItems": 20
}

📤 What you get back

A real row from a run on 7 November 2026, trimmed:

{
"recordType": "reel",
"ok": true,
"charged": true,
"shortcode": "DeSM5CYPDfd",
"url": "https://www.instagram.com/reel/DeSM5CYPDfd/",
"hasTranscript": true,
"transcript": "For splash down. Space Flight is a beautiful symbol of humanity. Then it was time to step outside. A short time later, t ...",
"transcriptLanguage": "en_US",
"transcriptSource": "instagram_captions",
"segments": [
{ "start": 0, "end": 5.421, "text": "For splash down. Space Flight is a beautiful symbol of" },
{ "start": 5.421, "end": 11.381, "text": "humanity. Then it was time to step outside. A short time" }
],
"srt": "1\n00:00:00,000 --> 00:00:05,421\nFor splash down. Space Flight is a beautiful symbol of\n...",
"hook": "For splash down. Space Flight is a beautiful symbol of",
"wordCount": 80,
"wordsPerMinute": 43,
"durationSeconds": 110.766,
"postedAt": "2026-10-09T19:02:56.000Z",
"playCount": 3899187,
"igPlayCount": 3746370,
"fbPlayCount": 152817,
"likeCount": 66849,
"commentCount": 1011,
"shareCount": 2677,
"authorUsername": "nasajohnson",
"authorFullName": "NASA’s Johnson Space Center",
"authorIsVerified": true,
"audioTitle": "Original audio",
"isOriginalAudio": true,
"coauthors": ["soph_astro", "iss", "astro_jessica", "nasa"],
"sourceType": "profile",
"sourceInput": "nasa"
}
FieldWorth knowing
transcript, segments, srt, vttEmpty when hasTranscript is false
hookNull when nobody speaks in the first three seconds
wordsPerMinuteWords over the whole length, so a reel with long silent stretches reads slow
transcriptLanguageThe captions' language, such as en_US
playCountPlays on Instagram and Facebook together; the split is igPlayCount and fbPlayCount
thumbnailUrl, videoUrlLinks on Instagram's servers that expire after a few days

🧾 Reading the output

Real rows carry recordType: "reel", ok: true and charged: true. Every one is billed as a reel, and the ones with hasTranscript: true are billed a transcript as well, so the dataset is its own invoice.

Note rows carry recordType: "note", ok: false and an errorCode, and are never billed:

CodeMeaning
BAD_INPUTA field couldn't be read, or some entries were left out (listed in details)
NOT_FOUNDThe reel or account isn't on Instagram
NOT_A_VIDEOThe link is a photo or carousel
PRIVATE_ACCOUNTThe profile is private
NO_RESULTSA profile, search or hashtag gave no reels that match your filters
NOT_SERVEDInstagram didn't serve this one in this run; re-run it later
ALREADY_SEENHow many reels the watchlist skipped
MAX_ITEMS, COST_LIMIT, TIME_LIMITThe run stopped at your reel limit, spending limit or time limit
FREE_PLAN_LIMITA free-plan run stopped early; a paid plan runs the whole input
UNEXPECTED_ERRORThe run stopped on an error on our side; rows before it are kept

To keep only transcripts, filter on hasTranscript == true.

💡 What people use it for

  • Content teams studying what top creators in their niche actually say: a profile's last 50 reels, sorted by playCount, read through hook.
  • Turning a brand's own reels into blog drafts or newsletter text without retyping them.
  • Subtitles for reposting a reel elsewhere: take srt or vtt as they are.
  • Feeding reel text to a language model for topic or sentiment tagging, with segments when timing matters.

A recipe that chains our actors: find reels with Instagram Reels Search Scraper, pass its dataset ID to datasetId here, and run Instagram Comments Scraper on the reels whose hook you liked.

🚧 What it does not do

  • No transcript for a reel Instagram has no captions for. For those, give the row's videoUrl to Video Audio Transcriber, which works from the audio.
  • No translation of the transcript.
  • No private accounts, stories or direct messages.
  • No downloads of the video or the audio.
  • It is not an official Instagram tool. Dami's Studio is independent and is not affiliated with or endorsed by Instagram or Meta, or by any other company named on this page.

🧭 Which Instagram scraper do you need?

If you wantUse
Transcripts of reels, with their numbersThis one, Instagram Transcript Scraper
Reels for a keyword or hashtag, without transcriptsInstagram Reels Search Scraper
Comments under a reel or postInstagram Comments Scraper
Bio, follower counts and contact details of the creatorsInstagram Profile Scraper
A transcript from the audio of any video linkVideo Audio Transcriber
Transcripts of TikTok videosTikTok Transcript Scraper

❓ Questions people ask

Do I need an Instagram account to get reel transcripts?

No, you don't need one, and there's no cookie to paste.

Why does a reel have no transcript?

Instagram makes captions for many reels, not all of them. The row still comes with the reel's details. To check a reel by hand, open it in the Instagram app and look for the captions button.

Why are the numbers different from what I see in the app?

Plays, likes and comments keep moving, and the app rounds them ("1.2M"). The row has the exact count at the moment it was read.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab on the actor page has ready code. For an assistant, use the MCP link https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/instagram-transcript-scraper.

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("dami_studio/instagram-transcript-scraper").call(
run_input={"reelUrls": ["https://www.instagram.com/reel/DeSM5CYPDfd/"], "maxItems": 10},
max_total_charge_usd=0.10,
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
if row.get("ok") is False:
continue
print(row["url"], row["transcript"])

This reads public reels only, never private accounts or messages, and you need no account. Results can still contain personal data, which GDPR and similar laws cover, so keep only what you need. Instagram's own terms still apply to what you do with the data. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Include the run ID and one of the links or names you used.