Instagram Reel Transcript & Frame Analyzer for AI avatar

Instagram Reel Transcript & Frame Analyzer for AI

Pricing

from $20.00 / 1,000 reel analyzeds

Go to Apify Store
Instagram Reel Transcript & Frame Analyzer for AI

Instagram Reel Transcript & Frame Analyzer for AI

Get the transcript and 12 key frames of any Instagram reel in one JSON row, ready for Claude, GPT or Gemini vision. Plus caption, likes, comments, duration and music-only detection. Built for n8n, Make and AI agents via MCP. Pay only for reels analyzed successfully.

Pricing

from $20.00 / 1,000 reel analyzeds

Rating

0.0

(0)

Developer

Yely Shepetko

Yely Shepetko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

Get the transcript of any Instagram reel plus 12 key frames in one image, ready for Claude, GPT or Gemini vision. Each row has the speech transcript, a music-only flag, the caption, likes and comments, the exact duration, the username and a 12-frame contact sheet image of the video.

It's built for automations and AI agents in n8n, Make, Zapier, the Apify API and Apify MCP. It's a good fit when an LLM needs to understand what a reel says and shows, without downloading videos or running Whisper yourself.

  • No invented transcripts. A voice-activity detector checks the audio before transcription. Music-only reels return speech: false and an empty transcript, never phantom text like "Thanks for watching".
  • Vision-ready. One JPEG with 12 frames sampled evenly from the first to the last second. Pass it straight to GPT-4o, Claude or Gemini.
  • Pay only for results. You are charged once per successfully analyzed reel. Invalid links, private or deleted reels and failures are returned as free rows with a reason.
  • No login, no cookies, no proxies to configure.

Who it's for

  • Automation builders (n8n, Make, Zapier) who build content research, competitor monitoring or repurposing workflows.
  • AI agent developers who need a reliable "watch this reel" tool via Apify MCP or the API.
  • SMM agencies and creators who break down reference reels: hooks, scripts and shot sequences.
  • RAG and LLM pipelines that need structured text plus images from short-form video.

Input

FieldTypeDescription
reelUrlsarray of stringsPublic Instagram Reel or video post links. Up to 50 per run.

Accepted links: instagram.com/reel/…, /reels/…, /p/… (video posts), /tv/… and instagram.com/username/reel/…. Tracking parameters like ?igsh= are removed automatically and duplicates are merged. Anything else (TikTok, YouTube, profiles, stories, other domains) is rejected and not charged.

{
"reelUrls": [
"https://www.instagram.com/reel/Cp5514CB-s3/",
"https://www.instagram.com/reel/ABC123xyz45/?igsh=abc"
]
}

Output

One dataset row per input link. This example is from a real run; names, IDs and links are anonymized and the long text is shortened.

A reel with speech:

{
"inputUrl": "https://www.instagram.com/reel/ABC123xyz45/",
"url": "https://www.instagram.com/reel/ABC123xyz45/",
"shortcode": "ABC123xyz45",
"status": "success",
"username": "example_creator",
"accountId": "1234567890",
"displayName": "Example Creator",
"postedAt": "2023-03-17",
"durationSec": 88.56,
"views": null,
"likes": 75256,
"comments": 1314,
"caption": "The most spectacular butcher shop in the world. I dreamed about that steak last night… #butcher #butchershop #meatmarket",
"speech": true,
"audio": "speech",
"transcript": "This is the fanciest butcher shop in the world. It is actually just a butcher shop, even though it looks more like a luxury boutique. They have a dry aging program…",
"language": "English",
"contactSheetUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/contact-sheet-ABC123xyz45?signature=<signature>",
"contactSheetLayout": { "cols": 4, "rows": 3, "order": "left-to-right, top-to-bottom" },
"missing": { "views": "Instagram does not expose play counts to logged-out requests" },
"charged": true,
"analyzedAt": "2026-11-07T08:02:30.877Z"
}

A music-only reel (no invented text):

{
"url": "https://www.instagram.com/reel/DEF456uvw78/",
"status": "success",
"username": "example_studio",
"durationSec": 22.69,
"likes": 21,
"comments": 4,
"caption": "POV: life starts to feel like stop motion…",
"speech": false,
"audio": "music_only",
"transcript": "",
"language": null,
"contactSheetUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/contact-sheet-DEF456uvw78?signature=<signature>",
"missing": { "views": "Instagram does not expose play counts to logged-out requests" },
"charged": true
}

A reel that could not be analyzed (free):

{
"url": "https://www.instagram.com/reel/XXXXXXXXXXX/",
"status": "failed",
"error": "download_failed",
"errorMessage": "Could not fetch this reel from Instagram. Try again later.",
"charged": false
}

Fields

FieldDescription
statussuccess, partial (incomplete, free), failed (free) or rejected (invalid link, free)
username, displayName, accountIdThe account that posted the reel
postedAtPosting date, YYYY-MM-DD
durationSecExact length read from the video file
likes, commentsEngagement counts
viewsPlay count. Usually null; see FAQ
captionFull caption with hashtags
speechtrue if real human speech was detected, otherwise false
audiospeech, music_only or no_audio
transcriptFull speech-to-text in the original language. Empty when speech is false
languageDetected speech language
contactSheetUrlSigned link to a JPEG with 12 frames (4×3 grid) covering the whole video
missingFor each empty field, the reason it could not be fetched
chargedtrue only for rows you paid for
error, errorMessageError code and a plain-English reason, on free rows

How to get Instagram reel transcripts (API, n8n, Make, MCP)

Apify API (any language)

For small batches (about 10 reels or fewer), run the Actor synchronously and get results in one call:

curl -X POST "https://api.apify.com/v2/acts/yely~instagram-reel-analyzer/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"reelUrls": ["https://www.instagram.com/reel/Cp5514CB-s3/"]}'

Synchronous calls wait up to 5 minutes. For bigger lists, start the run with POST /v2/acts/yely~instagram-reel-analyzer/runs, wait for it to finish (or use a webhook), then read GET /v2/datasets/{defaultDatasetId}/items.

n8n

  1. Add the Apify node and connect your Apify account.
  2. Choose Run an Actor and get dataset items (or Run an Actor, then Get dataset items).
  3. Actor: yely/instagram-reel-analyzer. Input JSON: {"reelUrls": ["{{ $json.reelUrl }}"]}.
  4. Each output item is one reel. Map transcript, caption and contactSheetUrl into your LLM node (for example OpenAI or Anthropic with an image input).

Make (Integromat)

  1. Add the Apify → Run an Actor module and pick yely/instagram-reel-analyzer.
  2. Set Run synchronously to Yes and the input to {"reelUrls": ["<reel url>"]}.
  3. Add Apify → Get Dataset Items with the run's defaultDatasetId and iterate over the rows.

Zapier

Use the Apify app's Run Actor action with the same Actor and input. Then use Fetch Dataset Items to get the rows.

AI agents via Apify MCP

Add the Apify MCP server to Claude, Cursor or any MCP client and allow this Actor:

https://mcp.apify.com?tools=yely/instagram-reel-analyzer

The agent can then call the Actor with a list of reel URLs. It gets back the transcript plus the contact sheet link, which it can open as an image to "watch" the reel.

Analyze Instagram reels with AI

Send the transcript, the caption and the contactSheetUrl to a vision model such as Claude, GPT or Gemini, with the contact sheet passed as an image. The model then sees what the reel says and what it shows, frame by frame, without you downloading the video. A prompt like this works well:

Look at the frames and the transcript. Tell me the hook in the first 3 seconds, the format, the CTA and why this reel worked.

Pricing

$0.02 per successfully analyzed reel. No monthly fee.

100 reels cost $2, 1,000 reels cost $20.

  • A reel is charged once, when its row is delivered with status: "success".
  • Rejected links, private, deleted or unavailable reels, failed downloads and incomplete analyses are free.
  • Set Max cost per run in run options to cap spending. The Actor processes only as many reels as your budget allows and then stops.

Limits

  • Up to 50 reels per run. Split bigger lists into several runs.
  • Rate limits per Apify account: 60 reels per hour and 200 per day on paid Apify plans, 30 per hour and 100 per day on the free plan. There is also an overall capacity limit shared by all users.
  • If a limit is reached, the run waits and continues (up to 15 minutes in total, never past your run timeout). The log tells you when a reel is delayed. Reels that still can't get through come back as free failed rows with error: "rate_limited" and the time to try again.
  • Only public reels and video posts. Stories, highlights, profiles and carousels of photos are not supported.
  • Reels are processed two at a time. Typical speed is 5–30 seconds per reel.
  • Very long videos may not get a transcript; the row then returns status: "partial" and is free.

FAQ

What happens with music-only reels? You get the caption, stats, duration and the 12-frame contact sheet, with speech: false, audio: "music_only" and an empty transcript. A voice-activity detector checks the audio before transcription. Filters then remove known Whisper hallucinations ("Thanks for watching", "Subtitles by…") and repeated lines. Reels without any audio track return audio: "no_audio".

Why is views often empty? Instagram does not show play counts to visitors who are not logged in, and this Actor never logs in to Instagram. That protects you and avoids account bans. When a value can't be fetched, the field is null and missing.views gives the reason. Likes, comments, duration and username are filled.

Do I need an Instagram account, cookies or a proxy? No. Just paste public reel links.

Which languages are transcribed? Speech is transcribed in its original language: English, Spanish, Portuguese, Russian, Ukrainian, German, French and many more. language tells you which one was detected.

How do I feed the frames to an LLM? contactSheetUrl is a signed, direct JPEG link. Pass it as an image URL to any vision model. Frames read left to right, top to bottom, sampled evenly across the whole video.

How do I get reel links from a profile? Use Apify's Instagram Reel Scraper to collect reel URLs from a username, then pass them to this Actor.

Is this legal? The Actor only reads publicly available content and does not log in. You are responsible for how you use the data, including copyright and personal-data rules where you operate.