Facebook Reels Scraper avatar

Facebook Reels Scraper

Pricing

from $2.80 / 1,000 results

Go to Apify Store
Facebook Reels Scraper

Facebook Reels Scraper

Facebook Reels Scraper extracts captions, play counts, reactions, hashtags and HD/SD video links โ€” scrape Facebook Reels in bulk for analytics, influencer research, monitoring and short-video content export.

Pricing

from $2.80 / 1,000 results

Rating

0.0

(0)

Developer

Data Minds

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

27

Total users

20

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

What is Facebook Reels Scraper?

Facebook Reels Scraper works as a Facebook reels extractor for public Facebook pages, profiles and single reel links. Paste one or more URLs or usernames, click Start, and get captions, play counts, reactions, comments, shares, video links, thumbnails, music and author details in a dataset. No login is needed. Pricing starts at $2.80 per 1,000 reels on the Gold plan, plus platform usage.

Use it for:

  • Facebook reels analytics: use it as a views and likes scraper to track the view count, reactions, comments and shares of each reel across many pages.
  • Competitor reels analysis: compare how rival pages perform and which captions and hashtags they use.
  • Short video content research: study captions, hashtags and music of reels that work, as a Facebook short video scraper would.
  • Hashtag research: use it as a Facebook reels hashtag scraper to collect the hashtags behind top reels.
  • Influencer research: collect author names, usernames and verified flags for creators you want to review.
  • Find viral Facebook reels: set a minimum play count to keep only the reels that took off.
  • Trend monitoring: schedule Facebook reels scraping with a date window to catch new reels as they appear.
  • Download Facebook reels in bulk: use it as a Facebook reels video downloader that saves MP4 copies to storage with a link that keeps working.

Because it runs on Apify, you also get API access, scheduling, webhooks, integrations and export to JSON, CSV, Excel, XML and HTML.

What can Facebook Reels Scraper do?

  • ๐Ÿ”— Accept many input types: page and profile URLs, Reels tab links, numeric profile links, single reel links, share links and bare usernames, with bulk input and automatic de-duplication.
  • ๐Ÿ“… Filter by date: keep reels newer or older than an absolute date or a relative value such as 3 days.
  • ๐Ÿ“ˆ Filter by popularity and length: set minimum and maximum play counts and durations.
  • ๐Ÿ’พ Save the video files: optionally store the HD or SD MP4 of each reel with a public link.
  • ๐Ÿ“ฆ Run in bulk: a bulk scraper for Facebook reels that handles many inputs in one run.
  • ๐Ÿงพ Collect reel details: a Facebook reels metadata extractor with captions, counts, music and authors.
  • โšก Stream results live: each reel appears in the dataset as soon as it is ready.
  • ๐Ÿ“‹ See what happened: optional per-input summary rows and error rows explain every stop and failure.

What data can Facebook Reels Scraper extract?

Every reel is saved as one dataset row with the fields below.

DataFieldsWhat it holds
๐ŸŽฌ Reel identityrecordType, reelId, postId, storyId, feedbackId, video, attachments, trackingRow type and the identifiers of the reel
๐Ÿ”— LinksreelUrl, shareable_url, if_should_change_url_for_reels, topLevelUrl, topLevelReelUrl, postUrl, permalinkUrl, facebookUrl, inputUrl, pageNameLinks to the reel and the page it came from
๐Ÿ“ Captiontext, message, hashtags, mentions, linksCaption text, hashtags, mentions and links found in it
๐Ÿ“… Timetime, timestamp, scheduledPublishTime, scrapedAtWhen the reel was posted and when it was scraped
๐Ÿ“ˆ EngagementplayCount, playCountRounded, play_count_reduced, reactionCount, likeCount, commentCount, shareCount, shareCountReducedPlays, reactions, comments and shares
๐Ÿ•’ Video detailsdurationSeconds, durationMs, width, height, aspectRatio, audioAvailability, videoLabel, dubbedTrackMappingLength, size and audio information
๐Ÿ–ผ ThumbnailsthumbnailUrl, firstFrameThumbnailUrlPreview images
๐Ÿ’พ Video filesvideoUrlHd, videoUrlSd, bestVideoUrl, bestVideoQualityLabel, dashManifestUrl, videoQualities, playback_video, localVideoPath, downloadedVideoUrlVideo links, quality list and the saved copy when download is on
๐Ÿ’ฌ Captions and languagescaptionsUrl, availableCaptionLocalesSubtitle file link and available languages
๐ŸŽต MusicmusicTitle, track_title, musicIsOriginal, is_original_audio_on_facebook, soundtrack_info, soundtrackId, soundtrackType, music_album_art_uriTrack title and audio details
๐Ÿ‘ค AuthorauthorName, authorId, authorUsername, authorUrl, authorVerified, authorProfilePicUrl, authorPageId, authorType, video_owner, video_owner_type, subscribeStatusWho published the reel
๐Ÿท FlagsisSponsored, isBrandedContent, isReshare, fb_shorts_reshare_context, isRemixable, remix_info, isAiGenerated, aiTransparencyType, isMadeWithMetaAi, is_passive_content, self_view_boost, privacy, publishStatusSponsored, reshare, remix and AI markers
๐Ÿ“ฆ CollectioncollectionId, collectionIdDecodedIdentifier of the reels list the row came from
โœ… Statussuccess, errorWhether the row is a normal result and any error text

With the optional raw data setting, a raw field holds the complete reel object.

If you turn on per-page summaries, one extra row per input URL (recordType set to profileSummary) holds pageName, targetKind, reelsFound, reelsSaved, reelsFilteredOut, pagesWalked, hasMoreReels, stoppedBecause, connectionTier, durationSeconds, success, error, facebookUrl, inputUrl and scrapedAt. Inputs that fail, or return no reels, can add an error row (recordType set to error) with the same fields as a reel row, success set to false and the reason in error.

Note: Fields are filled only when the reel shows them publicly. Counts, music, captions, video links and author details can be empty (null) for some reels.

What data can't Facebook Reels Scraper extract?

  • Comments text, reaction lists and follower lists. Only counts are saved.
  • Private, removed or login-only content.
  • Posts, photos and events. For page details, use Facebook Pages Scraper.

How to scrape Facebook reels

This Actor is built for an easy start, even if you have never extracted data from the web before.

  1. Create a free Apify account with your email.
  2. Open Facebook Reels Scraper.
  3. Paste one or more Facebook page, profile or reel URLs into Facebook URLs, or add names to Facebook usernames.
  4. Set Max reels per page / profile and, if you want, a date range or play-count filter.
  5. Click Start and wait for the run to finish.
  6. Download your data in JSON, CSV, Excel, XML or HTML from the Output tab.

How much does it cost to scrape Facebook reels?

This Actor uses a pay-per-event model. You pay for each reel saved, and the price per reel falls on higher Apify plans. Summary rows and error rows are not charged. Platform usage is billed in addition.

Apify planPrice per reelPrice per 1,000 reels
Free$0.004$4.00
Bronze$0.0036$3.60
Silver$0.0032$3.20
Gold$0.0028$2.80

Each run also has a start event of $0.00005 per GB of memory, with a minimum of one. The default memory is 1 GB, so a run starts with one event, which is $0.00005.

Example: scraping 1,000 reels on the Gold plan costs $2.80 in result events plus $0.00005 for the start, with platform usage billed in addition. The same 1,000 reels cost $4.00 on the Free plan.

See the pricing tab for all events.

Is scraping Facebook reels free?

You can start for free. The $5 monthly credit of the Apify Free plan covers about 1,250 reels at the Free price of $0.004 each, before platform usage. A small test run with the default settings is a cheap way to check the output first.


Input

To run this Actor you only need one Facebook URL or one username. Set the input in the Actor interface or send it as JSON through the API.

This example collects up to 20 reels from one public page:

{
"startUrls": ["https://www.facebook.com/LeonardoDiCaprio/"],
"resultsLimit": 20,
"language": "en-US",
"proxyConfiguration": {
"useApifyProxy": false
}
}

See the input tab for the full description of every field.

FieldTypeRequiredDefaultDescription
startUrlsarrayOne of the twononeFacebook page, profile, Reels tab, single reel or share links
usernamesarrayOne of the twononeUsernames or numeric profile IDs, one per line
resultsLimitintegerNo20Reels per page or profile. 0 means every reel
onlyPostsNewerThanstringNononeKeep reels posted on or after this date
onlyPostsOlderThanstringNononeKeep reels posted on or before this date
minPlayCountintegerNononeSkip reels with fewer plays
maxPlayCountintegerNononeSkip reels with more plays
minDurationSecondsnumberNononeSkip shorter reels
maxDurationSecondsnumberNononeSkip longer reels
downloadVideosbooleanNofalseSave each reel as an MP4 in the key-value store
videoQualitystringNohdhd or sd for downloads
includeDashManifestbooleanNotrueKeep the full playback data in each row
includeRawNodebooleanNofalseAdd the complete raw reel object as raw
includeProfileSummarybooleanNotrueAdd one summary row per input
includeErrorRowsbooleanNotrueAdd one error row per failed input
languagestringNoen-USPreferred language for labels
concurrencyintegerNo3Inputs processed at the same time (1 to 20)
maxProfilesintegerNo0Process only the first N inputs. 0 means all
minRequestDelaynumberNo0.5Minimum pause before each request, in seconds
maxRequestDelaynumberNo1.5Maximum pause before each request, in seconds
maxRetriesintegerNo3Retries for one failed request (1 to 10)
requestTimeoutintegerNo60Seconds to wait for one response
maxPagesintegerNo0Cap on batches of about 10 reels per input. 0 means no cap
proxyConfigurationobjectNo{"useApifyProxy": false}Optional connection settings
debugbooleanNofalseLog extra detail about retries

Facebook URLs and usernames

You can mix formats in one run. Duplicates are removed.

  • โœ… Good: https://www.facebook.com/LeonardoDiCaprio/
  • โœ… Good: https://www.facebook.com/reel/31939704905645094
  • โœ… Good: Cristiano in usernames
  • โŒ Bad: a private profile or a group link

Warning: Private or removed pages cannot be read. They return an error row instead of reels.

Date filters

Use YYYY-MM-DD, an ISO timestamp, or a relative value such as 3 days, 2 weeks, 6 months or 1 year. Combine both fields to get an exact range.

  • โœ… Good: 2025-01-01 or 2 weeks
  • โŒ Bad: last Tuesday

Warning: A value the Actor cannot read is ignored, and the run log says so.

Max reels per page / profile

The limit applies to each page or profile separately. A single reel link returns one record, unless your date, play-count or duration filters drop it. Start with 10 to 50 to test, then raise it.


Output

Results are stored in a dataset, which you can open in the Output or Storage tab. View them as a table or JSON, pick the fields you need, and download them in JSON, CSV, Excel, XML or HTML. Views are available for Reels, Profile summary and Errors. When a run saves records, a combined file with the same records is also written to the key-value store under the key OUTPUT. Downloaded videos are saved there as reel-<reelId>.mp4.

JSON example

Results for the input example above (shortened to the main fields, with example values):

{
"recordType": "reel",
"facebookUrl": "https://www.facebook.com/LeonardoDiCaprio",
"inputUrl": "https://www.facebook.com/LeonardoDiCaprio/",
"pageName": "LeonardoDiCaprio",
"reelId": "1234567890123456",
"reelUrl": "https://example.com/reel/1234567890123456",
"text": "Example caption #nature",
"time": "2026-01-15T10:00:00Z",
"playCount": 246000,
"reactionCount": 12000,
"commentCount": 340,
"shareCount": 910,
"durationSeconds": 24.5,
"width": 720,
"height": 1280,
"thumbnailUrl": "https://example.com/thumb.jpg",
"videoUrlHd": "https://example.com/video-hd.mp4",
"videoUrlSd": "https://example.com/video-sd.mp4",
"downloadedVideoUrl": null,
"hashtags": ["nature"],
"mentions": [],
"authorName": "Example Page",
"authorUsername": "LeonardoDiCaprio",
"authorVerified": true,
"musicTitle": "Original audio",
"isSponsored": false,
"isReshare": false,
"scrapedAt": "2026-10-26T12:00:00Z",
"success": true,
"error": null
}

With summaries on, each input also adds a row like this:

{
"recordType": "profileSummary",
"facebookUrl": "https://www.facebook.com/LeonardoDiCaprio",
"inputUrl": "https://www.facebook.com/LeonardoDiCaprio/",
"pageName": "LeonardoDiCaprio",
"targetKind": "profile",
"reelsFound": 20,
"reelsSaved": 20,
"reelsFilteredOut": 0,
"pagesWalked": 2,
"hasMoreReels": true,
"stoppedBecause": "reached resultsLimit (20)",
"durationSeconds": 8.4,
"success": true,
"error": null,
"scrapedAt": "2026-10-26T12:00:08Z"
}

Notes and limitations

  • Only public content is read. No login is used.
  • Facebook's own video links expire after a few hours. Turn on downloadVideos to get a saved copy with a lasting link.
  • Downloads are slower and use more bandwidth. Raise the Actor memory for big batches.
  • The combined OUTPUT file is skipped when it would be larger than 40 MB. Export the dataset instead.
  • If your spending limit is reached, the run stops and keeps the reels collected so far.

Tips and advanced usage

How many reels can you scrape with Facebook Reels Scraper?

The number depends on how many public reels a page has, your resultsLimit, your filters and your date range. Set resultsLimit to 0 to collect every reel a page shows. The best way to know for your use case is a quick test run.

How to get faster or cheaper results

  • Use onlyPostsNewerThan. The run stops once the feed is older than your date.
  • Keep downloadVideos off unless you need the files.
  • Turn off includeDashManifest for smaller rows. Each row is then about 10 to 25 KB leaner.
  • Use maxPages as a safety cap on very large pages.

Known issues

  • If many requests fail, raise the delays and the retry count, or review the network setting in the input, then run again.
  • Some pages do not show a public Reels tab. Those inputs return an error row.

Integrations and API

Can I use Facebook Reels Scraper as an API?

Yes. The Apify API lets you start runs, schedule them and fetch results. Use the apify-client package for Node.js or Python. See the API tab for ready-made code.

How to scrape Facebook reels with Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("data_minds/facebook-reels-scraper").call(run_input={
"startUrls": ["https://www.facebook.com/LeonardoDiCaprio/"],
"resultsLimit": 20,
"language": "en-US",
"proxyConfiguration": {"useApifyProxy": False},
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Can I integrate Facebook Reels Scraper with other apps?

Yes. Connect it to Make, Zapier, Google Sheets, Slack and more through Apify integrations. Use webhooks to react when a run finishes, and schedules to repeat runs for trend monitoring.

Can I use Facebook Reels Scraper with AI agents (MCP)?

Yes. Open the MCP tab for setup steps to connect the Actor to Claude and other MCP clients.


Other Facebook scrapers

ActorWhat it does
๐Ÿ“ฃ Facebook Ads Library ScraperPublic ads from the Meta Ad Library by keyword, page or link
๐Ÿ“† Facebook Event ScraperPublic Facebook events: dates, places, attendance and organizers
๐Ÿ“„ Facebook Pages ScraperPublic Facebook Page data in bulk: category, followers, contact details and more
๐Ÿ“ธ Instagram ScraperPublic Instagram profiles, posts, reels, comments and hashtags
๐Ÿ”— Whop Content Rewards ScraperEvery Whop Content Rewards clipping & UGC campaign as clean data โ€” per-platform payout tables, creator counts, budget burn, days-to-depletion...

FAQ

Scraping publicly available data is generally legal, but you must respect personal data rules such as GDPR, copyright and Facebook's terms. Collect only what you need and have a legitimate reason. Read Is web scraping legal? for background. This is not legal advice.

How does Facebook Reels Scraper work?

You give it Facebook page, profile or reel links, plus optional filters. It reads each public Reels list the way a visitor would, applies your date and popularity filters, and saves every matching reel to the dataset as it goes. It stops at your limit, at the end of the list, or at your spending limit.

Why scrape Facebook reels?

Scraping reels turns scattered public videos into a table you can sort. Teams use it for Facebook reels analytics, competitor research, influencer discovery, hashtag and music trend tracking, and brand monitoring. Scheduled runs keep the data fresh, and exports to CSV or Excel make reporting simple for marketing and research teams.

Do I need a Facebook login or API key?

No. Facebook Reels Scraper reads public pages only and uses no login, cookies or API key. This also means private profiles, removed reels and pages that do not show a public Reels tab cannot be scraped. Those inputs return an error row with a plain reason when error rows are enabled.

Can I download Facebook reels in bulk?

Yes. Turn on downloadVideos and choose HD or SD. Each reel is saved as an MP4 in the run's key-value store, and its public link appears in downloadedVideoUrl. Downloads are slower and use more bandwidth, so test with a small resultsLimit first and raise the Actor memory for large batches.

Why am I getting fewer results than expected?

Check these causes first. Your resultsLimit, date range, play-count or duration filters may be removing reels. The page may have few public reels, or a maxPages cap may apply. Open the profile summary row: stoppedBecause, reelsFound and reelsFilteredOut show exactly why the run ended.

How do I export Facebook reels to CSV or Excel?

When the run finishes, open the Output or Storage tab, choose the export format and select the fields you need. JSON, CSV, Excel, XML and HTML are available. You can also fetch the dataset through the API, or send it straight to Google Sheets with an integration.

What if Facebook Reels Scraper is not working?

First run it with the example input to confirm your setup. Then check the run log and the Errors view for the reason. If the problem remains, open a ticket on the Issues tab with your run link, and we will look into it.


Support and feedback

We are always improving this Actor. If you have feedback or found a bug, please create an issue on the Issues tab.

Need a custom solution or have questions? Contact hello.dataminds@gmail.com.

Built and maintained by the data_minds team on Apify.

Facebook Reels Scraper is an independent tool and is not affiliated with or endorsed by Meta or Facebook. Use it in line with applicable laws and the platform's terms.