Facebook Video Downloader - Reels & MP4 Links avatar

Facebook Video Downloader - Reels & MP4 Links

Pricing

from $10.00 / 1,000 facebook video results

Go to Apify Store
Facebook Video Downloader - Reels & MP4 Links

Facebook Video Downloader - Reels & MP4 Links

Download public Facebook videos, Reels, Watch pages and video posts by URL, with direct media links and normalized metadata. Optionally save capped MP4 files to run storage, with no Facebook login or cookies.

Pricing

from $10.00 / 1,000 facebook video results

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

26

Total users

14

Monthly active users

8 days ago

Last modified

Share

Use this Apify Actor when you have a public Facebook video, Reel, Watch page, or video post URL and need one normalized dataset record per resolved video. It accepts facebook.com, fb.watch, and m.facebook.com links, then returns sourceUrl, downloadUrl, mediaType, provider, scrapedAt, and optional fields such as title, caption, authorName, authorUrl, thumbnailUrl, durationSeconds, width, height, postedAt, hdDownloadUrl, hlsManifestUrl, and storedMp4Url. The output gives you a direct media link plus structured metadata for cataloging, review, extraction, and downstream agent workflows.

Best fit and connected workflows

This Actor fits workflows that start with a public Facebook link and end with a direct media URL or structured metadata record. It is a good match for:

  • reviewing a public Reel or video post from a shared URL
  • collecting public Watch pages and video posts into a dataset
  • extracting caption, author, thumbnail, duration, and dimensions for indexing
  • saving an optional bounded MP4 copy into run storage
  • using Apify MCP with a single lookup-style tool for Facebook video resolution

Focused standalone workflow

Facebook Video Downloader - Reels & MP4 Links is designed as a focused standalone workflow.

Practical scenario

Maya manages a social content library. She receives a public Facebook Reel URL in a campaign brief and needs the direct media link, author name, thumbnail, and duration before adding the clip to her catalog.

She runs the Actor with videoUrls set to the Reel URL, keeps MP4 saving off, and leaves the default provider order in place. The returned dataset row includes sourceUrl, downloadUrl, mediaType, authorName, thumbnailUrl, durationSeconds, and provider. Maya uses the direct link for review, the author field for attribution, and the duration to tag the clip in her system.

Input

FieldTypeRequiredDescription
videoUrlsarray of stringsYesPublic Facebook video, Reel, Watch, or post URLs. Accepts facebook.com, fb.watch, and m.facebook.com links.
maxVideosintegerNoHard run-wide cap on saved and billed video records. Default: 20. Range: 1-1000. A Facebook post can contain more than one public video.
providerOrderstringNoManaged public-data provider order. Default: the default provider order. Use this to select the provider sequence.
downloadMp4booleanNoSaves an available progressive MP4 into run storage. Default: false. Direct media links are always returned.
maxFileSizeMBintegerNoPer-file cap for optional MP4 storage. Default: 200. Range: 1-500. Applies when MP4 saving is enabled.

Valid focused JSON example

{
"videoUrls": [
"https://www.facebook.com/reel/1535656380759655/"
],
"maxVideos": 1,
"downloadMp4": false,
"maxFileSizeMB": 1
}

Output

Each dataset item contains one normalized public Facebook video record.

FieldTypeDescription
videoIdstring or nullFacebook video identifier when exposed by the source.
sourceUrlstringCanonical public Facebook URL requested by the user.
mediaTypestringDetected Facebook page type: reel, watch, video, or post.
downloadUrlstringavailable direct progressive video URL returned by the public-data provider. URLs may expire.
hdDownloadUrlstring or nullHigher-quality direct progressive video URL when separately exposed; otherwise null.
hlsManifestUrlstring or nullHLS playlist URL when the provider exposes streaming media rather than a progressive MP4.
storedMp4Urlstring or nullKey-value store URL for an optional MP4 copy created by this run; null when download was disabled or unavailable.
titlestring or nullPublic video or post title when available.
captionstring or nullPublic post text or video description when available.
thumbnailUrlstring or nullPublic preview image URL when available.
authorNamestring or nullPublic Facebook page or profile display name when available.
authorUrlstring or nullPublic author page or profile URL when available.
durationSecondsnumber or nullVideo duration in seconds when exposed by the provider.
widthinteger or nullVideo pixel width when exposed by the provider.
heightinteger or nullVideo pixel height when exposed by the provider.
postedAtstring or nullPublic post timestamp in ISO 8601 format when available.
providerstringManaged provider that resolved this record.
scrapedAtstringISO 8601 time when the Actor saved this result.

Illustrative output record

{
"videoId": "1535656380759655",
"sourceUrl": "https://www.facebook.com/reel/1535656380759655/",
"mediaType": "reel",
"downloadUrl": "https://video.xx.fbcdn.net/v/t42.1790-2/....mp4",
"hdDownloadUrl": null,
"hlsManifestUrl": null,
"storedMp4Url": null,
"title": "Summer recipe ideas",
"caption": "A quick recipe for the weekend.",
"thumbnailUrl": "https://scontent.xx.fbcdn.net/v/t15.5256-10/....jpg",
"authorName": "Example Page",
"authorUrl": "https://www.facebook.com/examplepage/",
"durationSeconds": 32.5,
"width": 1080,
"height": 1920,
"postedAt": "2026-07-01T12:00:00.000Z",
"scrapedAt": "2026-07-15T12:00:00.000Z"
}

How it works

The Actor uses managed public-data providers and resolves records in the configured provider order. The live contract sets the default provider order as the default order, with the fallback data provider available as a fallback path.

It returns direct media links and normalized metadata in the default dataset. When downloadMp4 is enabled and a progressive file is available within maxFileSizeMB, the Actor copies that file into the execution key-value store and exposes the resulting storedMp4Url.

The output contract also publishes stable terminal records in key-value storage:

  • OUTPUT for the final summary
  • RUN_SUMMARY for provider attempts, stop reason, and warnings

Pricing

Facebook Video Downloader - Reels & MP4 Links uses Pay per event with Apify platform usage included. Open the live Pricing tab for the current event details and any platform usage that applies to your run.

The event model includes:

  • one Actor start event when a valid run begins
  • one Facebook video result event for each validated public Facebook video record saved to the default dataset

For example, if a run saves three validated video records, the video-result event is counted three times, plus one Actor start event.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. The tool resolves public Facebook video URLs into structured media records, direct links, and stable execution summaries that an agent can read back after execution.

Exact Actor identity: khadinakbar/facebook-video-downloader

Tool description: resolve public Facebook video, Reel, Watch, and post URLs into direct media links and normalized metadata, with optional bounded MP4 storage and stable execution summaries for agent readback.

Download this public Facebook Reel URL and return the direct media link, author, caption, thumbnail, duration, and provider. If an MP4 copy is available within the configured size cap, include the stored file link too.

Output interpretation:

  • videos is the dataset item list with one record per resolved video
  • output is the stable terminal summary for agents
  • runSummary includes diagnostics, provider attempts, and warnings

Provenance and scope:

  • each row records the source URL and the provider that resolved it
  • the Actor works on public Facebook video URLs
  • it resolves public facebook.com, fb.watch, and m.facebook.com links

Pagination and cost guidance:

  • The default dataset is the primary place to read per-video rows
  • cost scales by validated video results saved to the dataset
  • if you pass several URLs or a Facebook post containing more than one public video, each validated record contributes separately

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/facebook-video-downloader').call({
videoUrls: ['https://www.facebook.com/reel/1535656380759655/'],
maxVideos: 1,
downloadMp4: false,
maxFileSizeMB: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log('Run ID:', run.id);
console.log('Dataset items:', items);

Best results and outcome guidance

Start with a direct public Facebook video, Reel, Watch, or post URL. If one Facebook post contains more than one public video, set maxVideos to the run-wide cap you want processed.

Keep downloadMp4 off when you only need links and metadata. Turn it on when you want a stored MP4 copy and have a progressive file that fits the size cap. If you want to inspect upstream availability, use the provider-order settings that isolate one provider or reverse the default order.

Design note

I found that downloadUrl, mediaType, provider, and scrapedAt are required fields in the live dataset contract, which makes the record shape clear for downstream parsing.

FAQ

What kinds of Facebook URLs work here?

Public video, Reel, Watch, and post URLs work when they point to accessible public media. The input schema also accepts facebook.com, fb.watch, and m.facebook.com links.

What does one dataset row represent?

One row represents one validated public Facebook video record. A Facebook post can contain more than one public video, so the run-wide maxVideos cap applies across the whole run.

When is an MP4 stored in run storage?

An MP4 is stored when downloadMp4 is enabled and the provider returns an available progressive MP4 that fits within maxFileSizeMB.

How should I use provider selection?

Use providerOrder when you want a specific managed public-data provider order or when you want to compare provider availability. It is a provider-choice setting.

Where do I read the final run status?

Read OUTPUT for the stable terminal summary and RUN_SUMMARY for diagnostics, provider attempts, stop reason, and warnings.

Responsible use

Only save media you are authorized to use. Public media can still be subject to rights, platform terms, and local law. Facebook is a trademark of its owner. This independent Actor is not affiliated with, associated with, or endorsed by Facebook.