Instagram Reels Downloader avatar
Instagram Reels Downloader

Pricing

$4.99/month + usage

Go to Apify Store
Instagram Reels Downloader

Instagram Reels Downloader

Developed by

Neuro Scraper

Neuro Scraper

Maintained by Community

πŸš€ Enterprise-grade Instagram Reels downloader: fast, secure, plug-and-play. Extract, download & archive high-quality Reels at scale with proxy rotation, smart retries, filename safety, and quiet logsβ€”built for dependable, automated production workflows. πŸ”’βš‘οΈπŸ“₯

0.0 (0)

Pricing

$4.99/month + usage

0

1

1

Last modified

3 days ago

🌟 Instagram Reels Downloader

Download Instagram Reels β€” fast, secure, and production-ready.


πŸ“– One-line summary

A plug-and-play Apify Console Actor that extracts and optionally downloads Instagram Reels (only /reel/ links), delivering clean, production-ready datasets and downloadable media with configurable resolution and safe proxy support.


πŸ’‘ Use cases / When to use

  • Quickly archive public Reels for editorial review or content moderation.
  • Bulk-download Reels for media analysis or offline processing.
  • Integrate Reel extraction into ETL pipelines that need consistent metadata and file outputs.
  • Run scheduled checks for newly published Reels from a curated list of links.

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

  1. Open this Actor in Apify Console.
  2. Paste a list of Instagram /reel/ links into the Start URLs input.
  3. (Optional) Add a cookie file path for private Reels, select desired resolution, and enable Download.
  4. Click Run Actor β€” results appear in the Dataset in seconds.

Instant results, minimal setup β€” designed for non-developers and teams.


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

The examples below show how to run this Actor from the CLI and using the Apify client (replace placeholders with your values).

CLI

$apify run --actor <ACTOR_ID> --input input.example.json

Python (apify-client)

from apify_client import ApifyClient
client = ApifyClient('<APIFY_TOKEN>')
run = client.actor('your-username/instagram-reels-downloader').call(input=input_json)
print(run)

πŸ“ Inputs (fields & schema)

This Actor accepts a JSON input with the following key fields (see input.example.json for a copy):

  • startUrls β€” array of Instagram /reel/ links (required)
  • desired_resolution β€” one of 1080p, 720p, 480p, 360p (default: 1080p)
  • download β€” boolean: if true, saves files to Actor storage (default: true)
  • merge_if_ffmpeg β€” boolean: if true, merges separated audio + video (default: true)
  • cookie_file β€” optional string path for cookies to access private Reels
  • proxyConfiguration β€” optional proxy settings object (Console editor provided)

βš™οΈ Configuration

πŸ”‘ NameπŸ“ Type❓ Requiredβš™οΈ DefaultπŸ“Œ Example🧠 Notes
startUrlsarrayβœ… Yesβ€”["https://www.instagram.com/reel/ABC123/"]Provide only /reel/ links; others are skipped
desired_resolutionstringβš™οΈ Optional1080p720pPicks closest available format if exact match unavailable
downloadbooleanβš™οΈ OptionaltruefalseWhen false, actor only extracts metadata and direct URLs
merge_if_ffmpegbooleanβš™οΈ OptionaltruetrueRequires platform FFmpeg support to merge files
cookie_filestringβš™οΈ Optionalnull/path/to/cookies.txtUse for private or age-gated Reels
proxyConfigurationobjectβš™οΈ Optional{}{ "useApifyProxy": true }Use Console proxy editor for secure credentials

Example Console setup: Paste reel links into Start URLs, set desired_resolution to 1080p, then click Run Actor.


πŸ“„ Outputs (Dataset / KV examples)

After each run, results are saved to the Actor Dataset as JSON objects. Example dataset entry:

{
"url": "https://www.instagram.com/reel/C5xAbCdE123/",
"title": "A short clip",
"uploader": "creator_handle",
"thumbnail": "https://.../thumb.jpg",
"duration": 15,
"requested_resolution": "1080p",
"download_links": {
"merged_video": "https://.../media.mp4",
"video_without_audio": "https://.../video.mp4",
"audio": "https://.../audio.mp4"
},
"downloaded_file": "A_short_clip_merged.mp4"
}

Non-reel URLs are skipped silently β€” only Reel entries appear in the final dataset.


πŸ”‘ Environment Variables

Store secrets as platform secrets or in the Console UI β€” never place them in plaintext input.

  • APIFY_TOKEN β€” your Apify account token (used by CLI/API)
  • Use the Console proxy editor to store proxy credentials securely (recommended)

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

Console β€” paste Reel links and Run. CLI β€” apify run with input.example.json (see example above). API β€” call .actor('your-username/instagram-reels-downloader').call(input) using your Apify client.


⏰ Scheduling & Webhooks

  • Schedule regular runs in the Console using the Scheduler tab.
  • Add a webhook to receive run-complete notifications and process new dataset items downstream.

πŸ•ΎοΈ Logs & Troubleshooting

  • The Actor is designed to be quiet in logs for easier scanning; errors are surfaced as dataset items rather than noisy stack traces.
  • If results are missing: ensure the links are valid /reel/ URLs and that your proxy (if any) is functioning.
  • For private Reels, provide a valid cookie file path in cookie_file.

πŸ”’ Permissions & Storage Notes

  • Files saved by the Actor are stored in the run’s storage and can be downloaded from the Console.
  • Keep cookies and proxy credentials in secure storage only (Platform secrets or Console editor).
  • This Actor respects platform usage policies β€” use responsibly and avoid abusive scraping.

πŸ”Ÿ Changelog / Versioning

  • v0.2 β€” Reels-only labeling, refined inputs, clearer proxy guidance
  • v0.1 β€” Initial release

πŸ–Œ Notes / TODOs

  • TODO: Add optional bulk profile scraping mode (requires additional consent).
  • TODO: Add built-in cookie uploader in the Console for easier private Reel access.

🌍 Proxy Configuration

Enable Apify Proxy in the Console with one click: use Proxy configuration and select the RESIDENTIAL group for best reliability.

Custom proxy example (store as secret, do not paste in inputs):

<PROXY_USER:PASS@HOST:PORT>

Env examples (when using external clients):

export HTTP_PROXY=http://<PROXY_USER:PASS@HOST:PORT>
export HTTPS_PROXY=http://<PROXY_USER:PASS@HOST:PORT>

Security note: Store proxy credentials as secrets using the Console’s secure fields β€” do not embed them in run inputs.

TODO: Consider proxy rotation for large-scale runs to minimize rate-limits.


πŸ“š References

  1. Apify Actor README guidelines β€” https://docs.apify.com/actors
  2. Apify Input/Output schema docs β€” https://docs.apify.com/actors/input-output
  3. Apify CLI & API usage β€” https://docs.apify.com/actors/cli

πŸ€” What I inferred from main.py

  • This Actor exclusively processes Instagram reel URLs and skips other post types.
  • It supports optional cookie-based access for private Reels and optional merging of separate audio/video files.
  • The Actor prefers a default resolution of 1080p and provides retry/backoff behavior for robustness.


input.example.json

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

CONFIG.md (optional)

# Configuration notes
- Use the Console to set proxy and cookie_file values.
- If you need private Reel access, export cookies from your browser as a `cookies.txt` file and provide its path in `cookie_file`.
- If you see missing entries, re-run after 1-2 minutes to bypass short-term rate limits.