Facebook Reels Scraper
Pricing
$19.99/month + usage
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
Actor stats
0
Bookmarked
4
Total users
3
Monthly active users
8 hours ago
Last modified
Categories
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 type | Description | Example value |
|---|---|---|
| facebookUrl | Base Facebook profile/page URL resolved from owner or request | https://www.facebook.com/LeonardoDiCaprio/ |
| inputUrl | The exact Reel URL that was fetched | https://www.facebook.com/reel/123456789012345 |
| topLevelUrl | Top-level post permalink if resolvable | https://facebook.com/1234567890/posts/undefined/ |
| topLevelReelUrl | Canonical shareable Reel URL (trailing slash normalized) | https://www.facebook.com/reel/123456789012345/ |
| text | Reel caption/message (text and emoji) | Saving our oceans starts here 🌊 |
| time | ISO timestamp of publish/creation time when available (UTC) | 2026-03-12T08:15:00.000Z |
| playCountRounded | Parsed integer view/play count from “play_count_reduced” | 3600000 |
| play_count_reduced | Rounded play count text if present | 3.6M |
| shareable_url | Shareable Reel URL extracted from page context | https://www.facebook.com/reel/123456789012345 |
| video_owner | Owner metadata object (e.g., id, name, url) | {"id":"1000123456789","name":"Sample Page","url":"https://www.facebook.com/SamplePage"} |
| playback_video | Playback metadata object (e.g., length_in_second, image.uri) | {"id":"123456789012345","length_in_second":57,"image":{"uri":"https://.../thumb.jpg"}} |
| video | Video object merged from page trees (e.g., id, playable_duration_in_ms) | {"id":"123456789012345","playable_duration_in_ms":57000,"__typename":"Video"} |
| attachments | Attachments array (first item typically contains media details) | [{"media":{"id":"123456789012345"}}] |
| tracking | Parsed tracking dictionary (e.g., top_level_post_id) | {"top_level_post_id":"123456789012345"} |
| video_owner_type | Owner type label when available | FACEBOOK_USER |
| fb_shorts_reshare_context | Reshare context object | {"is_reshare":false} |
| remix_info | Remixability status object | {"status":"DISABLED"} |
| is_original_audio_on_facebook | Whether the audio is original | true |
| soundtrack_info | Audio metadata object when present | {"type":"CUSTOM_AUDIO"} |
| track_title | Track title if present/inferred | Sample Page · Original audio |
| self_view_boost | Self-view adjustment flag/value when present | null |
| if_should_change_url_for_reels | Object with potential shareable_url override | {"shareable_url":"https://www.facebook.com/reel/123456789012345"} |
| startUrl | The original profile input you provided | https://www.facebook.com/LeonardoDiCaprio/ |
| http_status | HTTP status for the request when not 200 | 429 |
| parse_error | Parse warning message if some data wasn’t found | short_form_video_context not found in page JSON |
| request_error | Request error class name on failure | ReadTimeout |
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
- Create or log into your Apify account.
- Open the Facebook Reels Scraper actor in Apify.
- Paste input profile(s) into “Profile URLs” — one per line. You can use:
- Full URLs like https://www.facebook.com/people/Emily-Olivia/61563061022550/
- Page usernames like LeonardoDiCaprio (no protocol required)
- Set “Max Reels per profile” to control volume (1–10,000). The scraper fetches newest-first where available.
- Optionally set “Only posts newer than” with a date (YYYY-MM-DD) or a relative window like “7 days” or “2 weeks”.
- Configure “Proxy” if needed — Residential groups are recommended for Facebook.
- Start the run. The log will show queued Reel counts and per-Reel saves; rows are pushed to the dataset in real time.
- 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 name | Description |
|---|---|
| Social media analytics & benchmarking | Aggregate captions, time, and playback metadata from public Reels to compare creators/pages and trends over time. |
| Brand monitoring & UGC tracking | Track newly published Reels from selected profiles with a rolling “Only posts newer than” window for timely insights. |
| Content research & captions extractor | Collect caption text (including emoji) for topic modeling, messaging research, and creative ideation. |
| Data enrichment for BI | Pipe JSON/CSV exports into BI dashboards to map posting cadence, durations, and approximate plays. |
| API pipeline integration | Run the actor via the Apify API as part of your ETL, then store results to a lakehouse or queue for processing. |
| Academic & market research | Build 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.
Is it legal / ethical to use Facebook Reels Scraper?
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.