
Facebook Reels Scraper
Pricing
Pay per usage

Facebook Reels Scraper
Facebook Reels extractor that uses yt-dlp to detect and normalize Facebook Reels into a clean JSON schema. Works as an Apify Actor or locally, supports cookies, proxies and maxItems, and writes consolidated output for downstream pipelines.
0.0 (0)
Pricing
Pay per usage
0
8
8
Last modified
2 days ago
๐น Facebook Reels Scraper Actor
Effortlessly extract structured metadata from Facebook Reels directly on the Apify platform.
๐ Summary
This Actor takes one or more Facebook Reels URLs and produces structured JSON with details such as title, uploader, view counts, dates, and more. Only Reels are processed โ other video types are skipped.
๐ก Use cases
- Social media analytics dashboards
- Content performance tracking
- Archiving structured metadata for further research
- Automating reporting on trending Reels
โก Quick Start (Apify Console)
-
Go to your Actor in Apify Console.
-
Click Run.
-
In the Input tab, paste JSON like:
{"startUrls": [{"url": "https://www.facebook.com/reel/1234567890123456"}],"maxItems": 10} -
Click Run โ results will appear in the default Dataset.
โก Quick Start (CLI & API)
CLI (apify-cli
)
$apify run -p input.json
Where input.json
contains:
{"startUrls": [{"url": "https://www.facebook.com/reel/1234567890123456"}]}
API (apify-client
in Python)
from apify_client import ApifyClientclient = ApifyClient('<APIFY_TOKEN>')run = client.actor('<ACTOR_ID>').call(run_input={"startUrls": [{"url": "https://www.facebook.com/reel/1234567890123456"}],"maxItems": 5})# Fetch dataset itemsfor item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
๐ Inputs
startUrls
(array of objects or strings) โ List of Facebook Reel URLs. Required.cookiesFile
(string, optional) โ Path to uploaded cookies file. Useful if login is required.proxyConfiguration
(object, optional) โ Proxy settings as provided in Apify Console.maxItems
(integer, optional) โ Maximum number of items to scrape.
โ๏ธ Configuration
๐ Name | ๐ Type | โ Required | โ๏ธ Default | ๐ Example | ๐ Notes |
---|---|---|---|---|---|
startUrls | array | โ Yes | null | [ {"url": "https://facebook.com/reel/..."} ] | URLs of Reels to scrape |
cookiesFile | string | โ No | null | cookies.txt | Upload via Apify key-value store |
proxyConfiguration | object | โ No | {} | { "useApifyProxy": true } | Configure via Console proxy tab |
maxItems | integer | โ No | 0 (no limit) | 50 | Limit results processed |
ALL_RESULTS | dataset | Auto | n/a | Dataset tab | Full consolidated results stored in key ALL_RESULTS |
โก๏ธ Example: In Apify Console โ Input, paste:
{"startUrls": [ {"url": "https://www.facebook.com/reel/1234567890123456"} ]}
๐ค Outputs
- Each Reel produces a JSON object with fields like:
{"platform": "facebook","content_type": "reel","webpage_url": "https://www.facebook.com/reel/1234567890123456","id": "1234567890123456","title": "Sample Reel","uploader": "Page Name","view_count": "2.3K","like_count": 150,"comment_count": 20,"timestamp_iso": "2025-09-10T12:34:56Z","thumbnail": "https://...jpg"}
- Consolidated results are stored under key
ALL_RESULTS
in the Key-Value Store.
๐ Environment variables
APIFY_TOKEN
โ Required to call the Actor via API or CLI.HTTP_PROXY
/HTTPS_PROXY
โ Only if using custom external proxies.
โถ๏ธ How to Run
In Apify Console
- Open Actor โ Run.
- Configure input JSON in Input tab.
- Click Run.
CLI
$apify call <ACTOR_ID> -p input.json
API
See the Python example above under Quick Start (API).
โฐ Scheduling & Webhooks
- In Console โ Schedule, set periodic runs (e.g., every hour).
- Add webhooks in Console โ Webhooks to notify when a run succeeds/fails.
๐ Logs & Troubleshooting
-
View logs in the Run detail page.
-
Common issues:
No startUrls provided.
โ EnsurestartUrls
field is set.- Empty dataset โ The URL was not a Reel, or access required login/cookies.
๐ Permissions & Storage
- Results go to the default Dataset and
ALL_RESULTS
key in the Key-Value Store. - If using cookies, store them securely in Apify key-value storage.
๐ Changelog / Versioning
- Increment Actor version when input/output schema changes.
๐ Notes / TODOs
- TODO: Confirm if
cookiesFile
must be uploaded to default key-value store or passed differently. - TODO: Clarify maximum recommended
startUrls
per run (performance consideration).
๐ Proxy configuration
-
In Apify Console โ Run โ Proxy, enable Apify Proxy.
-
To use custom proxies: in Actor settings โ Environment variables, add:
HTTP_PROXY = http://<USER>:<PASS>@<HOST>:<PORT>
HTTPS_PROXY = http://<USER>:<PASS>@<HOST>:<PORT>
-
Never hardcode credentials โ store them as secrets.
-
TODO: Advanced proxy rotation patterns may be added.
๐ References
๐ง What I inferred from main.py
- Actor strictly processes Facebook Reels, skips other videos.
- Inputs:
startUrls
,cookiesFile
,proxyConfiguration
,maxItems
. - Outputs pushed to Dataset and consolidated in Key-Value store under
ALL_RESULTS
. - Network requests are made โ included Proxy configuration section.
- Assumptions marked TODO for cookies handling and max
startUrls
batch size.