# Instagram Video Scraper API – Extract Video, Audio & Metadata (`apple_yang/instagram-video-scraper-api`) Actor

Instagram Video Scraper API for extracting video data, audio, and metadata from public Reels and posts. Fast, reliable, and built for developers, AI processing, and automation workflows.

- **URL**: https://apify.com/apple\_yang/instagram-video-scraper-api.md
- **Developed by:** [APISmith](https://apify.com/apple_yang) (community)
- **Categories:** Social media
- **Stats:** 89 total users, 6 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#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 Video Scraper API

Extract **video, audio, and metadata** from any public Instagram post or Reel in seconds. Built for developers, AI pipelines, and automation workflows.

***

### Our Video Downloader Suite

Need to extract videos from other platforms? Check out our complete downloader collection:

| Platform | Video Downloader | Transcript Extractor |
|----------|-----------------|---------------------|
| **TikTok** | [TikTok Video Downloader](https://apify.com/apple_yang/tiktok-video-audio-downloader) | [TikTok Transcript Extractor](https://apify.com/apple_yang/tiktok-transcripts-scraper) |
| **Instagram** | [Instagram Video Scraper API](https://apify.com/apple_yang/instagram-video-scraper-api) ⭐ | [Instagram Transcript Extractor](https://apify.com/apple_yang/instagram-transcripts-scraper) |
| **X (Twitter)** | [X Video Downloader](https://apify.com/apple_yang/twitter-video-scraper-api) | [X Transcript Extractor](https://apify.com/apple_yang/twitter-video-transcript-api) |
| **Facebook** | [Facebook Video Downloader](https://apify.com/apple_yang/facebook-video-audio-downloader) | [Facebook Transcript Extractor](https://apify.com/apple_yang/facebook-transcript-scraper-api) |
| **Douyin** | [Douyin Video Downloader](https://apify.com/apple_yang/douyin-video-audio-downloader) | [Douyin Transcript Extractor](https://apify.com/apple_yang/douyin-transcripts-scraper) |
| **Bilibili** | [Bilibili Video Downloader](https://apify.com/apple_yang/bilibili-video-audio-downloader) | [Bilibili Transcript Extractor](https://apify.com/apple_yang/bilibili-transcripts-scraper) |

#### 🌟 Special Offerings

- **[High Accuracy Douyin Transcripts Scraper](https://apify.com/apple_yang/high-accuracy-douyin-transcripts-scraper)** — Premium quality transcription specifically optimized for Douyin (抖音) content with enhanced accuracy for Mandarin speech.

***

### What does Instagram Video Scraper API do?

Instagram Video Scraper API extracts **complete media assets and metadata** from public Instagram posts. Provide a single video URL, get back:

- 🎬 **Direct video download link** (MP4)
- 🎵 **Direct audio download link** (MP4 wrapper, audio only)
- 📊 **Full metadata** — title, engagement stats, author info, timestamps
- ⚡ **Instant results** — typically completes in 5-15 seconds

Perfect for **AI training data collection**, **content analysis pipelines**, and **automation workflows** that need reliable access to Instagram media without authentication complexity.

***

### What can this API extract?

| Field | Type | Description |
|-------|------|-------------|
| `url` | string | Original Instagram post URL |
| `code` | string | Shortcode identifier (e.g., "DULBkEngpxg") |
| `pk` / `id` | string | Unique post identifier |
| `title` | string | Post caption/title text |
| `img` | string | Thumbnail image CDN URL |
| `videoUrl` | string | **Direct MP4 video download link** |
| `audioUrl` | string | **Direct audio stream URL (MP4 wrapper, audio only)** |
| `createTime` | number | Unix timestamp of post creation |
| `likeCount` | number | Number of likes |
| `commentCount` | number | Number of comments |
| `userPk` | string | Author's unique ID |
| `userName` | string | Author's username |
| `userFullName` | string | Author's display name |
| `avatarUri` | string | Author's profile picture URL |
| `timestamp` | string | ISO 8601 timestamp of extraction |
| `errMsg` | string | Error message (if any) |

***

### Quick Start

#### Option 1: No-Code (Apify Console)

The easiest way to get started without writing any code:

1. **Sign up** for a free Apify account at [console.apify.com](https://console.apify.com/sign-up)
2. **Open** [Instagram Video Scraper API](https://apify.com/apple_yang/instagram-video-scraper-api)
3. **Paste** your Instagram video URL(s) in the input field
4. **Click** the "Start" button to run the scraper
5. **Download** your results in JSON, CSV, or Excel format from the Storage tab

> 💡 **Tip:** You can add multiple URLs at once by separating them with commas or line breaks.

#### Option 2: API Integration

For developers who want to integrate into their applications:

##### 1. Get your API token

Sign up at [Apify Console](https://console.apify.com/sign-up) and copy your API token from the [Integrations](https://console.apify.com/account#/integrations) page.

##### 2. Make a request

**cURL:**

```bash
curl -X POST 'https://api.apify.com/v2/acts/apple_yang/instagram-video-scraper-api/runs?token=YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "videoUrls": ["https://www.instagram.com/p/DULBkEngpxg"]
  }'
```

**JavaScript:**

```javascript
const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('apple_yang/instagram-video-scraper-api').call({
  videoUrls: ['https://www.instagram.com/p/DULBkEngpxg']
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].videoUrl);  // Direct video link
```

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_TOKEN')
run = client.actor('apple_yang/instagram-video-scraper-api').call(
    run_input={'videoUrls': ['https://www.instagram.com/p/DULBkEngpxg']}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['videoUrl'])  # Direct video link
```

##### 3. Download your data

Retrieve results via API or download from the [Apify Console](https://console.apify.com/storage) in JSON, CSV, or Excel format.

***

### Input

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `videoUrls` | array of strings | ✅ Yes | List of Instagram post URLs to extract |

#### Input example

```json
{
  "videoUrls": [
    "https://www.instagram.com/p/DULBkEngpxg"
  ]
}
```

> 💡 **Tip:** You can provide multiple URLs in the array to process several videos in one API call.

***

### Output

Results are returned as a JSON array. Download via API or export as JSON, CSV, or Excel.

#### Output example

```json
[
  {
    "url": "https://www.instagram.com/p/DULBkEngpxg",
    "code": "DULBkEngpxg",
    "pk": "3822155585659509856",
    "id": "3822155585659509856_1545072991",
    "title": "Oh god",
    "img": "https://scontent-iad6-1.cdninstagram.com/v/t51.71878-15/624989522_1998346944230660_5244501345448463403_n.jpg...",
    "videoUrl": "https://scontent-iad3-2.cdninstagram.com/o1/v/t2/f2/m367/AQPgYedK4JszPnig1iXW4hXOgkP6_6GDfVY303oU2blf3dE28b_S8_ChwREoCt-2Y_Qe0qZSXA_Gx8QzGCetHXvG3AkiXx4BFTlSxYY.mp4...",
    "audioUrl": "https://scontent-iad6-1.cdninstagram.com/o1/v/t2/f2/m78/AQPMm_zFhZ17YQ26FzMFYSO4lO8Q59xYUwSxKgW6xQFgtlDJ8qqZi0kBTLkgnpyt6zsU7gjOUb9X-vm7yiQImF2J5IUMYWquQ1OqSNE.mp4...",
    "createTime": 1769856503,
    "likeCount": 421546,
    "commentCount": 2728,
    "userPk": "1545072991",
    "userName": "kamil_szymczak",
    "userFullName": "Kamil Szymczak",
    "avatarUri": "https://scontent-iad3-2.cdninstagram.com/v/t51.82787-19/589181294_18543149641048992_1930633461376333251_n.jpg...",
    "errMsg": "",
    "timestamp": "2026-04-01T02:20:50.958Z"
  }
]
```

***

### How much does it cost?

**Pay-per-result pricing** — only pay for successful extractions.

| Apify Tier | Price per 1,000 results | Best for |
|-----------|------------------------|----------|
| **Free** | $2.50 | Testing, small projects |
| **Starter** | $2.00 | Individual developers |
| **Scale** | $1.50 | Growing teams |
| **Business** | $1.00 | High-volume operations |

#### Free to start

The [Apify Free plan](https://apify.com/pricing) includes **$5 in compute credits monthly**, allowing you to extract approximately **2,000 videos for free** every month.

#### Cost example

| Videos extracted | Free tier | Starter tier | Scale tier | Business tier |
|-----------------|-----------|--------------|------------|---------------|
| 1,000 | $2.50 | $2.00 | $1.50 | $1.00 |
| 10,000 | $25.00 | $20.00 | $15.00 | $10.00 |
| 100,000 | $250.00 | $200.00 | $150.00 | $100.00 |

***

### Use cases

#### 🤖 AI & Machine Learning

- Build video understanding models
- Train audio classification systems
- Create multimodal datasets

#### 📊 Content Analysis

- Extract audio for transcription services
- Analyze engagement patterns
- Build content recommendation engines

#### 🔄 Automation Pipelines

- Auto-download creator content
- Archive viral videos for research
- Feed media into processing workflows

#### 🎵 Audio Processing

- Isolate music tracks from Reels
- Analyze audio signatures
- Build music recognition systems

***

### Important notes

#### URL availability

The `videoUrl` and `audioUrl` links are provided directly from Instagram's CDN and are typically stable, but **may become invalid if Instagram changes their infrastructure**. We recommend downloading media files promptly after extraction to ensure availability. For transcription workflows, the extracted text data remains permanently accessible.

#### Public content only

This API only works with **publicly accessible** Instagram posts. Private accounts, stories, and content requiring authentication cannot be accessed.

#### Rate limiting

Requests are processed through Apify's infrastructure with built-in proxy rotation to ensure reliable access. Large batches may take longer to complete.

***

### FAQ

#### Is it legal to scrape Instagram videos?

This API only extracts **publicly available data** that users have chosen to share openly. We do not access private content or personal data.

However, you should be aware that:

- Results may contain personal data protected by GDPR and other regulations
- You should only scrape data you have a legitimate reason to use
- Downloaded media should be used in compliance with copyright laws
- When in doubt, consult legal counsel

Read more about [web scraping legality](https://blog.apify.com/web-scraping-legal/).

#### What if a URL fails?

If a video is deleted, private, or unavailable, that specific URL will return an error in the `errMsg` field. Other URLs in your batch will continue processing normally.

#### Can I extract from Reels?

Yes. This API works with both regular Instagram posts (`/p/`) and Reels (`/reel/`).

#### Do you offer custom solutions?

For high-volume needs, custom features, or enterprise integrations, contact us to discuss tailored solutions.

***

### Support

We're committed to making your experience smooth and productive. Whether you're just getting started or running large-scale operations, we're here to help:

#### Get in touch for anything:

- 🐛 **Found a bug?** — Let us know what went wrong and we'll fix it quickly
- 💡 **Need a feature?** — Tell us what would make your workflow better
- ❓ **Have questions?** — Stuck on something? Ask us anything about using the API
- 🚀 **Hit a limitation?** — If our current setup doesn't quite fit your needs, let's talk
- 🏢 **Enterprise needs?** — High-volume requirements, custom integrations, or tailored solutions — we can build it

📧 **Contact us:** <support@transcript365.com>

We read every email and typically respond within 24 hours. Don't hesitate to reach out — your feedback helps us improve!

***

*Built for developers who need reliable Instagram media extraction without the complexity.*

# Actor input Schema

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

The URLs of the instagram you want to get the data from.

## `sessionid` (type: `string`):

The sessionid of the instagram you want to get the data from.

## Actor input object example

```json
{
  "videoUrls": [
    "https://www.instagram.com/p/DULBkEngpxg"
  ]
}
```

# 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 = {
    "videoUrls": [
        "https://www.instagram.com/p/DULBkEngpxg"
    ],
    "sessionid": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("apple_yang/instagram-video-scraper-api").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/p/DULBkEngpxg"],
    "sessionid": "",
}

# Run the Actor and wait for it to finish
run = client.actor("apple_yang/instagram-video-scraper-api").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 '{
  "videoUrls": [
    "https://www.instagram.com/p/DULBkEngpxg"
  ],
  "sessionid": ""
}' |
apify call apple_yang/instagram-video-scraper-api --silent --output-dataset

```

## MCP server setup

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

```

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/aJq1wRO4TL8ySQxH7/builds/ghdenMy9zcYWLjtfL/openapi.json
