# Facebook Reels vedio downloader (`datapilot/facebook-reels-vedio-downloader`) Actor

extract Reel ID, title, uploader, description, views, likes, duration, thumbnail, and video download URL. Supports HD video URL extraction, Residential Proxy, retries, and structured Apify Dataset output for content research and analysis.

- **URL**: https://apify.com/datapilot/facebook-reels-vedio-downloader.md
- **Developed by:** [Data Pilot](https://apify.com/datapilot) (community)
- **Categories:** Videos, Other
- **Stats:** 10 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 result scrapes

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

🎬 **Facebook Reels Video** Downloader is a powerful Apify Actor designed to discover, extract, and collect direct download links and metadata from public **Facebook Reels Video** posts. This tool provides comprehensive **Facebook Reels Video** intelligence including title, uploader, view count, like count, duration, thumbnail, and a direct downloadable video URL for any accessible **Facebook Reels Video**. Whether you're building a content archive, tracking video performance, or aggregating public video links, the Facebook Reels Video Downloader delivers actionable **Facebook Reels Video** insights efficiently.

With direct HTML/JSON extraction, HD-first download URL resolution, multi-layer metadata fallback, and reliable Apify Dataset delivery, the Facebook Reels Video Downloader ensures comprehensive **Facebook Reels Video** coverage across any list of Reel URLs. It focuses on key **Facebook Reels Video** signals including download URL, views, likes, and uploader, making it an essential tool for content research and video-link aggregation.

***

### 📋 Table of Contents

- [Features](#-features)
- [Data Source](#-data-source)
- [How It Works](#-how-it-works)
- [Input](#-input)
- [Output](#-output)
- [Technical Stack](#-technical-stack)
- [Data Fields](#-data-fields-explained)
- [Use Cases](#-use-cases)
- [Quick Start](#-quick-start)
- [Configuration](#-configuration)
- [Performance](#-performance)
- [Important Notes](#-important-notes)
- [License & Legal](#-license--legal)

***

### 🔥 Features

- **Direct Download URL Extraction** – Resolves the true video file link for each **Facebook Reels Video**, preferring HD quality when available.
- **HD-First Resolution Chain** – Falls back from HD, to SD, to native browser URLs if higher-quality sources aren't found.
- **Rich Metadata Parsing** – Extracts title, uploader, description, thumbnail, duration, views, and likes for every **Facebook Reels Video**.
- **View & Like Count Parsing** – Reads engagement figures from both the page title and internal JSON, with multiple fallback patterns.
- **Duration Formatting** – Converts raw duration into a clean `HH:MM:SS` or `MM:SS` display format.
- **Reel ID Extraction** – Pulls the unique numeric ID out of each **Facebook Reels Video** URL.
- **Unicode & URL Cleanup** – Decodes escaped characters and normalizes URLs for clean, usable output.
- **Batch URL Processing** – Accepts any number of **Facebook Reels Video** links in a single run.
- **Rate-Limit & Retry Handling** – Automatically retries on 401/403/429 responses with exponential backoff.
- **Residential Proxy Support** – Apify residential proxy for reliable **Facebook Reels Video** page access.
- **Real-Time Dataset Push** – Pushes each successfully extracted **Facebook Reels Video** record to Apify Dataset as it's processed.
- **Graceful Error Handling** – Skips a failing or private **Facebook Reels Video** without stopping the whole run.

***

### 📊 Data Source

#### **Facebook Public Reel Pages**

- **Authority**: Facebook's own public-facing Reel and video pages
- **Access Method**: Browser-impersonated HTTP requests via , rendering the raw HTML of each **Facebook Reels Video** page
- **Coverage**: Any public **Facebook Reels Video** accessible without login
- **Data**: Embedded video URLs, OpenGraph metadata, and internal JSON fields for views/likes/duration
- **Access**: Public pages, no API key required
- **Update Frequency**: Reflects each **Facebook Reels Video**'s current live state at time of run

***

### ⚙️ How It Works

The Facebook Reels Video Downloader accepts a list of Reel URLs and fetches each page's raw HTML using a Chrome-impersonated HTTP session, avoiding the overhead of a full browser. From the HTML, it extracts the reel ID, then searches for the highest-quality available video source — HD first, then SD, then native browser URLs — followed by the thumbnail, description, title, uploader, view count, like count, and duration using a combination of OpenGraph meta tags and Facebook's embedded internal JSON structures. Every successfully extracted **Facebook Reels Video** record is pushed to the Apify Dataset immediately after processing.

**Key Processing Steps:**

1. **Input Parsing** – Accept a list of **Facebook Reels Video** URLs (string or array)
2. **Proxy Setup** – Configure Apify residential proxy for the HTTP session
3. **Session Init** – Create a Chrome-impersonated HTTP session for reliable page access
4. **URL Loop** – Iterate through each requested **Facebook Reels Video** link
5. **Page Fetch** – Request the raw HTML with retry/backoff on rate-limit or auth errors
6. **Reel ID Extraction** – Pull the numeric ID from the URL path
7. **Download URL Resolution** – Search for HD, then SD, then native video source URLs
8. **Metadata Extraction** – Parse title, uploader, description, thumbnail, views, likes, and duration
9. **Fallback Chains** – Apply secondary regex patterns when primary fields aren't found
10. **Duration Formatting** – Convert raw seconds into a readable time format
11. **Dataset Push** – Push each successfully parsed **Facebook Reels Video** record immediately
12. **Rate Limiting** – Apply a short delay between requests

**Key Benefits:**

- Pull direct download links for any public **Facebook Reels Video** without manual extraction
- Collect engagement metrics (views, likes) alongside each video link
- Build a content archive or research dataset from a list of Reel URLs
- Feed video-aggregation tools, research pipelines, or archiving workflows
- Automate recurring **Facebook Reels Video** link extraction as new Reels are published

***

### 📥 Input

The Actor accepts the following input parameters:

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `startUrls` / `urls` | array or string | *(required)* | One or more **Facebook Reels Video** URLs to extract. |
| `proxyConfiguration` | object | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` | Apify Proxy configuration. |

**Example Input:**

```json
{
  "startUrls": [
    "https://www.facebook.com/reel/1234567890123456",
    "https://www.facebook.com/watch/?v=9876543210987654"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

**Extract a Single Facebook Reels Video:**

```json
{
  "urls": ["https://www.facebook.com/reel/1234567890123456"]
}
```

**Extract from a Single URL String:**

```json
{
  "startUrls": "https://www.facebook.com/reel/1234567890123456"
}
```

***

### 📤 Output

The Actor pushes **Facebook Reels Video** records with the following structure:

| Field | Type | Description |
|-------|------|-------------|
| `title` | string | Cleaned title/caption of the **Facebook Reels Video** |
| `id` | string | Unique Reel ID extracted from the URL |
| `source` | string | Always `"Facebook"` |
| `url` | string | The original **Facebook Reels Video** URL provided as input |
| `download_url` | string | Direct downloadable video file URL (HD preferred) |
| `thumbnail` | string | URL of the video's thumbnail image |
| `duration` | string | Formatted duration (`MM:SS` or `HH:MM:SS`) |
| `duration_raw` | integer | Duration in raw seconds |
| `description` | string | Full description/caption text |
| `uploader` | string | Name of the page or user who posted the **Facebook Reels Video** |
| `view_count` | integer | Number of views |
| `like_count` | integer | Number of likes/reactions |
| `timestamp` | integer | Unix timestamp of when the record was scraped |

**Example Facebook Reels Video Record:**

```json
{
  "title": "English most famous song #fyp",
  "id": "1234567890123456",
  "source": "Facebook",
  "url": "https://www.facebook.com/reel/1234567890123456",
  "download_url": "https://video.xx.fbcdn.net/...",
  "thumbnail": "https://scontent.xx.fbcdn.net/...",
  "duration": "00:32",
  "duration_raw": 32,
  "description": "English most famous song #fyp",
  "uploader": "TuneVault",
  "view_count": 6800,
  "like_count": 109,
  "timestamp": 1785000000
}
```

***

### 🧰 Technical Stack

- **HTTP Client:**  with Chrome TLS fingerprint impersonation for reliable **Facebook Reels Video** page access
- **HTML/JSON Parsing:** Regex-based extraction across OpenGraph tags and Facebook's embedded internal JSON
- **Text Processing:** `html.unescape` and Unicode decoding for clean titles and descriptions
- **Date Handling:** `datetime` with timezone-aware UTC timestamps
- **Async:** `asyncio` with executor-run blocking requests for non-blocking, multi-URL processing
- **Proxy:** Apify Proxy with `RESIDENTIAL` configuration
- **Logging:** Apify Actor logging system
- **Platform:** Apify Actor serverless environment

***

### 📊 Data Fields Explained

#### **Identification**

- **id / url**: The unique Reel ID and original link identifying the **Facebook Reels Video**
- **source**: Always set to `"Facebook"` for clarity in mixed-platform datasets

#### **Media**

- **download\_url**: The resolved direct video file link, HD-preferred
- **thumbnail**: The preview image associated with the **Facebook Reels Video**
- **duration / duration\_raw**: Formatted and raw-second video length

#### **Engagement & Attribution**

- **title / description**: The caption and extended text for the **Facebook Reels Video**
- **uploader**: The page or user account that posted the video
- **view\_count / like\_count**: Publicly visible engagement metrics

***

### 🎯 Use Cases

- **Content Archiving** – Preserve copies of public **Facebook Reels Video** content for reference
- **Trend Research** – Analyze view/like patterns across a set of Reels
- **Media Aggregation** – Build a dataset of video links and metadata for downstream tools
- **Competitive Analysis** – Track how competitor or partner accounts perform on **Facebook Reels Video**
- **Influencer Research** – Evaluate engagement metrics before a creator partnership
- **Academic Research** – Study public **Facebook Reels Video** trends at scale
- **Personal Backup** – Save direct links to your own or authorized public content

***

### 🚀 Quick Start

#### **1. Prepare Input**

Go to Apify Console and enter:

```json
{
  "startUrls": ["https://www.facebook.com/reel/1234567890123456"]
}
```

#### **2. Run the Actor**

Click **Start**. The Actor will:

- Fetch each **Facebook Reels Video** page's raw HTML
- Resolve the best available download URL
- Extract full metadata and engagement figures
- Push each result to the Dataset as it's processed

#### **3. Monitor Progress**

Console shows:

```
[1/1] Extracting Facebook Reel: https://www.facebook.com/reel/1234567890123456
Successfully extracted: 'English most famous song #fyp' | Uploader: TuneVault | Views: 6800 | Likes: 109
🎉 Scraping complete! Successfully scraped 1 reels.
```

#### **4. View & Download Results**

- **Results Tab**: All **Facebook Reels Video** records
- **Export**: JSON, CSV, Excel, or HTML
- **Filter**: By view count, like count, or uploader
- **API Access**: Available via the Apify API

***

### ⚙️ Configuration

Single Facebook Reels Video:

```json
{
  "urls": ["https://www.facebook.com/reel/1234567890123456"]
}
```

Multiple Reel URLs:

```json
{
  "startUrls": [
    "https://www.facebook.com/reel/1234567890123456",
    "https://www.facebook.com/reel/6543210987654321"
  ]
}
```

Run without proxy:

```json
{
  "urls": ["https://www.facebook.com/reel/1234567890123456"],
  "proxyConfiguration": {"useApifyProxy": false}
}
```

***

### 📈 Performance

#### **Processing Speed**

- One HTTP request per **Facebook Reels Video** URL, with automatic retry on rate limits
- 0.5 second delay between requests to reduce blocking
- Faster than browser-based scraping since no rendering engine is required

#### **Resource Usage**

- Memory: Low, since no browser instance is launched
- Network: One request per **Facebook Reels Video**, plus retries on transient errors
- Proxy: One residential proxy tunnel shared across the session for the run

***

### ⚠️ Important Notes

#### **Legal & Compliance**

- **Fair Use**: Respects Facebook's public pages and applies pacing delays between requests
- **Public Data Only**: Extracts only publicly visible **Facebook Reels Video** content and metadata
- **Copyright**: Downloaded video content may be subject to copyright — only download and reuse content you own or have permission to use
- **Terms of Service**: Automated extraction may be subject to Facebook's Terms of Service — review before large-scale or commercial use
- **Legal**: Not legal advice — consult qualified professionals before using this data or content for compliance-sensitive purposes

#### **Data Quality**

- **Freshness**: Reflects each **Facebook Reels Video**'s live state at time of run
- **Completeness**: Private or removed Reels will return no download URL and are skipped
- **Accuracy**: View/like counts reflect Facebook's publicly displayed figures at time of scrape
- **Verification**: Cross-check high-stakes figures against the live Facebook app or website

#### **Best Practices**

- Always configure a residential proxy for the most reliable **Facebook Reels Video** access
- Only submit URLs to public Reels — private or restricted content will fail to extract
- Batch multiple Reel URLs together in one run to reduce overhead
- Respect copyright and platform terms when reusing downloaded video content
- Re-run periodically if tracking changes in view/like counts over time

***

### 📄 License & Legal

**Terms of Use:**

- Use for legitimate research, archiving, and analytics purposes
- Respect Facebook's Terms of Service and applicable copyright law
- Do not use for unauthorized redistribution of copyrighted video content
- Use **Facebook Reels Video** data and content responsibly

**Disclaimer:**
Facebook Reels Video Downloader is provided as-is for research and personal-use purposes. Users are solely responsible for compliance with Facebook's ToS, applicable copyright law, and all other relevant regulations. This is not legal advice.

***

### ⚖️ Facebook Reels Video Excellence

This Actor is optimized for **Facebook Reels Video** extraction with:

- ✅ HD-first download URL resolution
- ✅ Multi-layer metadata fallback parsing
- ✅ Rate-limit-aware retry logic
- ✅ Rich engagement and uploader metadata
- ✅ Real-time Dataset push
- ✅ Production-ready code

# Actor input Schema

## `startUrls` (type: `array`):

List of Facebook Reel URLs to extract and download.

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

Select Residential Proxy to bypass Facebook rate limits.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.facebook.com/reel/1234567890"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `crawlResults` (type: `string`):

No description

## `reelsOverview` (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 = {
    "startUrls": [
        "https://www.facebook.com/reel/1234567890"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datapilot/facebook-reels-vedio-downloader").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 = { "startUrls": ["https://www.facebook.com/reel/1234567890"] }

# Run the Actor and wait for it to finish
run = client.actor("datapilot/facebook-reels-vedio-downloader").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 '{
  "startUrls": [
    "https://www.facebook.com/reel/1234567890"
  ]
}' |
apify call datapilot/facebook-reels-vedio-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datapilot/facebook-reels-vedio-downloader"
        }
    }
}

```

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/azWgngtwH06QQfhIi/builds/7RMjMW9nQwGHz07hM/openapi.json
