
Instagram Reels Scraper
Pricing
$4.99/month + usage

Instagram Reels Scraper
“✨ Next-level Instagram Reels scraper! Instantly grab plays ▶️, likes ❤️, comments 💬, uploader info 👤 & video URLs 🎥 in a single JSON 🗂️. Combines page data & live network activity ⚡ for complete, accurate, ready-to-use engagement insights.”
0.0 (0)
Pricing
$4.99/month + usage
0
4
4
Last modified
a day ago
📸 Instagram Reels Scraper Actor
Effortlessly extract metadata and engagement stats from public Instagram Reels URLs.
📖 Summary
This Actor scrapes Instagram Reels pages, capturing video metadata, play/view counts, likes, comments, thumbnails, and basic user profile info. Results are normalized and pushed to the default Dataset and ALL_RESULTS
key-value record.
💡 Use cases
- Track engagement metrics on competitor Instagram Reels.
- Monitor influencer content performance.
- Collect Reel metadata for analytics pipelines.
⚡ Quick Start (Console)
-
Go to the Actor in Apify Console.
-
Click Run.
-
Paste a JSON input such as:
{"startUrls": [{"url": "https://www.instagram.com/reel/DJH8mu5zsHI/"}]} -
Start the run and view results in the Dataset tab.
⚡ Quick Start (CLI + API)
CLI
$apify run <ACTOR_ID> -p input.json
apify-client (Python)
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")actor = client.actor("<ACTOR_ID>")run = actor.call(run_input={"startUrls": [{"url": "https://www.instagram.com/reel/DJH8mu5zsHI/"}]})print(f"Dataset results: {run['defaultDatasetId']}")
📝 Inputs
startUrls
(array
) – List of Instagram Reel URLs (objects withurl
field or raw strings).storageStatePath
(string
, optional) – Path to storage state file if using saved session.instagramUser
(string
, optional) – Instagram username for login (if required).instagramPass
(string
, optional) – Instagram password for login (if required).networkCaptureSeconds
(float
, optional, default2.5
) – Time to capture network activity.
⚙️ Configuration
🔑 Name | 📝 Type | ❓ Required | ⚙️ Default | 📌 Example | 📝 Notes |
---|---|---|---|---|---|
startUrls | array | ✅ Yes | DEFAULT_URLS | [ {"url": "https://instagram.com/reel/..."} ] | List of target Reels |
storageStatePath | string | ❌ No | null | "storage_state.json" | Use saved login/session state |
instagramUser | string | ❌ No | null | "myusername" | Pulled from input or INSTAGRAM_USER env var |
instagramPass | string | ❌ No | null | "mypassword" | Pulled from input or INSTAGRAM_PASS env var |
networkCaptureSeconds | float | ❌ No | 2.5 | 5.0 | Adjust capture window |
ALL_RESULTS | dataset | Auto | N/A | Access via key-value store | JSON array of all scraped results |
INSTAGRAM_USER | env var | ❌ No | null | <username> | Alternative to input key |
INSTAGRAM_PASS | env var | ❌ No | null | <password> | Alternative to input key |
➡️ In Apify Console: Paste the JSON above into Input or set environment variables in Actor > Settings > Environment variables.
📤 Outputs
- Default Dataset – Each scraped Reel pushed individually.
- Key-Value Store – Full results saved under key
ALL_RESULTS
.
Example output item:
{"url": "https://www.instagram.com/reel/DJH8mu5zsHI/","success": true,"data": [{"code": "DJH8mu5zsHI","pk": "123456789","id": "987654321","taken_at": 1694567890,"video_urls": ["https://...mp4"],"thumbnail": "https://...jpg","play_count": 10234,"view_count": 10456,"like_count": 450,"comment_count": 25,"user": {"pk": "11111","username": "sample_user","full_name": "Sample User","profile_pic_url": "https://...jpg"},"caption": "My Reel caption"}]}
🔑 Environment variables
INSTAGRAM_USER
– Instagram login username (optional).INSTAGRAM_PASS
– Instagram login password (optional).
▶️ How to Run
Apify Console
- Open the Actor > Run.
- Enter input JSON (see example above).
- Start the run and open the Dataset tab.
CLI
$apify run <ACTOR_ID> -p input.json
apify-client (Python)
run = client.actor("<ACTOR_ID>").call(run_input={"startUrls": [{"url": "https://instagram.com/reel/..."}]})
⏰ Scheduling & Webhooks
- Scheduling: In Console, go to Actor > Schedule to configure periodic runs.
- Webhooks: Add a webhook in Actor > Webhooks to trigger events (e.g., notify when run finishes).
🐞 Logs & Troubleshooting
- Use Log tab in Console for debugging.
- If scraping returns empty data, check login requirements or extend
networkCaptureSeconds
. - For authentication issues, verify
INSTAGRAM_USER
andINSTAGRAM_PASS
are set correctly.
🔒 Permissions & Storage Notes
- Ensure Dataset and Key-Value Store permissions allow read/write.
- Store sensitive credentials (Instagram login) in environment variables, not hardcoded input.
🆕 Changelog / Versioning
- Increment version when modifying schema or fields.
- Use GitHub releases or Actor versions in Console to track.
📌 Notes / TODOs
- TODO: Confirm whether profile URLs (non-Reels) should be supported. Current assumption: Reels only.
- TODO: Confirm max number of URLs per run (depends on Apify limits).
🌍 Proxy configuration
-
In Console, enable Apify Proxy under Run options.
-
To use custom proxies, set them in Actor > Settings > Proxy configuration.
-
Alternatively, define env vars:
HTTP_PROXY=https://<PROXY_USER>:<PROXY_PASS>@host:port
HTTPS_PROXY=https://<PROXY_USER>:<PROXY_PASS>@host:port
-
Store proxy credentials as secrets in Actor settings, not in input JSON.
-
TODO: Add advanced proxy rotation patterns (if needed).
📚 References
🧐 What I inferred from main.py
- Actor expects
startUrls
with Instagram Reels links; defaults to one built-in Reel if none provided. - Results are pushed both to Dataset (individual items) and KV store key
ALL_RESULTS
. - Supports optional login via
instagramUser
/instagramPass
or env vars. - Network activity is present → included Proxy configuration section.
- TODOs flagged: confirm profile URL support & batch size limits.
On this page
-
📸 Instagram Reels Scraper Actor
- 📖 Summary
- 💡 Use cases
- ⚡ Quick Start (Console)
- ⚡ Quick Start (CLI + API)
- 📝 Inputs
- ⚙️ Configuration
- 📤 Outputs
- 🔑 Environment variables
- ▶️ How to Run
- ⏰ Scheduling & Webhooks
- 🐞 Logs & Troubleshooting
- 🔒 Permissions & Storage Notes
- 🆕 Changelog / Versioning
- 📌 Notes / TODOs
- 🌍 Proxy configuration
- 📚 References
- 🧐 What I inferred from
main.py
Share Actor: