Instagram Reels Scraper avatar
Instagram Reels Scraper

Pricing

$4.99/month + usage

Go to Apify Store
Instagram Reels Scraper

Instagram Reels Scraper

Developed by

Neuro Scraper

Neuro Scraper

Maintained by Community

“✨ 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)

  1. Go to the Actor in Apify Console.

  2. Click Run.

  3. Paste a JSON input such as:

    {
    "startUrls": [
    {"url": "https://www.instagram.com/reel/DJH8mu5zsHI/"}
    ]
    }
  4. 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 ApifyClient
client = 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 with url 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, default 2.5) – Time to capture network activity.

⚙️ Configuration

🔑 Name📝 TypeRequired⚙️ Default📌 Example📝 Notes
startUrlsarray✅ YesDEFAULT_URLS[ {"url": "https://instagram.com/reel/..."} ]List of target Reels
storageStatePathstring❌ Nonull"storage_state.json"Use saved login/session state
instagramUserstring❌ Nonull"myusername"Pulled from input or INSTAGRAM_USER env var
instagramPassstring❌ Nonull"mypassword"Pulled from input or INSTAGRAM_PASS env var
networkCaptureSecondsfloat❌ No2.55.0Adjust capture window
ALL_RESULTSdatasetAutoN/AAccess via key-value storeJSON array of all scraped results
INSTAGRAM_USERenv var❌ Nonull<username>Alternative to input key
INSTAGRAM_PASSenv var❌ Nonull<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

  1. Open the Actor > Run.
  2. Enter input JSON (see example above).
  3. 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 and INSTAGRAM_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.