# Instagram Reels Transcript Scraper | AI Speech-to-Text (`ethereal_wool/instagram-reels-transcript-scraper`) Actor

Turn any Instagram Reel into text. Real AI speech recognition (not caption scraping) — works on Reels with no captions, in 8 languages including English & Chinese. Full text + timestamped sentences as clean JSON.

- **URL**: https://apify.com/ethereal\_wool/instagram-reels-transcript-scraper.md
- **Developed by:** [Jackie Chen](https://apify.com/ethereal_wool) (community)
- **Categories:** Social media, AI
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$25.00 / 1,000 transcript minutes

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Instagram Reels Transcript Scraper — AI Speech-to-Text

Turn any **Instagram Reel into text** with real AI speech recognition. Paste
reel links, get back the **full spoken transcript plus timestamped sentences**
as clean JSON — ready for LLMs, RAG pipelines, content research, and subtitle
workflows.

> **This is real ASR, not caption scraping.** Most "Instagram transcript" tools
> only read the captions a creator happened to upload — and most Reels have
> none. This Actor runs industrial speech recognition on the Reel's audio
> track, so it works on **any Reel with speech**, captions or not — across
> English, Chinese, Japanese, Korean, Cantonese, German, French, and Russian.

> **Unofficial.** This Actor is not affiliated with, authorized, or endorsed by
> Instagram / Meta. It is an independent tool that processes publicly available
> content. Use it in compliance with Instagram's terms and all applicable laws;
> you are responsible for how you use the retrieved data.

### What you get per Reel

- **Full transcript** (`fullText`) — the complete spoken content as one string.
- **Timestamped sentences** (`sentences[]`) — each with `startMs` / `endMs`,
  ready for subtitles, deep links, and clip selection.
- **Reel metadata** — author, caption, duration, publish time, play / like /
  comment counts, verification flag, and cover image URL, so every transcript
  arrives with its engagement context attached.

### Quick start

1. Open the Actor and press **Run** — the default input works out of the box.
2. Replace the example with your own reel links: reel URLs
   (`https://www.instagram.com/reel/XXXX/`), post URLs (`/p/XXXX/`), or bare
   shortcodes.
3. Optionally set the **spoken language** (auto-detect by default; a correct
   hint improves accuracy).
4. Collect results from the **Dataset** tab as JSON / CSV / Excel, or pull them
   via the [Apify API](https://docs.apify.com/api/v2) and MCP from your own code.

No proxies, no cookies, no login — everything runs server-side.

### Example output

```json
{
  "videoId": "DXqiQ-CiXmT",
  "videoUrl": "https://www.instagram.com/reel/DXqiQ-CiXmT/",
  "description": "Crispy Potato Triangle Recipe | Instant snack…",
  "author": "simrans_kitchen1",
  "authorName": "Simran's Kitchen",
  "isVerified": false,
  "durationSec": 20.7,
  "diggCount": 18400,
  "commentCount": 212,
  "language": "en",
  "detectedSpeech": true,
  "sentenceCount": 9,
  "fullText": "Today we're making the crispiest potato triangles you've ever had…",
  "sentences": [
    { "text": "Today we're making the crispiest potato triangles.", "startMs": 240, "endMs": 3100 }
  ]
}
```

### What people build with it

- **Viral-hook research** — pull transcripts of the top Reels in your niche and
  study the exact opening lines, structures, and phrases that earn views.
- **LLM & RAG pipelines** — index what creators actually *say* (not just
  captions) so your assistant can search and cite Reel content like documents.
- **Content repurposing** — turn Reels into blog posts, newsletters, scripts,
  and carousels with one LLM step on top of the transcript.
- **Brand & compliance monitoring** — audit what influencers say about your
  brand in sponsored Reels, without watching hours of video.
- **Subtitles & translation** — timestamped sentences drop straight into
  SRT/VTT generation and dubbing workflows.
- **Competitor analysis** — track the talking points and offers competitors
  push in their Reels, verbatim.

### Pricing & billing

Pay per started transcript minute (**$0.025/minute**, one-minute minimum).
Failed fetches, deleted/private Reels, image or carousel posts, and failed
transcriptions are **not charged**.

### Why this Actor

- **Works without captions** — real speech recognition on the audio track;
  caption-scraper alternatives return nothing on most Reels.
- **Multi-language** — auto-detects, with hints for English, Chinese, Japanese,
  Korean, Cantonese, German, French, and Russian.
- **Engagement context included** — every transcript ships with like / comment
  / play counts, so you can rank by performance immediately.
- **Direct API, no headless browser** — fast, stable runs with nothing to babysit.
- **No login, no cookies** — we never touch your accounts, so there's no ban risk.
- **Structured JSON** — export to CSV, Excel, or JSON, or pull straight from
  the API / MCP.

### Tips for better results

- Feed it the winners: find the top-performing Reels in your niche first
  (search / profile / hashtag scrapers), then transcribe just those.
- Sentence timestamps let you deep-link to the exact second a phrase is spoken
  — handy for review and clip selection.
- `detectedSpeech: false` flags music-only / no-speech Reels so you can filter
  them out downstream.

### FAQ

**Do I need an account, cookies, or to log in anywhere?**
No. The Actor talks to fast, direct HTTP APIs server-side — you just provide
reel links and run it.

**Does it work on Reels without captions?**
Yes — that's the point. It runs real speech recognition on the audio, so
captions are never required.

**Which languages are supported?**
English, Chinese (Mandarin + dialects), Japanese, Korean, Cantonese, German,
French, and Russian. Auto-detect picks among these. Other languages (e.g.
Spanish, Hindi, Arabic) are not supported and will produce poor results, so
stick to the listed languages.

**Can it transcribe regular video posts, not just Reels?**
Yes — any Instagram post that contains a video works. Image and carousel posts
have no audio and are skipped (and not charged).

**How am I billed?**
$0.025 per started transcript minute. Reels that can't be fetched or
transcribed are not charged.

**Can I run it on a schedule or call it from my app?**
Yes — use Apify Schedules, the REST API, the JavaScript / Python clients, or
the MCP server. See the **API** tab.

**Is this affiliated with Instagram?**
No. It's an independent tool that processes publicly available content. Use it
in line with the platform's terms and applicable law.

# Actor input Schema

## `videoUrls` (type: `array`):

Instagram Reel or video-post links to transcribe. Accepts reel URLs (`https://www.instagram.com/reel/XXXX/`), post URLs (`/p/XXXX/`), or bare shortcodes. One transcript is produced per video.

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

Language spoken in the Reels. Leave on Auto unless you know it — a correct hint improves accuracy. Supported: English, Chinese, Japanese, Korean, Cantonese, German, French, Russian.

## `proxyConfiguration` (type: `object`):

Optional. Route the upstream API calls through an Apify Proxy to vary the source IP. Usually not needed.

## Actor input object example

```json
{
  "videoUrls": [
    "https://www.instagram.com/reel/DXqiQ-CiXmT/"
  ],
  "language": "auto",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "videoUrls": [
        "https://www.instagram.com/reel/DXqiQ-CiXmT/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ethereal_wool/instagram-reels-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 = { "videoUrls": ["https://www.instagram.com/reel/DXqiQ-CiXmT/"] }

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

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

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

```

## CLI example

```bash
echo '{
  "videoUrls": [
    "https://www.instagram.com/reel/DXqiQ-CiXmT/"
  ]
}' |
apify call ethereal_wool/instagram-reels-transcript-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ethereal_wool/instagram-reels-transcript-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/Yxxco5x0xfEKb8fQl/builds/iPtKNk0RWXyDqztZw/openapi.json
