Facebook Public Video Downloader Scraper avatar

Facebook Public Video Downloader Scraper

Pricing

from $1.92 / 1,000 facebook video resolveds

Go to Apify Store
Facebook Public Video Downloader Scraper

Facebook Public Video Downloader Scraper

Download authorized public Facebook videos and Reels as stored MP4 files with creator, duration, format, resolution, source URL, and retrieval status.

Pricing

from $1.92 / 1,000 facebook video resolveds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

3 days ago

Last modified

Categories

Share

Download authorized, anonymously playable public Facebook videos and export stored MP4 files with provenance metadata. This Facebook public video downloader resolves anonymously exposed MP4 renditions, stores selected files in Apify, and returns video ID, title, creator, duration, format, available resolution, byte size, source URL, and retrieval status.

No Facebook login, cookies, browser, proxy, or user API key is required. Private, login-only, removed, permissioned, and extractor-incompatible Facebook videos are outside scope.

What can the Facebook Public Video Downloader Scraper do?

  • Process exact public facebook.com and fb.watch video URLs.
  • Resolve anonymously exposed MP4 renditions from public Facebook page data.
  • Select the best or lowest available progressive MP4 rendition.
  • Stream a selected MP4 into the run key-value store with a byte limit.
  • Export metadata and an expiring source media URL without storing video bytes.
  • Preserve title, creator, duration, dimensions, thumbnail, and source provenance.
  • Deduplicate repeated Facebook video IDs within one run.
  • Continue after an individual bad URL and fail clearly if every URL fails.
  • Process up to 100 supplied Facebook videos per run.

This is a supplied-URL archiver. It does not search Facebook, crawl Pages, download private posts, or bypass access controls.

Who is this Actor for?

Creators and rights holders can preserve their own anonymously playable Facebook videos with source context.

Production and editorial teams can archive approved campaign or portfolio assets in repeatable runs.

Researchers and journalists can build a documented inventory of public videos they are permitted to retain.

Developers and data engineers can convert reviewed Facebook URLs into JSON records plus stored MP4 files.

Compliance and records teams can schedule bounded archives and track retrieval outcomes over time.

Why use this Facebook public video downloader?

A manual download provides a file but usually not a stable machine-readable record connecting the file to its source, creator, quality, and retrieval time. This Actor keeps the selected media and its provenance together.

The implementation uses a pinned media extractor to parse Facebook's anonymous public page data and public CDN renditions. It does not launch a browser or automatically enable paid proxy traffic. Use saveVideos: false when you need a low-transfer inventory instead of copied media.

Supported Facebook URLs and videos

Supported URL shapes include:

https://www.facebook.com/reel/<video-id>
https://www.facebook.com/<page-or-id>/videos/<video-id>
https://www.facebook.com/watch/?v=<video-id>
https://www.facebook.com/share/v/<share-id>/
https://fb.watch/<short-id>/

The video must open anonymously and expose at least one progressive MP4 to the public page. The Actor intentionally rejects private, login-only, removed, permissioned, and unsupported media. It does not decrypt protected streams, authenticate to Facebook, or solve human-verification challenges.

Extracted Facebook video data

FieldMeaning
videoIdStable Facebook video identifier
titlePublic video title or caption
descriptionPublic description when Facebook exposes it
creatorPublic Facebook creator or Page name
creatorIdPublic creator identifier when exposed
durationSecondsVideo duration in seconds
width, heightSelected MP4 rendition dimensions
qualityFacebook quality label for the selected rendition
formatSelected media container, currently mp4
sourceUrlValidated Facebook URL supplied in the input
canonicalUrlCanonical public Facebook video URL resolved during the run
sourceMediaUrlExpiring Facebook CDN URL resolved during the run
thumbnailUrlPublic Facebook thumbnail URL
videoFileKeyKey of the stored MP4, or null in resolve-only mode
videoFileUrlApify key-value store record URL
videoSizeBytesNumber of bytes copied to storage
retrievalStatusdownloaded, resolved, or failed
errorConcise per-URL failure reason, otherwise null
retrievedAtISO 8601 retrieval timestamp

Missing upstream values are returned as null, never guessed.

How to download a public Facebook video

  1. Confirm the video opens while logged out and that you may download it.
  2. Copy the exact Facebook video URL.
  3. Open this Actor in Apify Console.
  4. Add the URL under Public Facebook video URLs.
  5. Keep Save video files enabled.
  6. Choose a preferred quality and safe file-size limit.
  7. Click Start.
  8. Open Facebook video archives for the metadata record.
  9. Open Downloaded Facebook videos for the stored MP4.

The prefilled URL is a real public sample suitable for a first run, but public source availability can change.

Input parameters

InputTypeDefaultDescription
startUrlsarrayrequiredOne or more exact HTTPS Facebook video URLs
saveVideosbooleantrueStore selected MP4 files; disable for metadata/link resolution
preferredQualitystringbestSelect best or lowest exposed progressive MP4
maxItemsinteger10Maximum unique supplied videos processed, 1–100
maxVideoSizeMbinteger250Maximum stored file size, 1–500 MB
maxRequestRetriesinteger2Bounded transient request retries, 0–5

Example:

{
"startUrls": [
{ "url": "https://www.facebook.com/reel/636216875539019" }
],
"maxItems": 1,
"saveVideos": true,
"preferredQuality": "lowest",
"maxVideoSizeMb": 100
}

Output example

This abbreviated example reflects a real resolved public video:

{
"videoId": "636216875539019",
"title": "The viral spider video explained! 🤯",
"creator": "Steven Bartlett",
"durationSeconds": 60.84,
"width": null,
"height": null,
"quality": "sd",
"format": "mp4",
"sourceUrl": "https://www.facebook.com/reel/636216875539019",
"sourceMediaUrl": "https://video.example.fbcdn.net/.../video.mp4",
"thumbnailUrl": "https://scontent.example.fbcdn.net/thumbnail.jpg",
"videoFileKey": "facebook-video-636216875539019-sd.mp4",
"videoFileUrl": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/facebook-video-636216875539019-sd.mp4",
"videoSizeBytes": 1876018,
"retrievalStatus": "downloaded",
"error": null,
"retrievedAt": "2026-08-19T14:52:23.267Z"
}

Default run storage is private. Authenticate when opening API file URLs, or copy files to storage you control.

Where are downloaded Facebook videos stored?

Successful files use this key pattern in the default key-value store:

facebook-video-<video-id>-<quality>.mp4

The Actor preserves Facebook's exposed progressive MP4 without re-encoding, watermarking, or modifying it. The source media URL can expire; the run-owned key-value store record is the durable output for that run's retention period.

How much does it cost to download Facebook videos?

The Actor uses pay-per-event pricing: one $0.005 start event and one item event for each successfully resolved public Facebook video. Failed and duplicate URLs have no item charge. Saving a video does not create a second event, although normal platform transfer and storage usage increase with file size.

The current per-item tiers are:

TierSuccessful video record
FREE$0.00368
BRONZE$0.0032
SILVER$0.002496
GOLD$0.00192
PLATINUM$0.00128
DIAMOND$0.000896

At BRONZE, one successful video is about $0.0082, 10 are about $0.037, and 100 are about $0.325, before ordinary Apify storage and transfer usage. Final cost is the start event plus successful records at your account tier.

Resolve Facebook videos without copying media

Set saveVideos: false to export metadata and the currently resolved CDN URL without copying video bytes. This is useful for inventories, validation, downstream download systems, and workflows where lower transfer matters.

The CDN URL is temporary. Do not treat it as permanent storage. The item event is unchanged because the Actor still resolves and emits the complete typed video record.

Batch and scheduled archival workflows

Supply a bounded list of approved public video URLs and save the input as an Apify Task. Schedule that Task when recurring archive snapshots are required.

Use videoId as the stable deduplication key in your destination. Copy files before your Apify storage retention expires. A later failed status can indicate removal, a privacy change, loss of a progressive rendition, or a temporary source error; the Actor does not infer legal or editorial meaning.

The Actor does not discover new creator uploads or compare prior runs automatically.

Integrations and export workflows

Send dataset records and authorized files to:

  • Amazon S3, Google Cloud Storage, or Azure Blob Storage;
  • Airtable, Notion, or Google Sheets for an archive index;
  • a webhook for transcription, cataloging, or review;
  • a database keyed by videoId;
  • an approved media asset management system.

Pass authenticated storage access or copy the bytes when a destination cannot read private Apify run storage.

Run with the Apify API

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~facebook-public-video-downloader/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.facebook.com/reel/636216875539019"}],"maxItems":1,"saveVideos":true,"preferredQuality":"lowest","maxVideoSizeMb":100}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/facebook-public-video-downloader').call({
startUrls: [{ url: 'https://www.facebook.com/reel/636216875539019' }],
maxItems: 1,
saveVideos: true,
preferredQuality: 'lowest',
maxVideoSizeMb: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("automation-lab/facebook-public-video-downloader").call(run_input={
"startUrls": [{"url": "https://www.facebook.com/reel/636216875539019"}],
"maxItems": 1,
"saveVideos": True,
"preferredQuality": "lowest",
"maxVideoSizeMb": 100,
})
print(client.dataset(run["defaultDatasetId"]).list_items().items)

Keep API tokens in environment variables or a secret manager.

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/facebook-public-video-downloader"

Claude Desktop setup

Add this configuration to Claude Desktop:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/facebook-public-video-downloader"
}
}
}

Cursor setup

Add the same MCP server URL in Cursor Settings → MCP.

VS Code setup

Add the same MCP server URL through your VS Code MCP extension or workspace MCP configuration.

Example prompts:

  • "Download this authorized public Facebook video at the lowest available quality and return its stored file metadata."
  • "Resolve these approved Facebook URLs without copying media and export an archive inventory."
  • "Archive this bounded Facebook video list with a 100 MB file limit."

Reliability, limits, and failure behavior

The Actor invokes a pinned, maintained media extractor against the public Facebook URL, then validates the selected media URL and container. It accepts only HTTPS MP4 media hosted by Facebook's CDN.

Transient network, rate-limit, and server failures are retried a bounded number of times. No proxy or browser fallback is enabled.

A bad URL produces an uncharged failed record and a concise log message. Successful URLs remain available when another URL fails. The run exits with failure when no URL succeeds.

Troubleshooting

Why was my Facebook video rejected?

Open it in a logged-out browser. Confirm it is one exact video or Reel URL and that it opens in a logged-out browser. Private, login-only, removed, permissioned, and parser-incompatible videos are unsupported.

Why is the file URL unauthorized?

Run storage is private by default. Open it while authenticated in Apify Console or make an authorized API request with your token.

Why did an oversized video fail?

It exceeded maxVideoSizeMb. Raise the limit only when you have budgeted the additional transfer, memory for local runs, and storage.

Why is videoFileUrl null?

saveVideos was disabled, or retrieval failed. A successful resolve-only item has retrievalStatus: "resolved" and still includes sourceMediaUrl.

Use this Actor only for public Facebook media you are legally allowed to access, download, retain, and process. Respect copyright, privacy, publicity rights, contractual restrictions, Facebook's terms, and applicable law.

Do not use it to bypass passwords, login requirements, payment, geographic controls, DRM, or human-verification challenges. Do not redistribute media without permission. Minimize retained personal data, restrict file access, choose an appropriate retention period, and honor valid deletion requests. This tool does not grant rights to third-party content.

These products do not replace this Actor's exact Facebook URL-to-progressive-MP4 archival workflow.

FAQ

Does this Actor require a Facebook account?

No. It supports only anonymously reachable public Facebook page data and exposed progressive MP4s.

Can it search Facebook or crawl a creator profile?

No. Supply exact video URLs. Use a separate Facebook discovery Actor before this one when your workflow starts from a creator or keyword.

Does it bypass Facebook login or private-post controls?

No. Private, login-only, removed, and permissioned video is intentionally rejected.

Are failed or duplicate URLs charged as items?

No. Only successfully resolved public video records create the item event. The one-time start event still applies once per run.

Can I keep downloaded files permanently?

Apify storage retention depends on your plan. Copy files to durable storage you control when you need longer retention.