Instagram Reel & Video Transcript — On-Screen Text & Hooks
Pricing
from $66.00 / 1,000 reels
Instagram Reel & Video Transcript — On-Screen Text & Hooks
Extract Instagram reel and video transcripts — the spoken words plus the on-screen text audio-only tools miss, with hook, call to action, beats, hashtags and view counts. Transcribes silent music-only reels too. No login. Reel links or a creator handle; CSV, JSON, Excel or API.
Pricing
from $66.00 / 1,000 reels
Rating
0.0
(0)
Developer
Andrey Afanasenko
Maintained by CommunityActor stats
1
Bookmarked
109
Total users
85
Monthly active users
19 hours ago
Last modified
Categories
Share
Extract Instagram reel and video transcripts — the spoken words plus the on-screen text audio-only tools miss, with hook, call to action, beats, hashtags and view counts. Transcribes silent music-only reels too. No login. Reel links or a creator handle; CSV, JSON, Excel or API. For content strategists, agencies and creators who need the script, not the caption. Works on silent music-only reels, where audio-only transcript tools return an empty string.
🆓 Free to start: no card beyond your Apify account — leave the input empty, press Start, and the actor analyzes 3 real reels of a sample creator, capped so the trial stays cheap · Apify's Free plan includes $5 of monthly platform credit, around 66 reels here · every run also lists, ranked by views, the reels it did not analyze, so you always know what is still there.
🎯 What it does
Most Instagram tools read the caption. The caption is what the creator wrote afterwards. This actor reads the video: the audio track and the frames, in one pass.
| You get | Why it matters |
|---|---|
| Spoken transcript, word for word, never translated | The actual script, not a paraphrase |
| On-screen text, one entry per distinct card | Recipe quantities, prices, step numbers, code, URLs — usually the most valuable text in the reel, and invisible to audio-only tools |
| Hook, spoken and on-screen, plus the second it ends | The first three seconds decide the reel |
| Hook type as a closed value | question, bold_claim, listicle, contrarian, … — sortable, groupable, countable |
| Structure — beats with start and end times | hook → context → proof → cta, each with the second it starts and the second it ends, checked against the reel's real length |
| Call to action, verbatim and typed | What the creator actually asks for |
| Pinned comments, and whose they are | Where the link, the full recipe or the next step usually ends up. A creator can pin a follower's comment, so every entry says who wrote it |
| Audio — own recording, borrowed sound, or a licensed track | Whether the creator made the sound or rode someone else's. Licensed tracks come with title and artist; a borrowed sound comes with the account it belongs to |
| Format, topics, summary, takeaways, named entities, language | The row a swipe file is built from — written in the creator's own language, not translated into English |
| Views vs this creator's median, and an outlier flag | Measured, from real view counts — never an invented "virality score" |
| The video file itself, plus the moment its link expires | Hand it straight to an editor or an archive. Instagram signs these links and they do expire, so the row tells you when instead of leaving you a 403 to discover |
| The post's own facts — id, hashtags, mentions, creator name and id, carousel slides | The columns you join on. A creator can change their handle; their id does not |
The one thing nothing else on the Store does: a reel with no speech at all still returns a full row. Music-only recipes, text-on-screen listicles, silent tutorials — the whole category where the information lives in the frame rather than the audio.
🎙 Instagram video transcript — and the half of it audio-only tools miss
Paste a reel link and you get an Instagram video transcript: every word spoken, in the original language, never translated. That much you can get anywhere. What happens in the same pass is what you cannot — the frames are read too, so the text burned into the video comes back as onScreenText, one entry per distinct card.
That matters because a large share of Instagram reels have no speech at all. A music-only recipe, a silent listicle, a price card, a step-by-step tutorial under a trending sound — an audio-only transcription returns an empty string for every one of them, and bills you for it anyway. Here the same reel returns hasSpeech: false and the complete on-screen text, the hook, the beat structure and the call to action.
- Transcribe one Instagram reel or video → paste the
/reel/link into Reel links. - Transcribe a creator's whole catalog → put the handle into Creator handles.
- No login, no cookies, no Instagram account, no password. Nothing is connected to your account and nothing is posted on your behalf, so there is nothing to get banned.
- You always see what was left out. Reels the free plan held back come back as free rows of their own, with the reason in
error— so a script or an AI agent reading only the results knows a limit was hit, not that the links were bad. - One reel, one row: transcript, on-screen text, hook, call to action, beats, hashtags, view counts and the video file's own link.
📦 Output sample
One real row, exactly as the actor produced it. A reel with 3.8 million views in which nobody says a single word — the whole tip is written on screen:
{"url": "https://www.instagram.com/reel/DXuciRbjX2O/","shortcode": "DXuciRbjX2O","username": "buzzfeedtasty","postedAt": "2026-04-29T19:30:07.000Z","durationSeconds": 8.2,"postType": "reel","caption": "Pre-shredded cheese is super convenient—but for the best results, it’s actually worth giving it a quick rinse first! 🧀","viewCount": 3842876,"likeCount": 15028,"commentCount": 800,"metricsHidden": false,"thumbnailUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-15/685629627_18566435230066699_8839999739252291674_n.jpg?…","videoUrl": "https://scontent-lga3-1.cdninstagram.com/o1/v/t2/f2/m86/AQMg6vrL6AavVVUBtSBru_blLDMuD58_-jP-3H9ytoVyhD4M-xN0UkG2Ab8Jgr_JXERpSwN9J9altWkDK1eQSyrEldkP1tqG3uE1imQ.mp4?…","videoUrlExpiresAt": "2026-08-01T21:33:28.000Z","videoWidth": 720,"videoHeight": 1280,"slideImageUrls": [],"mediaId": "3886169028947705230","ownerId": "2125506698","ownerFullName": "Tasty","ownerIsVerified": true,"hashtags": [],"mentions": [],"audioSource": "own_original","audioTitle": null,"audioArtist": null,"audioOwnerUsername": "buzzfeedtasty","audioId": "18589307398030479","analysisStatus": "analyzed","error": null,"hookSpoken": null,"hookOnScreen": "wash your pre-shredded cheese","hookType": "how_to","hookEndSeconds": 3,"spokenTranscript": null,"hasSpeech": false,"wordsPerMinute": null,"onScreenText": ["wash your pre-shredded cheese","to remove anti-caking agents","washed","unwashed"],"onScreenTextCount": 4,"onScreenTextIsCaptionsOnly": false,"beats": [{"startSeconds": 0,"endSeconds": 3,"label": "hook","text": "Washing pre-shredded cheese to remove anti-caking agents."},{"startSeconds": 3,"endSeconds": 6,"label": "proof","text": "Comparing grilled cheese made with washed vs. unwashed cheese, showing better melt."},{"startSeconds": 6,"endSeconds": 8,"label": "demo","text": "Reiterating the process of washing pre-shredded cheese."}],"cta": null,"ctaType": "none","pinnedComments": [],"creatorPinnedComment": null,"contentFormat": "how_to_demo","topics": ["shredded cheese","cooking tips","food hacks","grilled cheese","cheese melting"],"summary": "This video provides a cooking tip on how to improve the melt of pre-shredded cheese. It demonstrates washing the cheese to remove anti-caking agents, which are often added to prevent clumping. A visual comparison shows that washed cheese melts more smoothly and stretches better in a grilled cheese sandwich than unwashed cheese.","takeaways": ["Wash pre-shredded cheese to remove anti-caking agents for a better melt.","Removing anti-caking agents from shredded cheese can improve its stretch and texture in cooked dishes."],"entities": [],"language": "en","visualNotes": "A person washes pre-shredded cheese in a colander. The video then shows a side-by-side comparison of two grilled cheese sandwiches, one made with washed cheese and the other with unwashed cheese, demonstrating the superior melt and stretch of the washed cheese.","viewsVsCreatorMedian": 4.19,"isOutlier": true,"qualityFlag": "ok","qualityNote": null,"processedAt": "2026-07-31T10:44:49.182Z"}
Only the two long link signatures are shortened above; every other value is verbatim.
An audio-only transcript tool returns {"transcript": ""} for this reel. The instruction, the reason behind it and the before-and-after labels only ever existed in the frame — and this one reel beat its creator's median by 4.2×.
videoUrl is the video file itself, at Instagram's best quality, ready to hand to an editor or an archive. Instagram signs both that link and thumbnailUrl, and they expire — the video sooner than the picture, and not always after the same number of hours. So rather than asking you to remember a rule, the row tells you: videoUrlExpiresAt is the moment that link stops working. Save the file before then, or analyze the reel again for a fresh one.
Two more columns worth knowing about before you need them. metricsHidden is true when the creator has switched off their public like and view counts; the row then leaves viewCount and likeCount empty instead of repeating the placeholder Instagram sends in their place, and isOutlier stays empty too rather than scoring a reel against a number that was never real. And slideImageUrls carries a link to every image of a carousel post — carousels have no soundtrack to read, so on those rows it is the whole of the content.
Nobody pinned a comment under that one, so both pin columns are empty. When a creator does pin one, it arrives verbatim:
"creatorPinnedComment": "Comment \"NEXUS\" For More Information On How We Scale Businesses With Content","pinnedComments": [{ "username": "…", "text": "Comment \"NEXUS\" For More Information On How We Scale Businesses With Content", "isCreator": true, "likeCount": 29 }]
cta and ctaType stay the reel's own — they describe what happens in the video, and a pinned comment never rewrites them.
That creator recorded their own sound, so the audio columns name them and stop there. The other two cases fill in more — a licensed track brings its title and artist, and a borrowed sound names the account it actually belongs to, which is how you spot a creator riding someone else's trend:
"audioSource": "licensed_music","audioTitle": "Don't Dream It's Over","audioArtist": "Crowded House","audioOwnerUsername": "crowdedhousehq"
"audioSource": "borrowed_original","audioTitle": "Small habits","audioArtist": null,"audioOwnerUsername": "annierose.nelson"
The second one is the interesting case: the reel is by celin.ee_, but the sound belongs to annierose.nelson. Both say original_sounds in Instagram's own data, which is why this is a three-value column and not a yes-or-no flag.
⚡ Quick start
- Open the actor and leave the input empty.
- Press Start. The demo run analyzes 3 real reels of a sample creator — capped at 3 to keep it cheap, about $0.23, which your free monthly credit covers.
- Look at the 🔥 Hook Board link in the run's Output tab.
Then run it for real:
- One reel or a handful → paste links into Reel links.
- A whole creator → put their handle into Creator handles. Fill in one field or the other, never both.
⭐ Choose your mode
🎯 Mode 1: Break down specific reels
Paste reel links or shortcodes. One row per reel. Use this when a client sends you five links, when you want to check a single competitor post, or when you are calling the actor from a script.
🎯 Mode 2: Break down a creator's reels
Give a public handle. Before spending anything on analysis, the run reads that creator's recent catalog, works out their median view count, and only then analyzes the reels you asked for — sorted by top-performing unless you say otherwise. That is where viewsVsCreatorMedian and the outlier flag come from, and it is why the Hook Board can tell you which openings actually beat this creator's own average.
🧭 When to use it
- Building a swipe file. Forty reels from three competitors, grouped by hook type, sorted by how far they beat the creator's median.
- Reverse-engineering a format. The beat timeline shows how long the hook runs, where proof lands, and when the ask arrives.
- Writing scripts. Export the transcripts of everything that outperformed and paste them into your writing tool: "Here are 40 hooks from @handle that beat their median. Write 10 more in the same voice."
- Auditing your own account. Which of your openings work, in your own numbers, not a scoring model's.
- Cataloguing recipe, checklist and price content, where the substance is burned into the frame and no audio tool can reach it.
- Transcribing reels in bulk. Speech-to-text on the audio and text read straight off the frames, in the same pass — a list of links comes back as text, including the burned-in subtitles a creator added by hand.
- Researching UGC and ad creative. What a brand's paid creators actually open with, how they phrase the ask, and which of those reels beat that creator's own median.
- Vetting an influencer before you pay them. What they say on camera, how they close, and whether their best reel is an outlier or their normal.
- Reporting to a client. One row per reel — transcript, hook, call to action and the multiple of the median in the same table, instead of a folder of screenshots.
🎯 Example tasks
Ready-to-run examples — each opens a pre-configured task you can run in one click (no setup):
- Extract the script from an Instagram reel — Paste a reel link and get the spoken script word for word, plus the text on screen, the hook it opens with and the call to action.
- Transcribe an Instagram reel to text — Turn a reel into readable text. Every word said out loud, plus anything written on screen that the audio never says.
- Get the words from an Instagram video — Every word in a reel, spoken and written. Works on videos up to three minutes, and on the ones where nobody says anything at all.
- Get the on-screen text from an Instagram video — Read the text burned into the frame — steps, captions, prices, lists — in the order it appears. Audio-only tools cannot see any of it.
- Read the text in a reel with no sound — Silent reels still say plenty. Get every line written on screen, in order, from videos where nobody speaks a single word.
- Extract text from a music-only Instagram reel — Music playing, nobody talking, everything written on screen. Get the on-screen lines, the hook and how the reel is put together.
- Find the hooks that work for any Instagram creator — Give a handle. Get their reels ranked by how far each one beat their own median views, with the exact opening line of every one.
- See how a creator opens their best reels — The first seconds of a creator's biggest reels, written out: the spoken hook, the on-screen hook, and which kind of opening each one is.
- Find the call to action in top reels — What a creator actually asks for at the end of their best reels — save, follow, comment, link — and how far each reel beat their median.
- Build a swipe file from a competitor's reels — One row per reel: script, on-screen text, hook, structure and result. Paste a handle and get a working swipe file in minutes.
- Break down a creator's top performing reels — Their biggest reels taken apart: what was said, what was written on screen, how it opened, how it closed, how far it beat their median.
- Compare reel formats for any Instagram account — Talking head, voiceover, silent how-to, skit — see which format an account uses for its best reels, and how each one performed.
🛠 Input
| Field | Mode | Type | Default | Notes |
|---|---|---|---|---|
reelUrls | 1 | array | — | Reel links or bare shortcodes. Share links do not carry a post id — copy the /reel/ URL from a browser. |
maxItemsMode1 | 1 | integer | 50 | Stops after this many reels. |
usernames | 2 | array | — | Public handles, without the @. |
sortBy | 2 | select | Top performing | Or Newest. |
postedWithinDays | 2 | integer | — | Leave empty for the whole catalog. |
minViews | 2 | integer | — | Leave empty to include everything. |
maxItemsMode2 | 2 | integer | 50 | Per handle. Reels beyond the limit are still listed, ranked by views. |
Pick your mode first. Fields belonging to the other mode are ignored: if reelUrls has anything in it, the run is Mode 1 and every Mode 2 field is skipped.
💰 How much will analyzing Instagram reels cost?
$0.075 per reel on every plan, including the free one, dropping to $0.06 at the highest volume tiers. Any length up to 3 minutes — there is no per-minute surcharge, so a 3-minute tutorial costs the same as a 15-second hook.
| Plan | Per reel | 50 reels |
|---|---|---|
| Free | $0.075 | — |
| Bronze | $0.075 | $3.75 |
| Silver | $0.070 | $3.50 |
| Gold | $0.066 | $3.30 |
| Platinum | $0.063 | $3.15 |
| Diamond | $0.060 | $3.00 |
Plans differ in how much you can run, not in what a reel costs. The demo run on empty input is capped at 3 reels — about $0.23 — so trying the actor stays cheap, and there is no limit on how often you run it.
You are only charged for reels that were actually analyzed. Private, deleted, photo, carousel, longer-than-3-minute, expired-link and failed reels are delivered as free rows with the reason in the error column. Results the built-in quality check flags as low-quality are delivered too — and also not charged.
🆓 Free vs paid plan
| Free | Paid | |
|---|---|---|
| Price per reel | $0.075 | $0.075 → $0.060 |
| Reels per run | 5 (Mode 1: 3) | your maxItems |
| Creators per run | 1 | unlimited |
| Runs per month | 15 | unlimited |
| Which reels Mode 2 picks | the top 5 by views | your sortBy |
| Every field, full transcript, full on-screen text | ✅ | ✅ |
| Hook Board and the pattern tables | ✅ | ✅ |
| Ranked list of what was not analyzed | ✅ | ✅ |
| Demo run on empty input | 3 reels (~$0.23), unlimited | 3 reels, unlimited |
Free rows are not trimmed — they are the same complete rows a paid run produces, at the same price per reel. What the free plan limits is how much you can do at once: five reels from one creator per run, fifteen runs a month, and the allowance resets on the 1st. A free Mode 2 run deliberately analyzes the creator's five best reels rather than their five most recent, because five great hooks is the most useful five rows we can hand over.
🧪 Filter recipes
- What works for this creator right now → handle +
postedWithinDays: 90+sortBy: Top performing+maxItemsMode2: 30. - Their greatest hits, ever → handle +
minViews: 100000. - A fair read of their recent baseline → handle +
sortBy: Newest+postedWithinDays: 30. - A competitor set → three handles +
maxItemsMode2: 20. Every reel is scored against its own creator's median, so the comparison holds across accounts of different sizes.
🔁 Resume / checkpoint
Runs survive interruption. A migrating or aborted run records which reels it already finished, so resuming never re-analyzes a reel or charges for it twice. Everything finished before the interruption is already in the dataset — rows are pushed as each reel completes, not held to the end.
📡 Live status & storage records
| Record | What is in it |
|---|---|
🔥 Hook Board (status.html) | Live progress while the run works, then: which hooks, formats and calls to action outperform for this creator; every analyzed reel as a card ranked by its multiple of the creator's median; and a CSS timeline of each reel's structure |
RUN_SUMMARY | Status, counts, the creator's median views, duration, notes |
NOT_ANALYZED | Every reel in the catalog this run did not analyze, ranked by views, with URL, length, date and multiple of the median |
USER_MESSAGE | Plain-language account of what happened and what to do next — always written when a run returns no reels |
API_USAGE | Upstream request count and approximate cost, by endpoint |
FREE_LIMITS_APPLIED | Which free-plan caps applied, with the message shown |
🤖 Programmatic / API use
curl -X POST "https://api.apify.com/v2/acts/afanasenko~instagram-reel-script-extractor/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"usernames":["mattmurphyai"],"maxItemsMode2":20,"sortBy":"Top performing"}'
Read the results:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items"curl "https://api.apify.com/v2/actor-runs/$RUN_ID/key-value-store/records/NOT_ANALYZED"curl "https://api.apify.com/v2/actor-runs/$RUN_ID/key-value-store/records/USER_MESSAGE"
Every classification field is a closed set of values, so downstream code can switch on them without string matching. Every run writes USER_MESSAGE, so a script never has to guess why a run returned nothing.
💡 Tips & Best Practices
- Sort by
viewsVsCreatorMedian, then group byhookType. That single move is what turns 40 rows into a content strategy. onScreenTextIsCaptionsOnlytells you whether the burned-in text is worth reading. When it istrue, the creator only subtitled themselves; when it isfalse, the frame carries something the audio does not.- Scan wide, analyze narrow. Reading a creator's catalog metadata is roughly 400× cheaper than analyzing a reel, so a large
postedWithinDayswindow with a smallmaxItemsMode2costs almost nothing extra and gives a far better median. - Watch
qualityFlag. Asuspectrow means the built-in check caught the model repeating itself. Those rows are free, andqualityNotesays exactly what was collapsed or dropped. - Reels only. Carousels and photos come back as
not_videorows with full metadata, free. If a creator posts mostly carousels, you will see that immediately rather than getting an empty run.
❓ FAQ
Q: How do I transcribe an Instagram reel or video?
A: Paste the reel's /reel/ link into Reel links and press Start. Each reel comes back as one row with spokenTranscript for what is said and onScreenText for what is written on the frames. Use a browser link rather than a share link — share links do not carry a post id.
Q: Do I need to log in, or give an Instagram password? A: No. No login, no cookies, no session, no password, no Instagram account. The actor reads public posts only, nothing is connected to an account of yours, and nothing is posted on your behalf.
Q: Can I transcribe a creator's whole catalog at once? A: Yes — put the handle into Creator handles instead of pasting links. The run reads the creator's recent catalog first, so every reel is also scored against that creator's own median views, and you can filter by date or view count before anything is analyzed.
Q: Can I get Instagram transcripts programmatically?
A: Yes. This actor is the API — one POST returns the same rows the Console shows, as JSON, and there is a matching MCP tool for AI agents. The full call is in 🤖 Programmatic / API use below.
Q: How does the cost of transcribing reels compare?
A: One flat charge per analyzed reel at any length up to Instagram's 3-minute maximum — no per-minute or per-second surcharge, which is how most transcription tools bill. Reels that could not be analyzed arrive as free rows with the reason in error. The numbers are in 💰 How much will analyzing Instagram reels cost?
Q: Does it work on reels with no talking?
A: Yes — that is the main reason to use it. A silent, music-only reel returns hasSpeech: false, an empty spokenTranscript, and the complete on-screen text, hook, beats and call to action. Audio-only transcript tools return an empty string for these.
Q: How do I get the text that is burned into an Instagram video?
A: Run this actor on the reel link. onScreenText gives one entry per distinct card or slide. Word-by-word caption animations are collapsed to their final form, so you get the sentence once rather than twelve growing fragments of it.
Q: Is there a free way to try it? A: Yes. Leave the input empty and press Start — the demo run analyzes 3 real reels of a sample creator, capped at 3 so it costs about $0.23, and there is no limit on how often you run it. Apify's Free plan includes $5 of monthly credit, so the trial costs you nothing out of pocket. When you switch to your own accounts, the free plan analyzes 5 reels per run, from one creator, up to 15 runs a calendar month, with every field included and at the same price per reel as a paid plan. The allowance resets on the 1st.
Q: Can I use the Instagram API instead? A: Instagram's own API returns your own media and its caption. It does not transcribe audio, it does not read text burned into video frames, and it gives you nothing about accounts you do not own. This actor works on any public account.
Q: What are the alternatives to an Instagram transcript tool? A: Plain transcript actors give you the spoken words and stop there. If your content is talking-head with no on-screen text, they are cheaper. If you care about hooks, structure, on-screen text, or anything silent, they return either nothing or only half the reel.
Q: Is this speech-to-text, or OCR, or both?
A: Both, in one pass. The audio track becomes spokenTranscript. The frames are read separately for text drawn on them — prices, quantities, step numbers, lists, URLs, code — and that lands in onScreenText. A video-to-text tool that only listens returns an empty string for a silent reel; this one still returns the whole frame.
Q: Can I export the transcript as an SRT or VTT subtitle file?
A: No. The transcript arrives as text in spokenTranscript, without word-level timings, so it is not a subtitle track you can burn in. What is timed is the shape of the reel: every entry in beats carries the second it starts and the second it ends, and hookEndSeconds marks where the opening ends — enough to scrub straight to a section in an editor, not enough to build captions from.
Q: Does it read the caption under the post, or Instagram's auto-captions?
A: The written caption comes back in caption, because it is useful context — but nothing in the analysis depends on it, and Instagram's own auto-generated closed captions are not used at all. spokenTranscript is read from the audio and onScreenText from the frames, so a reel whose caption says nothing still returns a full row.
Q: Does it translate?
A: Never, and that now covers the whole row. The transcript and the on-screen text stay in the original language, mixed languages included, exactly as spoken and written. So do the parts written for you: a Spanish reel comes back with a Spanish summary, Spanish topics, Spanish takeaways and Spanish section labels, so you can search the results in the language you heard. language reports what was detected. Product and brand names keep their usual spelling.
Q: Are song lyrics transcribed?
A: No. A backing music track is not speech, so a reel whose only audio is a song returns an empty spokenTranscript and hasSpeech: false.
Q: Why is there a 3-minute limit?
A: 3 minutes is Instagram's own maximum length for a Reel. Longer posts are video or IGTV; they come back as free too_long rows with their metadata intact.
Q: What if a reel errors out mid-run?
A: It becomes a free row with analysisStatus naming the cause and error explaining it in plain words. Everything else in the run continues. Expired video links are re-resolved and retried once automatically.
Q: Why do some rows have no viewsVsCreatorMedian?
A: That column only exists in Mode 2, where the run has read the creator's catalog and can compute a real median. In Mode 1 there is nothing to compare against, and an invented baseline would be worse than an empty column.
Q: How do I find which hooks work for a competitor?
A: Run Mode 2 on their handle with sortBy: Top performing, then open the 🔥 Hook Board in the run's Output tab. It groups every analyzed reel by hook type, format and call to action, and shows the average multiple of that creator's median each group achieved. On a recipe account we tested, how_to_demo reels averaged 5.8× the creator's median; on a software account, four of the top five reels opened with a warning rather than a question.
Q: Can I analyze a reel that is longer than 3 minutes?
A: Not in this actor. Instagram caps Reels at 3 minutes, and posts above that are video or IGTV — they come back as free too_long rows carrying full metadata, so you can see them and decide separately.
Q: Does it download or store the videos? A: No. Each video is fetched, analyzed and discarded within the run. Nothing is kept, and you are not charged for bandwidth by the megabyte.
🔗 Other related actors (same author)
This actor is part of a family of focused tools — pick the one that matches your discovery model:
| You start with… | You want to find… | Use this actor |
|---|---|---|
| A reel link or a creator handle | What the reels actually say, show and ask for | This actor |
| A handle, keyword or location | Profiles with bio, contacts and engagement | Instagram Profile Scraper |
| A handle | Who follows that account | Instagram Followers Scraper |
| A handle | Similar accounts to it | Instagram Related Profiles Scraper |
| A handle you want to watch | Who joined and who left, over time | Instagram Follower Tracker & Monitor |
| An AI agent (Claude, Cursor, ChatGPT) | The same Instagram profile data from inside your agent — MCP tools it picks by intent | Instagram Profile MCP Server |
Start from a profile scraper when you are looking for accounts; start here when you already know the accounts and want to know what their content does.
🛟 Support & feedback
- Open an issue on the actor's Issues tab in Apify Console — fastest way to get a fix shipped.
- Feature requests in the same tab; we read every one.
- Ratings & reviews on the Apify Store page help other users find the actor.
⚖️ Is it legal to scrape Instagram?
Yes — the actor reads publicly available posts from public Instagram accounts and does not log in, bypass authentication, access private content, or interact with anything on your behalf. Videos are downloaded, analyzed and discarded; nothing is stored. Use it in compliance with Instagram's Terms of Service and applicable privacy laws (GDPR, CCPA).
