Instagram Video Scraper and Downloader Fastest
Pricing
$9.90/month + usage
Instagram Video Scraper and Downloader Fastest
β‘ Apifyβs fastest Instagram Video Downloader & Metadata Scraper! Grab videos, captions, hashtags, owner info β instantly, securely, and privacy-first. Drop URLs, get ready-to-use JSON & download links in seconds. ππ Analytics & monitoring made effortless!
Pricing
$9.90/month + usage
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
10
Total users
0
Monthly active users
7 months ago
Last modified
Categories
Share
π The Fastest Instagram Metadata Scraper & Downloader in Apify
One-line hero: Fast, privacy-safe Instagram metadata scraper + optional downloader β plug-and-play on Apify Console, enterprise-grade reliability, results in seconds.
π Summary
This Actor extracts clean metadata (captions, hashtags, owner, thumbnails, durations, short human-friendly dates) from Instagram post/reel URLs and β optionally β provides direct download links or performs secure downloads with optional merging. Designed for fast, resilient runs and easy Console usage.
Instant outcome: feed a list of start URLs β get normalized JSON records in Dataset / Key-Value store in seconds.
π‘ Use cases / When to use
- Collect metadata for moderation, analytics, or cataloging (captions, hashtags, owner info).
- Quickly fetch download links or download video/audio artifacts (optional, best-effort).
- Backfill datasets for BI pipelines or social media research.
- Lightweight monitoring of a set of public posts / reels for changes.
β‘ Quick Start (Console β one-click)
- Open this Actor in Apify Console.
- Paste your list of startUrls in the Input editor (see example below).
- Click Run β results appear in the Dataset and under Key-Value store key
OUTPUT.
(Hero screenshot recommended: Console input + Run button β add a GIF for best conversion.)
βοΈ Quick Start (CLI + API)
CLI (one-liner)
# Run this Actor on Apify platform using Apify CLI# Replace <OWNER/ACTOR_NAME> and use your input file or pipe JSONecho'{"startUrls": ["https://www.instagram.com/reel/SHORTCODE/"]}'| apify call <OWNER/ACTOR_NAME>--silent --output-dataset
Python (apify-client) β compact snippet
from apify_client import ApifyClientclient = ApifyClient('<APIFY_TOKEN>')run = client.actor('OWNER/ACTOR_NAME').call(input={'startUrls':['https://www.instagram.com/reel/SHORTCODE/'],'mode':'scrape',})print('Run started:', run['id'])
π Inputs (fields & schema)
Below is a compact Console JSON input example (also in input.example.json). The Actor accepts a JSON object. The platform's Input Schema (if provided by you) will auto-generate the Console UI.
{"mode":"scrape","startUrls":["https://www.instagram.com/reel/SHORTCODE/","https://www.instagram.com/p/SHORTCODE2/"],"desired_resolution":"1080p","download":false,"merge_if_ffmpeg":false,"hide_media_links":true,"preserve_thumbnails":true,"maxConcurrency":3,"diagnostic":false,"suppress_errors":true}
βοΈ Configuration (friendly table)
| π Name | π Type | β Required | βοΈ Default | π Example | π§ Notes |
|---|---|---|---|---|---|
| mode | string | β Yes | "scrape" | "scrape" / "download" / "both" | Determines scrape vs. download behavior |
| startUrls | array | β Yes | None | ["https://.../reel/SHORTCODE/"] | List of post/reel URLs |
| proxyConfiguration | object | βοΈ Optional | {} | {"useApifyProxy": true} | Use Console proxy UI or custom proxy object |
| preferred_proxy_type | string | βοΈ Optional | "auto" | "residential" | Prefer residential proxies if needed |
| force_residential | boolean | βοΈ Optional | false | true | Alias for preferred proxy behavior |
| download | boolean | βοΈ Optional | false | true | If true, performs (best-effort) downloads |
| desired_resolution | string | βοΈ Optional | "1080p" | "720p" | Requested resolution for downloads |
| merge_if_ffmpeg | boolean | βοΈ Optional | false | true | If true and ffmpeg available, merges audio/video |
| cookie_file | string | βοΈ Optional | None | "cookies.txt" | Path in actor storage to cookie file (if used) |
| hide_media_links | boolean | βοΈ Optional | true | true | Redact raw media URLs in pushed records |
| preserve_thumbnails | boolean | βοΈ Optional | true | false | Keep thumbnail URLs even when hiding media |
| maxConcurrency | integer | βοΈ Optional | 3 | 5 | Controls parallelism (1β10) |
| diagnostic | boolean | βοΈ Optional | false | true | Enables verbose logs for debugging |
| suppress_errors | boolean | βοΈ Optional | true | false | Show errors in logs vs. suppress them |
Console tip: Paste a single JSON object in the Input field (or select a saved Task) and click Run.
π Outputs (Dataset / KV examples)
Where results land:
- Metadata & download summaries are pushed to the Dataset (and final batch also stored to Key-Value under key
OUTPUT).
Example output record (schema-friendly)
{"original_url":"https://www.instagram.com/reel/SHORTCODE/","id":"SHORTCODE","ownerUsername":"creator_name","ownerFullName":"Creator Name","description":"Caption text...","hashtags":["fun","reel"],"mentions":["other_user"],"likesCount":1234,"likesDisplay":"1.2k","commentsCount":12,"commentsDisplay":"12","videoViewCount":5432,"viewsDisplay":"5.4k","upload_date_iso":"2024-10-04T12:34:56Z","upload_date":"4th October 2024","upload_time_ago":"1 Month Ago","duration_seconds":33.123,"duration_display":"0 Minutes 33 Seconds","thumbnail":"https://.../thumbnail.jpg","download_links_summary":{"available":{"merged_video":false,"video_without_audio":true,"audio":true}},"randomExtraInfo":{"scrapeBatch":"Reel-Set-07","regionCode":"US"}}
Note: raw media URLs may be redacted depending on
hide_media_linksandpreserve_thumbnailssettings (privacy-safe by default).
π Environment Variables (placeholders)
APIFY_TOKENβ Set in Console integrations or use platform authentication. (Placeholder:<APIFY_TOKEN>)HTTP_PROXY/HTTPS_PROXYβ Only for custom proxy setups (use secrets, do not store plaintext). Example:<PROXY_USER:PASS@HOST:PORT>
βΆοΈ How to Run (Console, CLI, API)
- Console β Open Actor β paste JSON input β Click Run. Results appear in Dataset; key-value
OUTPUTstores the full batch. - CLI β Use the
apifyCLI:echo '{"startUrls":["https://.../reel/SHORTCODE/"]}' | apify call <OWNER/ACTOR_NAME> --silent --output-dataset. - API / apify-client (Python) β See snippet above; use
ApifyClient('<APIFY_TOKEN>').actor('OWNER/ACTOR_NAME').call(input=...).
β° Scheduling & Webhooks
- Scheduling: Use Apify Console Scheduler to run this Actor periodically (e.g., hourly/daily). Choose your saved input task and frequency in Console.
- Webhooks: Configure a run
onFinishwebhook in Console to receive run status and dataset IDs for downstream processing.
πΎοΈ Logs & Troubleshooting
-
Where to find logs: Open the run in Apify Console β Logs tab (filter by
diagnosticto see verbose traces). -
Common issues & quick fixes:
- No startUrls provided β add
startUrlsto input. - Rate-limit / access errors β enable proxy or try
preferred_proxy_type: "residential". - Downloads failing β ensure
downloadis true and the run has network access; checkdiagnosticlogs.
- No startUrls provided β add
π Permissions & Storage Notes
- Storage used: Dataset for item records; Key-Value store under key
OUTPUTfor the result batch; temporary actor storage for downloads. - Privacy & safety: By default, raw media URLs are redacted (
hide_media_links: true) and thumbnails preserved. Store credentials (cookies, proxy auth) only as Console secrets β never in plain input.
π Changelog / Versioning
v1.0.0β Initial release: metadata scraping + best-effort downloader, proxy-friendly, diagnostic mode.
Use semantic versioning for future releases.
π Notes / TODOs
- TODO: confirm output schema β derived from runtime behavior but please verify against your integration.
- TODO: add demo GIF/screenshots (Console Run + sample record) for higher conversion.
π Proxy Configuration
Enable Apify Proxy (quick): In Console β Integrations β Proxy β select Apify Proxy (recommended for reliability and rate-limit handling).
Custom proxies: Provide proxyConfiguration in input or set HTTP_PROXY / HTTPS_PROXY as secrets. Example placeholders:
{"proxyConfiguration":{"useApifyProxy":false,"proxyUrls":["http://<PROXY_USER:PASS@HOST:PORT>"]}}
Environment variables (examples):
exportHTTP_PROXY="http://<PROXY_USER:PASS@HOST:PORT>"exportHTTPS_PROXY="http://<PROXY_USER:PASS@HOST:PORT>"
Security note: Store proxy credentials as Console secrets and do not place them directly in the input JSON.
Advanced: TODO: Consider proxy rotation for large-scale scraping β use session-based proxy URLs to reduce rate-limiting.
π References
- Apify Actor README guidance (official)
- Actor input schema & Console Input generation (official)
- Apify CLI & apify-client examples (official)
π€ What I inferred from main.py
- Network activity present (HTML metadata fetch + downloader) β Proxy configuration is supported and recommended.
- Inputs:
mode,startUrls,proxyConfiguration,preferred_proxy_type,download,desired_resolution,merge_if_ffmpeg,cookie_file,hide_media_links,preserve_thumbnails,maxConcurrency,diagnostic,suppress_errors. - Outputs: Dataset items (normalized metadata), Key-Value store key
OUTPUTholds full batch. - The Actor attempts a primary extractor (metadata-first) with an HTML fallback and best-effort download link extraction; downloads are optional and non-fatal.
Why this Actor? β Trusted, production-ready, and privacy-conscious: runs in Console with zero setup, yields normalized JSON ready for analytics pipelines, and keeps sensitive links hidden by default. Run this Actor on Apify Console β get instant results in seconds.
---
input.example.json
{"mode":"scrape","startUrls":["https://www.instagram.com/reel/SHORTCODE/"],"desired_resolution":"1080p","download":false,"hide_media_links":true,"preserve_thumbnails":true,"maxConcurrency":3}
CONFIG.md
Quick config & proxy tips
- Use Console Proxy integration for reliable runs.
- If using custom proxies, add them as Console secrets and reference via
proxyConfigurationorHTTP_PROXYenv var. - If you enable downloads and merging, ensure ffmpeg is available in your run environment; merging is optional and automatic only when enabled.
Advanced TODO
- TODO: Add formal
INPUT_SCHEMA.jsonfor Console auto UI. - TODO: Add example Console screenshot and animated GIF for the README hero.
End of generated README + examples.
actor.json
{"name":"merged-instagram-metadata-downloader","title":"Merged Instagram Metadata & Downloader Actor","version":"1.0.0","main":"src/main.py","buildTag":"latest","memory":4096,"timeout":36000}
INPUT_SCHEMA.json
{"$schema":"http://json-schema.org/draft-07/schema#","title":"Merged Instagram Metadata & Downloader Actor - Input Schema","type":"object","properties":{"mode":{"type":"string","enum":["scrape","download","both"],"default":"scrape","description":"Operation mode"},"startUrls":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"object","properties":{"url":{"type":"string"}}}]},"description":"List of post/reel URLs (string or {\"url\": \"...\"})"},"desired_resolution":{"type":"string","default":"1080p"},"download":{"type":"boolean","default":false},"merge_if_ffmpeg":{"type":"boolean","default":false},"cookie_file":{"type":"string"},"hide_media_links":{"type":"boolean","default":true},"preserve_thumbnails":{"type":"boolean","default":true},"maxConcurrency":{"type":"integer","minimum":1,"maximum":10,"default":3},"diagnostic":{"type":"boolean","default":false},"suppress_errors":{"type":"boolean","default":true},"proxyConfiguration":{"type":"object"},"preferred_proxy_type":{"type":"string","enum":["auto","residential"],"default":"auto"},"force_residential":{"type":"boolean","default":false},"proxy_country":{"type":"string"}},"required":["mode","startUrls"],"additionalProperties":false}
Notes:
actor.jsongives minimal runtime metadata for Console packaging. Adjustmemoryandtimeoutbased on your workload.INPUT_SCHEMA.jsonwill enable Console UI generation (auto form fields) when uploaded with the Actor. Update descriptions as needed.
End of generated README + examples.
