# Facebook Video & Reels Downloader - HD MP4 (`agentflow/facebook-video-downloader`) Actor

Download public Facebook videos and Reels as HD MP4. Supports watch, reel, share and fb.watch links. No login, pay only per successful download link.

- **URL**: https://apify.com/agentflow/facebook-video-downloader.md
- **Developed by:** [Yunbin Huang](https://apify.com/agentflow) (community)
- **Categories:** Social media, Videos
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 link resolveds

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

## Facebook Video & Reels Downloader

Paste public Facebook video or Reel links — including the `share/r/…` and `fb.watch` links people actually send — and get a **direct HD MP4 URL**. No login, no cookies.

### What does Facebook Video & Reels Downloader do?

- **HD MP4** when available, SD otherwise
- **Every link shape**: reels, watch, videos, share links and `fb.watch` short links
- **No login, no cookies**
- Title, author and cover returned alongside
- **Batch mode** — put hundreds of links in one run
- **You only pay for successful links** — deleted, private or invalid links are free
- **No browser** — pure HTTP, runs in 128 MB, results in a couple of seconds per link

### Supported links

| Type | Formats |
|------|---------|
| Reel | `facebook.com/reel/…`, `facebook.com/share/r/…` |
| Video | `facebook.com/watch?v=…`, `facebook.com/<page>/videos/…`, `facebook.com/share/v/…` |
| Short link | `fb.watch/…` |

### What data do you get?

| Field | Description |
|-------|-------------|
| `download_url` | Best-quality direct MP4 URL (video posts) |
| `video_hd_url` / `video_sd_url` | HD and SD MP4 URLs when both exist |
| `images` / `image_count` | Every image of a photo post / carousel / slideshow |
| `audio_url` | MP3 audio (TikTok) |
| `title` | Caption / title |
| `author` | Creator username |
| `cover` | Cover / thumbnail image |
| `duration` | Video length in seconds |
| `type` | `video` or `images` |
| `platform` | Detected platform |
| `success` / `error` | Whether the link resolved, and why not |

### How to use

1. Create a free Apify account
2. Open [Facebook Video & Reels Downloader](https://apify.com/agentflow/facebook-video-downloader)
3. Paste one or more links (one per line)
4. Click **Start**
5. Download the results as JSON, CSV or Excel, or fetch them through the API

### Input example

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

### Output example

```json
{
    "input": "https://www.facebook.com/reel/1370060038398465",
    "platform": "facebook",
    "success": true,
    "type": "video",
    "id": "…",
    "title": "Video caption…",
    "author": "creator",
    "cover": "https://…/cover.jpeg",
    "duration": 20,
    "source_url": "https://www.facebook.com/reel/1370060038398465",
    "download_url": "https://tiktap.app/dl?url=…&q=hd",
    "video_hd_url": "https://tiktap.app/dl?url=…&q=hd",
    "video_sd_url": "https://tiktap.app/dl?url=…&q=sd",
    "audio_url": ""
}
```

Media URLs are direct links you can download with any HTTP client (`curl`, `wget`, Python `requests`) or open in a browser. They stay valid as long as the original post is public — fetch them whenever you need, no rush.

### How much does it cost?

**$0.003 per successful link** ($3 per 1,000). No start fee, no per-item fee on failures: if a link is deleted, private or invalid you pay nothing. Apify's free plan credit covers well over a thousand links a month.

### Integrations

Push results into **Make**, **Zapier**, **n8n**, **Google Sheets**, **Google Drive** or **Slack**, trigger runs via **webhooks** or the **Apify API**, or let AI agents call it as a tool through the [Apify MCP server](https://mcp.apify.com).

### Other downloaders by the same author

- [All-in-One Social Video Downloader](https://apify.com/agentflow/social-video-downloader)
- [TikTok Video Downloader](https://apify.com/agentflow/tiktok-video-downloader)
- [TikTok Photo & Slideshow Downloader](https://apify.com/agentflow/tiktok-photo-downloader)
- [Instagram Reels & Video Downloader](https://apify.com/agentflow/instagram-video-downloader)
- [Twitter (X) Video Downloader](https://apify.com/agentflow/twitter-video-downloader)
- [Douyin Video Downloader](https://apify.com/agentflow/douyin-video-downloader) — 抖音无水印
- [Xiaohongshu / RedNote Video Downloader](https://apify.com/agentflow/xiaohongshu-video-downloader)
- [WeChat Channels Video Downloader](https://apify.com/agentflow/wechat-channels-video-downloader) — 视频号

### Error handling

Bad links never fail the run. Each one returns an item with `success: false` and an `error` message, and is **not charged**.

| Error | Meaning |
|-------|---------|
| Not a single post link | Profile, music, shop or home page links have no single media to download |
| The post was deleted, set to private… | The post is gone or not public |
| Age-restricted or login-only | The platform requires login for this post |
| This Actor only handles … | The link belongs to another platform — try the [All-in-One Social Video Downloader](https://apify.com/agentflow/social-video-downloader) |

### FAQ

#### Do I need to log in or provide cookies?

No. Only public posts are fetched, without any account.

#### Can I download private posts or stories?

No — only content that is publicly viewable without login.

#### Is this legal?

The Actor only accesses publicly available media. You are responsible for how you use it: respect creators' rights, each platform's Terms of Service and copyright law, and don't redistribute content you don't own.

#### Can I use it from my own code?

Yes — call it through the [Apify API](https://docs.apify.com/api/v2) with any language, or schedule it and receive results by webhook.

Facebook Video Downloader · Facebook Reels Downloader · FB Video Downloader · Download Facebook Video HD · Facebook MP4 Downloader · fb.watch Downloader · Facebook Watch Downloader · FDown Alternative · Facebook Video Download API · Facebook Reel to MP4

# Actor input Schema

## `urls` (type: `array`):

One or more Facebook video / reel links. One per line. Short links and share text copied from the app are fine.

## Actor input object example

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

# Actor output Schema

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

One item per input link: direct media URLs (download_url, video_hd_url, video_sd_url, images, audio_url), title, author, cover, or success=false with an error.

# 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 = {
    "urls": [
        "https://www.facebook.com/reel/1370060038398465"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("agentflow/facebook-video-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 = { "urls": ["https://www.facebook.com/reel/1370060038398465"] }

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,agentflow/facebook-video-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/fvy8uRhbriELo46d5/builds/aNGDmLZ6aZtdM4g0D/openapi.json
