Instagram Reels Scraper & Downloader Pro avatar
Instagram Reels Scraper & Downloader Pro

Pricing

$8.75/month + usage

Go to Apify Store
Instagram Reels Scraper & Downloader Pro

Instagram Reels Scraper & Downloader Pro

Unlock the hidden DNA of Instagram Reels πŸ‘οΈβœ¨ β€” download full-quality videos, reveal secret metrics, and discover creator insights in seconds. Built for pros, loved by data wizards ⚑ ⚑ Run it once… you’ll never scroll the same again πŸš€πŸ”₯

Pricing

$8.75/month + usage

Rating

0.0

(0)

Developer

Neuro Scraper

Neuro Scraper

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

5 days ago

Last modified

Share

🌟 Instagram Reels Actor β€” Instant Reels metadata & media extractor

Build [Version] [License] [Trusted]

One-liner: Extract metadata, download media, and store Instagram Reels safely β€” plug-and-play on Apify Console, results delivered to Dataset & Key-Value store in seconds.


πŸ“– Short summary

Run this Actor to instantly fetch rich metadata and optional video files for one or more Instagram Reels URLs. Designed for production runs, privacy-safe storage, and fast integration with downstream pipelines.


πŸ’‘ Use cases / When to use

  • Bulk-extract Reels metadata (title, uploader, duration, formats, tags) for analytics.
  • Download and store Reel video files into Apify Key-Value Store for processing.
  • Enrich content catalogs with human-friendly fields (views, duration display, upload time-ago).
  • Build monitoring or archiving workflows for selected Reels.

⚑ Quick Start (Console β€” one-click)

  1. Open the Actor in Apify Console.
  2. Paste a JSON input (see example below) into the Input field.
  3. Click Run β€” results appear in Dataset and a JSON snapshot is saved to Key-Value store.

Hero screenshot (replace with your own GIF/screenshot for best conversion)


βš™οΈ Quick Start (CLI + API)

CLI (one-liner)

apify run --actor <username/actor-name> --token <APIFY_TOKEN>

Python (apify-client) β€” compact example

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("<username/actor-name>").call(run_input={
"startUrls": ["https://www.instagram.com/reel/EXAMPLE/"],
"desired_resolution": "1080p",
"download": True
})
print("Run started:", run["id"]) # poll run for completion

πŸ“ Inputs (fields & example)

Console JSON input example (also available as input.example.json in the canvas)

{
"startUrls": [
"https://www.instagram.com/reel/CODE12345/"
],
"desired_resolution": "1080p",
"download": true,
"merge_if_ffmpeg": true,
"cookie_file": null,
"proxyConfiguration": { "useApifyProxy": true }
}

Schema (human-readable)

  • startUrls β€” array of Reel URLs to process (required)
  • desired_resolution β€” preferred video resolution (string, e.g. "1080p")
  • download β€” whether to download media files to Key-Value Store (boolean)
  • merge_if_ffmpeg β€” attempt audio/video merge if system tool available (boolean)
  • cookie_file β€” optional path or cookie-file identifier for authenticated requests (string/null)
  • proxyConfiguration β€” optional Apify-style proxy configuration object (object)

βš™οΈ Configuration (quick reference)

πŸ”‘ NameπŸ“ Type❓ Requiredβš™οΈ DefaultπŸ“Œ Example🧠 Notes
startUrlsarrayβœ… YesNone["https://www.instagram.com/reel/CODE12345/"]One or more Reel URLs β€” must include /reel/
desired_resolutionstringβš™οΈ Optional"1080p""720p"Preferred download resolution β€” actor picks best match
downloadbooleanβš™οΈ OptionaltruetrueWhen enabled, video files are uploaded to Key-Value Store
merge_if_ffmpegbooleanβš™οΈ OptionaltruetrueIf enabled and system merge tool available, audio+video may be merged
cookie_filestring/nullβš™οΈ Optionalnull"cookies.txt"For private or session-authenticated content
proxyConfigurationobjectβš™οΈ Optional{useApifyProxy:true}{"useApifyProxy":true}Configure in Console Input or use Apify Proxy UI

Console tip: Paste values into the Input editor or use the generated input schema to render fields.


πŸ“„ Outputs (Dataset & Key-Value examples)

This Actor emits rich, structured items to the Dataset and uploads media files to Key-Value Store when download: true.

Fields (30 output types)

Below are the 30 most important output fields you will commonly see in each dataset item. Types are shown in parentheses and short notes follow.

  1. original_url (string) β€” input Reel URL.
  2. id (string|int) β€” Reel unique id.
  3. title (string) β€” best-effort title or caption excerpt.
  4. ownerFullName (string|null) β€” creator full name when available.
  5. ownerUsername (string) β€” creator username.
  6. ownerId (string|int|null) β€” numeric owner id when available.
  7. description (string|null) β€” caption text.
  8. likesCount (int|null) β€” numeric likes count.
  9. likesDisplay (string|null) β€” human friendly likes (e.g. "1.2k").
  10. commentsCount (int|null) β€” numeric comments count.
  11. commentsDisplay (string|null) β€” human friendly comments (e.g. "200").
  12. videoViewCount (int|null) β€” views for video posts (if available).
  13. viewsDisplay (string|null) β€” human friendly views representation.
  14. upload_date_iso (string|null) β€” original ISO upload timestamp.
  15. upload_date (string|null) β€” pretty upload date (e.g. "5th June 2024").
  16. upload_time_ago (string|null) β€” relative time (e.g. "5 Months Ago").
  17. duration_seconds (number|null) β€” canonical duration in seconds.
  18. duration_display (string|null) β€” friendly duration label.
  19. duration_full (object|null) β€” expanded durations (in_seconds, in_minutes, in_hours).
  20. duration_summary (string|null) β€” compact summary (e.g. "⏱ 32s | 0m 32s | 0h 0m 32s").
  21. resolution (string|null) β€” raw resolution (e.g. "1080x1920").
  22. resolution_detail (string|null) β€” labeled resolution (e.g. "Full HD (1080p)").
  23. type (string) β€” content type (e.g. "GraphVideo" or "GraphImage").
  24. hashtags (array) β€” list of extracted hashtags (strings).
  25. mentions (array) β€” list of mentioned usernames (strings).
  26. formats (array) β€” available format objects (type,url,duration,width,height...).
  27. download_link (object|null) β€” downloader summary: requested_resolution, formats_count, download_links map.
  28. formats_count (int) β€” number of formats discovered by extractor.
  29. downloaded_kv_key (string|null) β€” Key-Value Store key where the raw downloaded file was saved (if any).
  30. video_kv_key (string|null) β€” convenience alias pointing to the same KV key for video files.

Tip: some runs include extra fields like scrape_error or raw_info when extraction or scraping encounters issues; these appear only for error debugging.

Example dataset item (condensed β€” showing the 30 fields)

{
"original_url": "https://www.instagram.com/reel/CODE12345/",
"id": "1234567890",
"title": "Short caption excerpt",
"ownerFullName": "Creator Name",
"ownerUsername": "creator_handle",
"ownerId": "987654321",
"description": "Caption text...",
"likesCount": 1250,
"likesDisplay": "1.2k",
"commentsCount": 45,
"commentsDisplay": "45",
"videoViewCount": 5400,
"viewsDisplay": "5.4k",
"upload_date_iso": "2024-06-05T12:34:56Z",
"upload_date": "5th June 2024",
"upload_time_ago": "5 Months Ago",
"duration_seconds": 32.0,
"duration_display": "0 Minutes 32 Seconds",
"duration_full": {"in_seconds":"32 Seconds","in_minutes":"0 Minutes 32 Seconds","in_hours":"0 Hours 0 Minutes 32 Seconds"},
"duration_summary": "⏱ 32s | 0m 32s | 0h 0m 32s",
"resolution": "1080x1920",
"resolution_detail": "Full HD (1080p)",
"type": "GraphVideo",
"hashtags": ["funny","trending"],
"mentions": ["friend1"],
"formats": [{"type":"video","url":"https://...","duration":32}],
"download_link": {"requested_resolution":"1080p","formats_count":6,"download_links":{"merged_video":"https://...mp4"}},
"formats_count": 6,
"downloaded_kv_key": "videos/reel_1234567890_merged.mp4",
"video_kv_key": "videos/reel_1234567890_merged.mp4"
}

πŸ”‘ Environment Variables & Secrets & Secrets

  • <APIFY_TOKEN> β€” use in CLI or apify-client (never store plaintext in code).
  • HTTP_PROXY / HTTPS_PROXY β€” only needed for custom proxy targets (see proxy section).
  • IG_USER / IG_PASS β€” optional: provide console secrets if you need authenticated scraping for private content.

Always store credentials using Apify Console Secrets (do not paste plaintext into actor input).


▢️ How to Run (Console, CLI, API)

Console (recommended)

  1. Open Actor page in Apify Console.
  2. Paste JSON input (see input.example.json).
  3. Click Run. Monitor Dataset & Key-Value Store.

CLI

apify run --actor <username/actor-name> --token <APIFY_TOKEN>

API (apify-client) β€” see Quick Start snippet above.


⏰ Scheduling & Webhooks

  • Schedule runs using the Console Scheduler tab β€” pick interval or CRON expression.
  • Use Webhooks in run settings to POST results to your endpoint after completion.
  • For large batch schedules, enable proxy rotation and throttle to respect rate limits.

πŸ•Ύ Logs & Troubleshooting

  • Logs are available in the Console Run page β€” check stdout and stderr for step-level details.

  • Common issues & fixes:

    • No startUrls provided β€” ensure startUrls array is not empty.
    • No valid Reel URLs found β€” provide URLs containing /reel/.
    • Download failed β€” ensure proxy is configured or cookie_file is provided for private content; check quota.
    • Merge skipped β€” local merging requires a system merge tool to be available; fallback to video-only is supported.

πŸ”’ Permissions & Storage Notes

  • Uses Dataset for structured items and Key-Value Store for media files.
  • This Actor follows privacy-safe defaults: do not store credentials in plaintext and use Console Secrets.
  • Designed to be safe for production workflows; respect target site ToS and rate limits.

πŸ”Ÿ Changelog / Versioning (short)

  • 1.0.0 β€” Initial public release: metadata extraction, optional downloads, KV storage, dataset push.

πŸ–Œ Notes / TODOs

  • TODO: confirm exact output schema β€” common fields inferred from runtime behavior.
  • TODO: add demo GIF/screenshots (replace hero image for best conversion).

🌍 Proxy Configuration

Enable Apify Proxy (quick) β€” In Apify Console, enable Apify Proxy in the Run settings or input proxyConfiguration: {"useApifyProxy": true}.

Custom proxy example

  • Environment-style variables (Console secret recommended):
HTTP_PROXY="http://<PROXY_USER:PASS@HOST:PORT>"
HTTPS_PROXY="http://<PROXY_USER:PASS@HOST:PORT>"
  • Input example (custom proxy object):
"proxyConfiguration": { "useApifyProxy": false, "proxyUrls": ["http://<PROXY_USER:PASS@HOST:PORT>"] }

Notes & Security

  • Store proxy credentials as Console secrets β€” never paste credentials into the public Input field.
  • TODO: Consider proxy rotation for large-scale scraping to reduce rate-limit risk and improve resilience.

πŸ“š References

  • How to create an Actor README β€” Apify Academy
  • Actor input schema β€” Apify Platform docs
  • Apify API Client (Python) β€” Apify docs

πŸ€” What I inferred from main.py

  • The Actor accepts a startUrls array and processes only URLs containing /reel/.
  • The Actor performs remote media extraction and optional file download (network activity present).
  • Downloads (when enabled) are stored in Key-Value Store under a videos/ prefix and each dataset item includes the KV key.
  • Optional authenticated or cookie-based scraping is supported via an input cookie_file and optional IG credentials as secrets.
  • The Actor will attempt to use an available system merge tool for audio/video merging if requested; otherwise it falls back to video-only.

Why this Actor β€” short benefits

  • Instant insights: get friendly metadata (views, likes, time-ago) without parsing raw payloads.
  • Secure by design: uses Console secrets and KV/Dataset; no secrets in output.
  • Production-ready: built to run at scale with proxy support and retry/backoff behavior.

Run this Actor on Apify Console β€” get instant results in seconds.



input.example.json

{
"startUrls": [
"https://www.instagram.com/reel/CODE12345/"
],
"desired_resolution": "1080p",
"download": true,
"merge_if_ffmpeg": true,
"cookie_file": null,
"proxyConfiguration": { "useApifyProxy": true }
}

CONFIG.md

# CONFIG: Advanced tips & proxy notes
1) Apify Proxy
- Enable from Run settings or set "proxyConfiguration": {"useApifyProxy": true} in input.
2) Custom proxy
- Provide proxy URLs in the proxyConfiguration object or set HTTP_PROXY/HTTPS_PROXY as secrets.
- Example: HTTP_PROXY="http://<PROXY_USER:PASS@HOST:PORT>"
3) Authenticated scraping
- For private content, set IG_USER and IG_PASS as Console Secrets and provide cookie_file input if needed.
4) Merge tool
- For audio/video merging, ensure a system merge tool is available in the runtime. If not present, the Actor falls back to video-only.
5) TODO
- Consider proxy rotation for large-scale scraping to improve resilience.