Instagram Transcript Scraper — Reels to Text
Instagram transcript generator for Reels and videos: paste a link or a profile, get the text with timestamps and language, in bulk. No login, no API key.
key features
Turns each public Reel's speech into text — the whole transcript plus timestamped segments (start, end, text)
Detects the spoken language, or takes a language hint
The caption, parsed hashtags and mentions, likes, comments and duration on the same row — and play counts for Reels read from a profile's Reels tab
No Instagram login and no speech-to-text key of your own — transcription is included
Give it profiles to transcribe their Reels tab up to Max Reels per profile, optionally their timeline too, or single Reel links
Fetches only the audio, never the whole video
Reels with only music or no sound come back as rows with hasSpeech: false and are not charged; filler that speech engines invent over music is dropped
A carousel contributes the first of its videos that has sound
use cases
- Content research — search what creators actually say, not only what they caption
- Keyword and brand monitoring across every Reel in a niche
- Text corpora from Reels for RAG, summarising and clustering
- Subtitling and repurposing, with start and end times per passage
- Creator analytics — does talking about a topic go with more plays?
- Multilingual monitoring, with the language detected on every row
input parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
startUrls | array | optional | Profile or Reel addresses; give these or usernames |
usernames | array | optional | Profile names, with or without the @; their Reels tab is transcribed |
maxReelsPerProfile | integer | optional | Videos transcribed per profile — also the cost control (default 10) |
includeTimeline | boolean | optional | Also transcribe videos from the profile's posts grid (default off) |
includeSegments | boolean | optional | Keep the per-segment timestamps (default on) |
language | string | optional | Optional language hint such as en, es or pt; empty means detect |
maxConcurrency | integer | optional | Reels transcribed at once (default 3) |
maxRequestsPerCrawl | integer | optional | Stop after this many requests; empty means no limit |
proxy | object | optional | Apify Proxy, residential by default, used for reading Instagram |
Output Example
1{
2 "type": "transcript",
3 "source": {
4 "id": "instagram",
5 "canonicalUrl": "https://www.instagram.com/reel/DcozHIETCd9/",
6 "username": "nasaadmin"
7 },
8 "id": "3974651461224900477",
9 "shortcode": "DcozHIETCd9",
10 "url": "https://www.instagram.com/reel/DcozHIETCd9/",
11 "owner": {
12 "id": "79712351002",
13 "username": "nasaadmin",
14 "fullName": "NASA Administrator Jared Isaacman",
15 "isVerified": true
16 },
17 "takenAt": "2026-08-29T20:31:28.000Z",
18 "caption": "An unforgettable day at @nasajohnson. …",
19 "hashtags": [],
20 "mentions": [
21 "nasajohnson",
22 "potus"
23 ],
24 "durationSeconds": 114.566,
25 "likeCount": 51113,
26 "commentCount": 409,
27 "audioUrl": "https://…mp4",
28 "audioBytes": 1019785,
29 "transcript": "… 250,000 miles from Earth. Please join me in congratulating Commander Reed Weissman, Pilot Victor Glover, Mission Specialist Christina Koch, and Mission Specialist Jeremy Hansen. …",
30 "segments": [
31 {
32 "start": 30.12,
33 "end": 32.7,
34 "text": "250,000 miles from Earth."
35 },
36 {
37 "start": 32.7,
38 "end": 44.64,
39 "text": "Please join me in congratulating Commander Reed Weissman, Pilot Victor Glover, Mission Specialist Christina Koch, and Mission Specialist"
40 },
41 {
42 "start": 44.64,
43 "end": 45.98,
44 "text": "Jeremy Hansen."
45 }
46 ],
47 "language": "en",
48 "wordCount": 204,
49 "hasSpeech": true,
50 "transcriptModel": "whisper-large-v3-turbo",
51 "scrapedAt": "2026-10-20T01:52:23.613Z"
52}
Pricing
Pay-per-event: billed once per stored transcript that has speech. Reels with only music or no sound, and transcriptions that failed, are stored and never charged.
Tips
Start with a few Reels. maxReelsPerProfile is also the cost control: each Reel is one download and one transcription. Timestamps are free. Turning includeSegments off makes a row smaller, not cheaper — the timings come back from the same call. Leave language empty unless every Reel is in one language; detection is per Reel. Need comments or topic tags too? The Instagram Scraper reads the same accounts’ posts, comments, co-authors and Instagram’s own topic tags.
faq
How do I get the transcript of an Instagram Reel?
Can I transcribe Instagram Reels in bulk?
Do I need an Instagram account or my own speech-to-text key?
What happens to a Reel that is only music, or has no sound?
How accurate is the transcript?
Can it translate?
related in ~/social
Instagram Scraper API — Profiles, Posts & Reels
Instagram profiles, posts, Reels and comments — no login.
openTikTok Transcript & Subtitle Scraper — JSON, SRT, VTT, LLM
TikTok transcripts as JSON, SRT, VTT, or LLM-ready text.
openBluesky Scraper — Posts, Profiles, Feeds & Interactions
Scrape Bluesky posts, profiles, feeds, and interactions.
open