Instagram Reels Scraper & Downloader Pro
Pricing
$8.75/month + usage
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
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
π Instagram Reels Actor β Instant Reels metadata & media extractor
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)
- Open the Actor in Apify Console.
- Paste a JSON input (see example below) into the Input field.
- 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 ApifyClientclient = 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 |
|---|---|---|---|---|---|
| startUrls | array | β Yes | None | ["https://www.instagram.com/reel/CODE12345/"] | One or more Reel URLs β must include /reel/ |
| desired_resolution | string | βοΈ Optional | "1080p" | "720p" | Preferred download resolution β actor picks best match |
| download | boolean | βοΈ Optional | true | true | When enabled, video files are uploaded to Key-Value Store |
| merge_if_ffmpeg | boolean | βοΈ Optional | true | true | If enabled and system merge tool available, audio+video may be merged |
| cookie_file | string/null | βοΈ Optional | null | "cookies.txt" | For private or session-authenticated content |
| proxyConfiguration | object | βοΈ 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.
original_url(string) β input Reel URL.id(string|int) β Reel unique id.title(string) β best-effort title or caption excerpt.ownerFullName(string|null) β creator full name when available.ownerUsername(string) β creator username.ownerId(string|int|null) β numeric owner id when available.description(string|null) β caption text.likesCount(int|null) β numeric likes count.likesDisplay(string|null) β human friendly likes (e.g. "1.2k").commentsCount(int|null) β numeric comments count.commentsDisplay(string|null) β human friendly comments (e.g. "200").videoViewCount(int|null) β views for video posts (if available).viewsDisplay(string|null) β human friendly views representation.upload_date_iso(string|null) β original ISO upload timestamp.upload_date(string|null) β pretty upload date (e.g. "5th June 2024").upload_time_ago(string|null) β relative time (e.g. "5 Months Ago").duration_seconds(number|null) β canonical duration in seconds.duration_display(string|null) β friendly duration label.duration_full(object|null) β expanded durations (in_seconds, in_minutes, in_hours).duration_summary(string|null) β compact summary (e.g. "β± 32s | 0m 32s | 0h 0m 32s").resolution(string|null) β raw resolution (e.g. "1080x1920").resolution_detail(string|null) β labeled resolution (e.g. "Full HD (1080p)").type(string) β content type (e.g. "GraphVideo" or "GraphImage").hashtags(array) β list of extracted hashtags (strings).mentions(array) β list of mentioned usernames (strings).formats(array) β available format objects (type,url,duration,width,height...).download_link(object|null) β downloader summary: requested_resolution, formats_count, download_links map.formats_count(int) β number of formats discovered by extractor.downloaded_kv_key(string|null) β Key-Value Store key where the raw downloaded file was saved (if any).video_kv_key(string|null) β convenience alias pointing to the same KV key for video files.
Tip: some runs include extra fields like
scrape_errororraw_infowhen 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)
- Open Actor page in Apify Console.
- Paste JSON input (see
input.example.json). - 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
stdoutandstderrfor step-level details. -
Common issues & fixes:
- No startUrls provided β ensure
startUrlsarray is not empty. - No valid Reel URLs found β provide URLs containing
/reel/. - Download failed β ensure proxy is configured or
cookie_fileis provided for private content; check quota. - Merge skipped β local merging requires a system merge tool to be available; fallback to video-only is supported.
- No startUrls provided β ensure
π 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
startUrlsarray 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_fileand 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 notes1) 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.