Facebook Reels Scraper avatar

Facebook Reels Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Facebook Reels Scraper

Facebook Reels Scraper

Extract Facebook Reels data including video information, engagement metrics, and metadata from Facebook pages.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

Scraply

Scraply

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

8 hours ago

Last modified

Share

Facebook Reels Scraper

Facebook Reels Scraper is a production-ready Facebook Reels scraper tool that collects public Reels from the Facebook profiles you provide and streams structured data (captions, timing, media metadata, and playback details) directly into your Apify dataset. It solves the challenge of reliably extracting Facebook Reels at scale — without a private API — for marketers, developers, data analysts, and researchers. With this Facebook Reels data extractor built in Python, you can run bulk profile collections, apply date cutoffs, route traffic via proxies for stability, and export results to CSV/JSON for downstream analytics and workflows.

What data / output can you get?

Below are real top-level fields the actor pushes to the Apify dataset for each Reel. The output is one JSON record per Reel, streamed as soon as it’s saved. You can export your dataset to JSON, CSV, or Excel directly from Apify.

Data typeDescriptionExample value
facebookUrlBase Facebook profile/page URL resolved from owner or requesthttps://www.facebook.com/LeonardoDiCaprio/
inputUrlThe exact Reel URL that was fetchedhttps://www.facebook.com/reel/123456789012345
topLevelUrlTop-level post permalink if resolvablehttps://facebook.com/1234567890/posts/undefined/
topLevelReelUrlCanonical shareable Reel URL (trailing slash normalized)https://www.facebook.com/reel/123456789012345/
textReel caption/message (text and emoji)Saving our oceans starts here 🌊
timeISO timestamp of publish/creation time when available (UTC)2026-03-12T08:15:00.000Z
playCountRoundedParsed integer view/play count from “play_count_reduced”3600000
play_count_reducedRounded play count text if present3.6M
shareable_urlShareable Reel URL extracted from page contexthttps://www.facebook.com/reel/123456789012345
video_ownerOwner metadata object (e.g., id, name, url){"id":"1000123456789","name":"Sample Page","url":"https://www.facebook.com/SamplePage"}
playback_videoPlayback metadata object (e.g., length_in_second, image.uri){"id":"123456789012345","length_in_second":57,"image":{"uri":"https://.../thumb.jpg"}}
videoVideo object merged from page trees (e.g., id, playable_duration_in_ms){"id":"123456789012345","playable_duration_in_ms":57000,"__typename":"Video"}
attachmentsAttachments array (first item typically contains media details)[{"media":{"id":"123456789012345"}}]
trackingParsed tracking dictionary (e.g., top_level_post_id){"top_level_post_id":"123456789012345"}
video_owner_typeOwner type label when availableFACEBOOK_USER
fb_shorts_reshare_contextReshare context object{"is_reshare":false}
remix_infoRemixability status object{"status":"DISABLED"}
is_original_audio_on_facebookWhether the audio is originaltrue
soundtrack_infoAudio metadata object when present{"type":"CUSTOM_AUDIO"}
track_titleTrack title if present/inferredSample Page · Original audio
self_view_boostSelf-view adjustment flag/value when presentnull
if_should_change_url_for_reelsObject with potential shareable_url override{"shareable_url":"https://www.facebook.com/reel/123456789012345"}
startUrlThe original profile input you providedhttps://www.facebook.com/LeonardoDiCaprio/
http_statusHTTP status for the request when not 200429
parse_errorParse warning message if some data wasn’t foundshort_form_video_context not found in page JSON
request_errorRequest error class name on failureReadTimeout

Notes:

  • Some nested fields (e.g., playback_video.image.uri or video.playable_duration_in_ms) are populated opportunistically and may be absent on certain Reels.
  • On profile-level errors, the actor also pushes {"startUrl": "...", "error": "...", "type": "profile_error"} to the dataset for transparency.

Key features

  • 🚀 Fast, streaming extraction
    • Records are pushed to your dataset as each Reel is processed — no need to wait for the whole run to finish.
  • 🎯 Profile flexibility & resolution
    • Paste full profile links or bare usernames (e.g., “LeonardoDiCaprio”); the scraper normalizes them into valid facebook.com URLs automatically.
  • 🧭 Newest-first limiting with cutoffs
    • Control volume per profile with “Max Reels per profile” and optionally filter by “Only posts newer than” (absolute date or relative phrases like “7 days”).
  • 📈 Scalable pagination
    • Uses Facebook’s profile Reels tab and GraphQL pagination under the hood to discover more Reels, enabling high-volume runs for Facebook Reels bulk downloader workflows via exported playback metadata.
  • 🔒 Proxy-ready for reliability
    • Full Apify Proxy support with a Residential recommendation for stable Facebook Reels scraping without API access.
  • 💾 Analysis-ready output
    • Rich metadata including caption text, publish time, owner info, and playback_video fields you can export to JSON, CSV, or Excel for analytics.
  • 👩‍💻 Developer-friendly & Python-based
    • Built in Python with the Apify SDK; orchestrate via the Apify API and integrate with your pipelines, whether you prefer a Facebook Reels scraper Python workflow or no-code automation.

How to use Facebook Reels Scraper - step by step

  1. Create or log into your Apify account.
  2. Open the Facebook Reels Scraper actor in Apify.
  3. Paste input profile(s) into “Profile URLs” — one per line. You can use:
  4. Set “Max Reels per profile” to control volume (1–10,000). The scraper fetches newest-first where available.
  5. Optionally set “Only posts newer than” with a date (YYYY-MM-DD) or a relative window like “7 days” or “2 weeks”.
  6. Configure “Proxy” if needed — Residential groups are recommended for Facebook.
  7. Start the run. The log will show queued Reel counts and per-Reel saves; rows are pushed to the dataset in real time.
  8. Export your dataset in JSON, CSV, or Excel and plug it into your reporting, enrichment, or Facebook Reels analytics scraping workflows.

Pro Tip: Schedule this Facebook Reels crawler on Apify to monitor profiles over time and keep your dataset fresh.

Use cases

Use case nameDescription
Social media analytics & benchmarkingAggregate captions, time, and playback metadata from public Reels to compare creators/pages and trends over time.
Brand monitoring & UGC trackingTrack newly published Reels from selected profiles with a rolling “Only posts newer than” window for timely insights.
Content research & captions extractorCollect caption text (including emoji) for topic modeling, messaging research, and creative ideation.
Data enrichment for BIPipe JSON/CSV exports into BI dashboards to map posting cadence, durations, and approximate plays.
API pipeline integrationRun the actor via the Apify API as part of your ETL, then store results to a lakehouse or queue for processing.
Academic & market researchBuild structured datasets of public Reels to study platform usage, media lengths, or owner types across categories.

Why choose Facebook Reels Scraper?

This Facebook Reels scraper tool is built for precision, automation, and reliability on Apify’s cloud.

  • ✅ Accuracy-first extraction: Captures real caption text, time, owner, and playback metadata directly from public pages.
  • 📈 Built to scale: Newest-first limiting, GraphQL-backed pagination, and streaming dataset writes for large profile lists.
  • 💻 Developer access: Control runs via the Apify API and integrate with Python-based workflows or no-code tools.
  • 🔒 Stable networking: Optional Residential proxy routing reduces rate limits and blocks during Facebook Reels scraping without API access.
  • 💾 Easy exports: One-click export to JSON/CSV/Excel; perfect for Facebook Reels to CSV pipelines.
  • 🛡️ Safer than extensions: Production actor avoids brittle browser plugins and unstable one-off scripts, offering a reliable alternative to “Facebook Reels scraper Chrome extension” tools.

In short, it’s a production-grade Facebook Reels crawler that balances scale, structure, and stability.

Yes — when used responsibly. This actor collects publicly available Reels data without logging in. Follow these guidelines:

  • Only target public profiles/Reels and avoid authenticated or private content.
  • Comply with applicable regulations (e.g., GDPR/CCPA) and Facebook’s terms.
  • Use proxies ethically and respect rate limits to reduce undue load.
  • Validate your use case with your legal team if unsure about jurisdiction-specific requirements.

The actor does not access private profiles or require credentials.

Input parameters & output format

Example JSON input:

{
"startUrls": [
"https://www.facebook.com/people/Emily-Olivia/61563061022550/",
"LeonardoDiCaprio"
],
"resultsLimit": 25,
"onlyPostsNewerThan": "7 days",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Input parameters (all must match exactly):

  • startUrls (array of string)
    • Description: One URL per line — e.g. facebook.com/YourPage or a /people/… link. Usernames without https:// work too.
    • Required: Yes
    • Default: None
  • resultsLimit (integer)
    • Description: Stop after this many Reels from each profile (newest-first order where available).
    • Required: No
    • Default: 10 (min 1, max 10,000)
  • onlyPostsNewerThan (string)
    • Description: Absolute date (YYYY-MM-DD) or relative phrase (e.g., 7 days, 2 weeks). Leave blank for no cutoff.
    • Required: No
    • Default: "" (no cutoff)
  • proxyConfiguration (object)
    • Description: Route traffic through Apify Proxy (recommended for fewer blocks). Residential proxy is recommended for Facebook.
    • Required: No
    • Default: Not set (UI provides a prefill with useApifyProxy true and RESIDENTIAL group)

Example JSON output (single record):

{
"facebookUrl": "https://www.facebook.com/LeonardoDiCaprio/",
"inputUrl": "https://www.facebook.com/reel/123456789012345",
"topLevelUrl": "https://facebook.com/1234567890/posts/undefined/",
"topLevelReelUrl": "https://www.facebook.com/reel/123456789012345/",
"text": "Saving our oceans starts here 🌊",
"time": "2026-03-12T08:15:00.000Z",
"playCountRounded": 3600000,
"attachments": [
{
"media": {
"id": "123456789012345",
"__typename": "Video"
}
}
],
"tracking": {
"top_level_post_id": "123456789012345"
},
"self_view_boost": null,
"video": {
"id": "123456789012345",
"playable_duration_in_ms": 57000,
"__typename": "Video",
"embeddable": true
},
"if_should_change_url_for_reels": {
"shareable_url": "https://www.facebook.com/reel/123456789012345"
},
"shareable_url": "https://www.facebook.com/reel/123456789012345",
"playback_video": {
"id": "123456789012345",
"length_in_second": 57,
"audio_user_preferred_language": "en",
"image": {
"uri": "https://example-cdn.fbcdn.net/thumb.jpg"
}
},
"video_owner": {
"id": "1000123456789",
"name": "Sample Page",
"url": "https://www.facebook.com/SamplePage"
},
"is_passive_content": false,
"fb_shorts_reshare_context": {
"is_reshare": false
},
"remix_info": {
"status": "DISABLED"
},
"video_owner_type": "FACEBOOK_USER",
"soundtrack_info": {
"type": "CUSTOM_AUDIO"
},
"track_title": "Sample Page · Original audio",
"music_album_art_uri": "https://example-cdn.fbcdn.net/album_art.jpg",
"is_original_audio_on_facebook": true,
"play_count_reduced": "3.6M",
"startUrl": "https://www.facebook.com/LeonardoDiCaprio/"
}

Fields that may be absent:

  • playback_video, video, attachments, and some audio-related fields depend on what’s present on the Reel’s page and can be missing for certain posts.
  • http_status, parse_error, and request_error are only included on error/partial cases.

FAQ

Do I need to log in to scrape Facebook Reels?

No. The actor targets publicly available Reels and does not require login. For best stability, use a Residential proxy via the “Proxy” setting.

Can it scrape Facebook Reels comments or likes?

No. This actor focuses on Reel-level metadata such as caption text, publish time, owner details, and playback metadata. It does not extract comments, likes, or other engagement counts beyond parsed play counts.

Does this work as a Facebook Reels downloader?

It provides playback metadata via the playback_video and video fields, including IDs, durations, thumbnails, and (when present) playback-related links/manifest references. You can use these fields in your own Facebook Reels bulk downloader or pipeline.

How many Reels can I scrape per profile?

You can set “Max Reels per profile” up to 10,000. The scraper discovers Reels newest-first where available and paginates to find more.

Can I filter by date range?

Yes. Use “Only posts newer than” with either an absolute date (YYYY-MM-DD) or a relative window like “7 days” or “2 weeks”. Older Reels are skipped when the cutoff applies.

Is this a Facebook Reels scraper Python solution?

Yes. The actor is implemented in Python using the Apify SDK and requests. You can orchestrate it via the Apify API and integrate the output into Python workflows.

Does it support scraping without API access?

Yes. It parses public HTML and page-embedded JSON (plus GraphQL pagination) to extract data, so no private API access is required.

How can I export to CSV?

After the run, open the Dataset attached to your run and export to CSV, JSON, or Excel. This makes it easy to build Facebook Reels to CSV workflows for analytics and reporting.

Closing thoughts

Facebook Reels Scraper is built to collect structured, analysis-ready Facebook Reels metadata at scale. It normalizes profile inputs, supports date cutoffs, streams results as it goes, and exposes playback fields you can use in downstream pipelines. Ideal for marketers, developers, analysts, and researchers, it runs reliably with proxy support and exports cleanly to CSV/JSON for BI or automation. Use the Apify API for scheduled or programmatic runs — and start extracting smarter, faster, and more reliably today.