Facebook Video Downloader
Download Facebook videos, reels and fb.watch links as MP4, or the sound as MP3. No login needed for public videos. Pay per megabyte of file delivered.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
urls,quality,audioOnly(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.0005 per megabyte downloaded = $0.5 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Megabyte downloaded | Each 1 MB of media actually delivered, rounded up per file. Failed, refused or skipped downloads are not charged. | $0.0005 |
| Minute of video converted | Each started minute of video re-encoded to H.264 when you turn conversion on, so a 27-second reel counts as one. Videos that are already H.264, MP3s, and conversions that fail or are refused aren't charged. | $0.03 |
Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-13, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
urls | One link per line: a Facebook video, watch or reel link, on facebook.com or fb.com, any subdomain, or an fb.watch or facebook.com/share/ short link. Each link gives one file. If a short link still stops at a login page, open it in your browser and paste the facebook.com address it lands on. Links from other sites are refused, with a pointer to the downloader that takes them. | array |
quality | Measured on the short side of the picture, so 1080 means 1920x1080 for a landscape video and 1080x1920 for a vertical one. If a video doesn't come in that quality you get the closest one it has. You pay per megabyte, so a higher quality costs more. | string |
audioOnly | Save just the video's sound, as a 128 kbit/s MP3, instead of the video. | boolean |
convertToH264 | Some Facebook reels only come as VP9 or AV1, which QuickTime and older iPhones may not play. Turn this on and those are re-encoded to H.264, which plays nearly everywhere. It takes a while, because every frame is encoded again: a 27-second 1080p reel took about a minute and a half at the default memory, and under a minute at 2048 MB. Videos Facebook already sends as H.264, and MP3s, are left as they are. The H.264 file is about 2 to 2.6 times the size of the original. Converting costs $0.03 for each started minute of video converted, on top of the megabytes of the H.264 file, so a 27-second reel counts as one minute. | boolean |
maxMegabytes | A video bigger than this is skipped before it is downloaded, and you are not charged for it. One run can hold files up to about 70% of its memory (716 MB at the default 1024 MB), so for anything bigger raise the run's memory as well. | integer |
cookies | Leave this empty for public videos: they download without it. Fill it in only for videos a logged-out visitor can't open, such as friends-only posts or a private group you're in, and you get what your own account can see. In Chrome: open facebook.com while signed in, press F12, then Application > Cookies > https://www.facebook.com, and copy the c_user and xs values onto one line as c_user=…; xs=…, or paste a JSON or cookies.txt export of your facebook.com cookies instead. They are only tried on a link that doesn't open without them. Apify stores this field encrypted. Treat it like a password: anyone with these values can act as your account, and Facebook may sign the session out or restrict the account for automated use. | string |
What you get
A structured dataset — each result includes fields like:
titleauthordurationSecondsresolutionvideoCodecformatfileSizeBytesbilledMegabytesconvertedToH264notemediaUrlurlhostmediaKeyExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
Related tools in Developer & Research Tools
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
GitHub Scraper
Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.
Stack Overflow / Stack Exchange Scraper
Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.
Package Registry Scraper (npm + PyPI)
Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.
arXiv Scraper
Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.
OpenAlex Scholarly Works Scraper
Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.
Crossref Scholarly Works Scraper
Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.
Where this tool sits
- Categories
- Developer & Research Tools
Facebook Video Downloader: public videos and reels as MP4, or just the sound as MP3
Paste the link of a Facebook video, watch page or reel and you get the file itself: an MP4, or a 128 kbit/s MP3 if you only want the sound. Each file is saved in the run and its dataset row carries a direct download link. Public videos need no account; your cookies open the ones you can see.
The one thing that catches people out: a video that plays in your browser can still fail here, because Facebook won't hand some videos to a visitor who isn't signed in. The reason lands in ERRORS and costs nothing. fb.watch and facebook.com/share/ links are followed to the video for you, and fb.com is the same site under a shorter name.
| Input | Facebook video, watch, reel and fb.watch links |
| Output | One MP4 or MP3 per link, plus a row with a download link |
| Ceiling | 500 MB per video by default, up to 4,000 |
| Account needed | None for public videos. Your own cookies for ones only your account can see |
| Price | $0.0005 per megabyte delivered, flat on every plan |
🔍 What Facebook Video Downloader does
Facebook sends the picture and the sound as separate pieces, merged back into one MP4 before you get it. The size is checked first, so a video over your maxMegabytes is refused rather than fetched and thrown away.
Facebook offers each reel in one video codec only. Plenty of them are VP9 or AV1, which a browser plays fine but QuickTime and older iPhones may refuse. There is no H.264 copy of those to ask for, so convertToH264 re-encodes the file:
| What it touches | Only files that are not already H.264. H.264 videos and MP3s are left alone. |
| What it costs in time | Every frame is encoded again. At the default 1024 MB, roughly 3 minutes of 1080p per link; raise the run's memory for longer videos. |
| What it costs in size | The H.264 copy runs about 2 to 2.6 times the original, and you pay per megabyte of what you receive. |
| When it does not happen | If the conversion fails, runs out of time, or would go over your size limit or your run's maximum charge, you get the original file and the row's note says why. No megabytes are charged for the attempt. |
A video too long to convert in the time the run has is refused up front, with a message naming the memory setting to use.
📥 What you give it
{
"urls": ["https://www.facebook.com/reel/1195289147628387"],
"quality": "1080",
"maxMegabytes": 500
}
| Field | Default | What it is |
|---|---|---|
urls | required | One link per line: a Facebook video, watch or reel link, on facebook.com or fb.com, any subdomain. Duplicates are skipped. |
quality | 1080 | best, 1080, 720, 480 or 360, measured on the short side of the picture, so 1080 means 1920x1080 landscape or 1080x1920 vertical. A video that does not come in that size gives you the closest it has. |
audioOnly | false | Save the sound only, as a 128 kbit/s MP3. |
convertToH264 | false | Re-encode VP9 and AV1 videos to H.264. See above. |
maxMegabytes | 500 | Your limit per video, 1 to 4,000. Anything bigger is skipped before it is downloaded and costs you nothing. |
cookies | empty | Optional. Your own Facebook cookies, for videos a logged-out visitor can't open. See below. |
Videos only your account can see, such as friends-only posts or a private group you are in, need your own cookies in cookies. In Chrome, open facebook.com signed in, press F12, then Application > Cookies > https://www.facebook.com, and paste c_user=<value>; xs=<value>. A JSON or cookies.txt export works too. They are only tried on links that fail without them.
📤 What you get back
A real row from a real run, with the title and the download link cut short:
{
"url": "https://www.facebook.com/reel/1195289147628387",
"host": "facebook",
"title": "9.8K views · 343 reactions | When your trying to help your partner out with an arrest and #FAAFO games begin. ... | Beast Camp Training",
"author": "Beast Camp Training",
"durationSeconds": 9.57,
"resolution": "480x848",
"format": "mp4",
"fileSizeBytes": 669110,
"billedMegabytes": 1,
"videoCodec": "vp9",
"convertedToH264": false,
"note": null,
"mediaKey": "facebook-1195289147628387.mp4",
"mediaUrl": "https://api.apify.com/v2/key-value-stores/Uxnhw3yrzblEEyAPL/records/facebook-1195289147628387.mp4?signature=..."
}
| Field | What it is |
|---|---|
mediaUrl, mediaKey | A direct link to the file, and its key in the run's store if you would rather fetch it through the API. |
resolution, durationSeconds, format | Read off the file you actually received, not copied from the page. |
fileSizeBytes, billedMegabytes | The real size, and that size rounded up to whole megabytes. |
videoCodec, convertedToH264 | The codec of the file you got, and whether it was re-encoded for you. |
note | Empty on a normal row. When you asked for H.264 and did not get it, this says why. |
title, author | Facebook's own caption and the poster. On a reel the title has the view and reaction counts in front of the caption, the way Facebook shows it. |
🧾 Reading the output
Three places to look, and only the first one costs anything.
| Where | What is in it |
|---|---|
| The dataset | One row per delivered file, with mediaUrl on it. These are the files you pay for. |
| The key-value store | The MP4s and MP3s themselves, under the key in mediaKey. |
The ERRORS record | Every link that did not work, each with a plain reason. These never reach the dataset and are never charged. |
If no link could be downloaded, the run ends as Failed, so a schedule or an integration notices instead of quietly finding an empty dataset.
How long the store is kept depends on your Apify plan, so download what you want to keep.
▶️ How to run it
1. Open Facebook Video Downloader and click Try for free. 2. Paste links into Facebook video links, one per line. 3. Pick a Max quality, or turn on Audio only (MP3). Turn on Convert VP9 and AV1 videos to H.264 if the files are going into QuickTime or an older iPhone. For a friends-only or private-group video, open Videos only your account can see and paste your cookies. 4. Click Start. 5. Open the dataset and follow mediaUrl, or take the files from the run's key-value store.
💰 How much does it cost?
$0.0005 per megabyte of file delivered, flat on every Apify plan. The size counted is the file you receive, rounded up to whole megabytes, so the 669 KB reel above counts as one.
Converting to H.264 adds $0.03 for each started minute of video converted, on top of the megabytes of the converted file. A 27 second reel counts as one minute, a 61 second video as two.
A link that fails, a video over your maxMegabytes, one too big for the run, and a conversion that was refused or did not work all cost nothing. Adding your cookies doesn't change the price. If you set a maximum charge for the run, each video is checked against it before the download starts, so the run skips what it cannot pay for instead of going over.
💡 What people use it for
- Keeping a copy of a Page's own reels for an archive, or for re-cutting into other edits.
- Pulling the audio off a talk or interview video and running it through a transcriber.
- Feeding ad creative into a review pipeline that needs the actual file, not a link.
- Grabbing a handful of links from a scraper run and turning them into files in one go.
🚧 What it does not do
- Anything your account can't see. With your cookies it reaches what you can open, and no more.
- Every
fb.watchlink. Now and then one still stops at a login page. Paste thefacebook.com
address it opens in your browser instead.
- Live videos while they are live.
- Posts with no video in them, such as photo posts.
- Whole Pages or playlists. One link, one file.
- Other sites. Facebook links only. The siblings below cover TikTok, X and YouTube, but not
Instagram or Vimeo.
- Other output formats. The conversion only produces H.264 MP4 at the video's own picture size.
- Facebook sometimes refuses a public link that worked a minute earlier. It is retried once, then
the reason says to try later.
The videos belong to whoever posted them. Download what you own or have permission to use, and stay inside Facebook's terms.
🧭 Which downloader do you need?
| If you want | Use |
|---|---|
| A Facebook video or reel as a file | This one |
| The same for a TikTok link | TikTok Video Downloader |
| The same for an X link | X Video Downloader |
| The same for a YouTube link | YouTube Downloader |
| A Page's reels as data, with the links and counts | Facebook Reels Scraper |
❓ Questions people ask
Do I need an account, cookies or an API key? Not for public videos. Cookies are optional, for videos only your account can see.
Is it safe to paste my cookies? Apify stores the field encrypted, and the values never reach the log or the dataset. They are still a live login: anyone holding them can act as you, and Facebook may sign the session out or restrict the account for automated use.
Can I send lots of links in one run? Yes. They go one after another, a few seconds for a short video, so give a long list a generous run timeout.
Why did my file come out as VP9? Because that is the only codec Facebook has for that reel. Turn on convertToH264 if your player needs it.
How big a video can one run take? About 70% of the run's memory, so 716 MB at the default 1024 MB. For more, raise the memory in the run options; the message names the setting.
Does a smaller memory setting save money? No. The price is the megabytes you receive, and a smaller setting mainly makes the run slower.
🆘 If something breaks
Open the Issues tab on the actor page. Include the link you used and the run ID, and the ERRORS record plus the log is usually enough for us to see what happened.