# Instagram Reel Transcript Scraper (`piotrv1001/instagram-reel-transcript-scraper`) Actor

Turn public Instagram reels and video posts into text: the full spoken transcript with timestamped segments and detected language, plus caption, hashtags, author, likes, comment count, duration, post date and video link. Paste many reel URLs, export to JSON, CSV or Excel. No login needed.

- **URL**: https://apify.com/piotrv1001/instagram-reel-transcript-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** Social media, AI, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 reels

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🚀 Instagram Reel Transcript Scraper

Turn **public Instagram reels and video posts into text**. The **Instagram Reel Transcript Scraper** returns the full spoken transcript with timestamped segments and the detected language, together with the reel's caption, hashtags, author, like and comment counts, duration, post date and video link. Paste as many reel links as you like; no Instagram account is needed. Use it for content research, repurposing reels into blog posts or captions, competitor and influencer analysis, subtitle drafts or feeding video content into AI pipelines.

### ✨ Features

- 🗣️ **Full Transcript**: Everything said in the reel as clean, punctuated text.
- ⏱️ **Timestamped Segments**: The transcript split into segments with start and end times in seconds.
- 🌍 **Language Detection**: The spoken language is detected automatically, or set it yourself.
- 📝 **Reel Data**: Caption, hashtags, mentions, likes, comment count, post date, duration, thumbnail and video URL.
- 👥 **People & Audio**: Author (username, name, ID, verified badge), co-authors, tagged users, and the song or original audio used.
- 🔇 **Fair on Silent Reels**: Reels with only music or no sound come back with a note and are never charged for transcription.
- 📦 **Bulk**: Many reel links per run.

### 🛠️ How It Works

1. **Paste reel URLs** – `instagram.com/reel/…`, `/p/…` video posts or bare shortcodes, one per line.
2. **Pick the language** – leave it on automatic detection unless the results come back in the wrong language.
3. **Run the Scraper** – download the transcripts as JSON, CSV or Excel or pull them through the API.

### ⚙️ Input

| Field                    | What it does                                                         |
| ------------------------ | -------------------------------------------------------------------- |
| **Reel or video URLs**   | Instagram reel or video post links (or shortcodes), one per line.    |
| **Spoken language**      | Automatic detection by default; pick a language to force it.         |
| **Max reels**            | Stop after this many reels. Default 50.                              |

```json
{
    "reels": ["https://www.instagram.com/reel/DeaczVRhexL/"],
    "language": "auto",
    "maxItems": 50
}
```

### 💰 Pricing

Pay only for what you get. No monthly rental.

| Event                 | Price                                   | What you get                                                     |
| --------------------- | --------------------------------------- | ---------------------------------------------------------------- |
| **Reel**              | $0.003 per reel ($3 per 1,000)          | One reel or video with all post fields below                     |
| **Transcript minute** | $0.006 per started minute of speech     | The transcript, segments and language of that reel               |
| **Actor start**       | $0.00005 per run                        | Charged once when the run starts.                                |

Examples: a 45-second reel = $0.003 + $0.006 = **$0.009** · a 2½-minute reel = $0.003 + 3 × $0.006 = **$0.021** · 100 reels under a minute each = **$0.90**. Reels with no speech (music only or silent) cost the reel fee alone. Photo posts, private and removed reels are listed in the run's status message and not charged.

### 📊 Sample Output Data

```json
{
    "id": "4006641491337669707",
    "shortcode": "DeaczVRhexL",
    "link": "https://www.instagram.com/reel/DeaczVRhexL/",
    "type": "video",
    "isReel": true,
    "isVideo": true,
    "caption": "Comment BRAIN FOOD & I will DM you a link to the full episode: How Food Choices Shape Memory, Cognition & Cravings | with Dr. Scott Kanoski\n\nMy guest on the Huberman Lab podcast out now is Dr. Scott Kanoski, PhD, Professor of Human and Evolutionary Biology and Neurobiology at the University of Southern California. \n\nWe discuss how different foods impact memory and cognitive function as well as your cravings. \n\nWe also discuss how GLP-1 drugs work to control hunger in the brain and body, the role of the gut microbiome, and the effects of artificial and low calorie sweeteners on hunger and satiety. \n\nThis episode highlights how nutrition impacts much brain health and learning capacity and how our memory impacts food choices too.\n\nComment BRAIN FOOD & I will DM you a link to the episode. \n\nYou can also find it on all major podcast platforms, \n\nMeanwhile, please put any questions in the comments section below, and as always, thank you for your interest in science!\n\n@stanford.med @stanford \n#neuroscience #science #ciência #neurociencia #craving",
    "hashtags": [
        "neuroscience",
        "science",
        "ciência",
        "neurociencia",
        "craving"
    ],
    "mentions": [
        "stanford.med",
        "stanford"
    ],
    "timestamp": 1791849258,
    "takenAt": "2026-10-12T23:54:18.000Z",
    "likes": 27553,
    "comments": 1294,
    "displayUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-15/…",
    "thumbnailUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-15/…",
    "videoUrl": "https://scontent-lga3-1.cdninstagram.com/o1/v/…",
    "width": 720,
    "height": 1280,
    "accessibilityCaption": null,
    "username": "hubermanlab",
    "userFullName": "Andrew Huberman, Ph.D.",
    "userId": "4293712500",
    "userIsVerified": true,
    "userProfilePicUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.2885-19/…",
    "coauthors": [],
    "taggedUsers": [
        {
            "id": "177182564",
            "username": "uscedu",
            "fullName": "USC",
            "isVerified": true,
            "profilePicUrl": "https://…"
        }
    ],
    "location": null,
    "music": {
        "title": "Original audio",
        "artist": "hubermanlab",
        "isOriginalAudio": true,
        "audioId": "29238676309063032"
    },
    "childPosts": [],
    "isPaidPartnership": false,
    "commentsDisabled": false,
    "likeAndViewCountsDisabled": false,
    "durationSeconds": 38.51,
    "transcript": "If I eat healthy foods and I like the way they taste, I find that I crave those foods. And I don't tend to crave other foods presumably because I'm sated. I'm not I'm not excessively hungry. But is there a way that we can recalibrate the system? It seems there is. I think so. I mean, the examples you're saying make make a lot of sense in in individuals who consume a lot of sugar, who stop consuming it or or consume much less, they they change their preference. You know, something that they normally would have enjoyed is now too sweet. So there's a lot of plasticity in terms of what we want to eat. Mhmm. And that's based largely on what what we choose to",
    "transcriptLanguage": "en",
    "transcriptConfidence": 0.999,
    "transcriptSegments": [
        {
            "start": 0,
            "end": 15.28,
            "text": "If I eat healthy foods and I like the way they taste, I find that I crave those foods. And I don't tend to crave other foods presumably because I'm sated. I'm not I'm not excessively hungry. But is there a way that we can recalibrate the system? It seems there is."
        },
        {
            "start": 15.545,
            "end": 35.41475,
            "text": "I think so. I mean, the examples you're saying make make a lot of sense in in individuals who consume a lot of sugar, who stop consuming it or or consume much less, they they change their preference. You know, something that they normally would have enjoyed is now too sweet. So there's a lot of plasticity in terms of what we want to eat. Mhmm."
        }
    ],
    "transcriptMinutes": 1,
    "transcriptNote": null,
    "scrapedAt": "2026-10-20T06:30:54.952Z"
}
```

`transcriptMinutes` is the number of started minutes charged for that reel (0 when no speech was found). `transcriptNote` explains an empty transcript, for example "No speech detected in this video."

### ❓ FAQ

**Do I need an Instagram account or cookies?** No. Only public reels and videos are available.

**Which languages are supported?** English, Spanish, Portuguese, French, German, Italian, Dutch, Polish, Hindi, Japanese, Korean, Chinese, Russian, Turkish, Swedish, Danish, Norwegian, Ukrainian and Indonesian. Automatic detection picks the main one; if a reel mixes languages, set the main one yourself.

**What about reels with only music?** You get the reel data with an empty transcript and a note, charged at the reel fee only.

**Are carousel posts transcribed?** No, only single reels and video posts. Carousels and photo posts are skipped and not charged.

**How long do the video links work?** Instagram's media links expire after a few days, so download the files you need soon after the run.

### 🔗 More Instagram Actors

- [Instagram Post Scraper](https://apify.com/piotrv1001/instagram-post-scraper): full data of any public post or reel by URL.
- [Instagram Comments Scraper](https://apify.com/piotrv1001/instagram-comments-scraper): comments of any public post or reel with author, likes and date.
- [Instagram Profile Posts Scraper](https://apify.com/piotrv1001/instagram-profile-posts-scraper): the latest posts and reels of any public profile.

# Actor input Schema

## `reels` (type: `array`):

Instagram reel or video post links (instagram.com/reel/…, /p/…) or shortcodes, one per line.

## `language` (type: `string`):

Language of the speech. Leave on automatic unless detection gets it wrong.

## `maxItems` (type: `integer`):

Stop after this many reels.

## Actor input object example

```json
{
  "reels": [
    "https://www.instagram.com/reel/DeaczVRhexL/"
  ],
  "language": "auto",
  "maxItems": 50
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "reels": [
        "https://www.instagram.com/reel/DeaczVRhexL/"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/instagram-reel-transcript-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "reels": ["https://www.instagram.com/reel/DeaczVRhexL/"],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/instagram-reel-transcript-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "reels": [
    "https://www.instagram.com/reel/DeaczVRhexL/"
  ],
  "maxItems": 50
}' |
apify call piotrv1001/instagram-reel-transcript-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,piotrv1001/instagram-reel-transcript-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/4weaiBTyXmmHaDhPo/builds/5gXdBlYgkfmaRD8ZH/openapi.json
