Instagram Reels Downloader
Pricing
Pay per event
Instagram Reels Downloader
Process one publicly accessible Instagram post or Reel for structured metadata, source-dependent comments, and an optional stored video file.
Pricing
Pay per event
Rating
0.0
(0)
Developer
AgentX
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Instagram Video Downloader processes one publicly accessible Instagram post or Reel, returns a consistent metadata record, and can optionally save the video file to the run’s Apify key-value store.
- One URL produces one reviewable 39-field Dataset item when processing succeeds.
- Metadata, engagement counters, comments, and media details stay nullable when Instagram does not expose them.
- Four modes cover metadata-only processing and low, medium, or high preferred download quality. Run one Instagram Reel
Start with metadata mode and max_comments: 0. This is the smallest production check, but zero does not guarantee an empty comments array: Instagram or the extractor can still include comments in the metadata response.
Why Choose This API
Instagram Video Downloader offers a deliberately small contract for one cited Instagram video. Submit a public post or Reel URL and receive normalized fields such as id, thumbnail, title, description, published_at, author, dimensions, engagement counters, comments, and processing provenance. That stable shape is easier to validate and integrate than passing an evolving extractor response directly to downstream systems.
The Actor separates metadata work from media delivery. Metadata mode does not intentionally download or store the video. Low, medium, and high modes request an available rendition, then place a successfully produced MP4 in the run’s key-value store and return its stored URL. The selected quality is a preference with fallbacks, not a promise that Instagram provides a particular resolution or codec.
Comments are source-dependent. A positive max_comments value asks for no more than that many formatted records. A zero value disables the explicit comment request, but the extractor may still return comments bundled with other metadata; a live zero-limit run returned 12. Always inspect the actual array length instead of treating zero as a guaranteed empty result.
This Actor is narrower than a profile, feed, hashtag, Story, carousel, discovery, or batch scraper. That boundary is useful when a workflow needs a defensible one-input-to-one-record operation, a single download artifact, or a small regression test before building a larger pipeline.
Quick Start Guide
Use a public Instagram post or Reel that contains video. The following public Reel was reachable during the July 23, 2026 verification:
{"video_url": "https://www.instagram.com/reel/DbGeVKoSJto/","video_quality": "metadata","max_comments": 0}
Submit the input in Apify Console and wait for a terminal run status. Open the Dataset item and compare its id, title or description, author, thumbnail, and publication timestamp with the source. The verified example returned ID DbGeVKoSJto, platform Instagram, a 1080-by-1920 frame, and an empty video value in metadata mode.
Treat identity validation as part of success. A run can finish technically while an input redirects, becomes unavailable, or resolves to unexpected media. Counters also change over time, so compare the meaning and type of each field rather than expecting old numeric values to remain identical.
After metadata succeeds, test a positive comment limit separately. Request a download only when the use case requires a retained file and the content owner or applicable terms permit it. Each run accepts one URL; callers that process a list should start separate bounded runs and handle deduplication themselves.
Input Parameters
| Parameter | Type | Required | Public constraint | Behavior |
|---|---|---|---|---|
video_url | string | Yes | One non-empty value | URL passed to the extractor; use a public Instagram post or Reel containing video. |
video_quality | string | No | high, medium, low, metadata | Omitted input becomes metadata; download modes use resolution-aware fallbacks. |
max_comments | integer | No | 0–10,000 in the public schema | Omitted input becomes 0; positive values limit formatted comments, while zero may still retain source-provided comments. |
Only video_url is required. Optional values are not prefilled, which preserves whether a caller explicitly selected them. Extra public input properties are rejected by the schema.
Low mode prefers formats at or below 480p, medium prefers formats at or below 720p, and high can consider formats up to 2160p. Each mode falls back when the preferred representation is unavailable. The result can therefore have a lower resolution than the selected ceiling.
The public schema caps max_comments at 10,000. This is an API input constraint, not evidence that Instagram will return 10,000 comments. Availability, ordering, visibility, moderation, rate limits, and extractor support all affect the returned sample. There is no credential, cookie, proxy, username, date, country, language, profile, playlist, or batch input.
Output Data Schema
Every successful Dataset row follows the same 26-key top-level contract in runtime order:
| Area | Fields |
|---|---|
| Provenance | processor, processed_at |
| Identity | id, thumbnail, platform, title, description, duration, published_at |
| Author | author, author_id, author_url |
| Classification | categories, tags |
| Engagement | view_count, like_count, shares_count, dislike_count, comment_count |
| Media | width, height, fps, audio_title, audio_artist, comments, video |
An abbreviated verified shape is:
{"processor": "https://apify.com/agentx/instagram-video-downloader","processed_at": "2026-07-23T19:11:53+00:00","id": "DbGeVKoSJto","platform": "Instagram","title": "Video by instagram","author": "Instagram","width": 1080,"height": 1920,"comments": [{"author": "example_viewer","text": "Example comment","like_count": 0,"published_at": "2026-07-23T19:06:14+00:00"}],"video": ""}
The example shortens text and replaces the real commenter identity. It illustrates field names and types, not a fixed response. The metadata check returned categories and tags as empty arrays; view_count, share and dislike counts, FPS, audio fields, and author URL were null. Null means unavailable, not zero. comment_count is the source’s aggregate counter, whereas comments contains the source-dependent records included in this run.
In metadata mode, video is an empty string. In download mode, it should become the Apify storage URL only after an MP4 is produced and stored. Temporary Instagram thumbnail or media URLs can expire and should not be treated as permanent source assets.
Source-dependent fields also present in every item:
| Field | Meaning |
|---|---|
source_url | Canonical page URL of the item on its own platform |
media_type | Kind of media the source reports, such as video or audio |
live_status | Whether the item is a recording, currently live, or a finished stream |
availability | Source visibility, such as public, unlisted, or needs_auth |
age_limit | Minimum viewer age the source enforces; zero means no restriction |
language | Primary language of the item as reported by the source |
followers | Follower or subscriber count of the author at processing time |
is_verified | Whether the author's account carries a verified badge |
saves_count | Times viewers saved the item, on sources that expose it |
file_ext | Container extension of the selected media, such as mp4 or webm |
file_size | Size of the selected media in bytes, exact or approximate |
subtitles | Language codes of published subtitle tracks; auto-captions excluded |
chapters | Chapter markers with title and start and end time in seconds |
Integration Examples
The public Actor name is agentx/instagram-video-downloader; its stable Actor ID is 59aU9vig8wglWOBe1. Start the same bounded metadata scenario through HTTP:
curl -X POST "https://api.apify.com/v2/acts/agentx~instagram-video-downloader/runs?token=$APIFY_TOKEN&timeout=180" \-H "Content-Type: application/json" \-d '{"video_url":"https://www.instagram.com/reel/DbGeVKoSJto/","video_quality":"metadata","max_comments":0}'
Poll the returned run ID, then read the default Dataset. Keep tokens in environment variables or a secrets manager; never put them in Actor input, source control, screenshots, or support messages.
For a hosted MCP client, configure the Actor and pass the same arguments:
{"mcpServers": {"apify-instagram-video": {"url": "https://mcp.apify.com?tools=agentx/instagram-video-downloader","headers": {"Authorization": "Bearer <APIFY_TOKEN>"}}},"exampleToolArguments": {"video_url": "https://www.instagram.com/reel/DbGeVKoSJto/","video_quality": "metadata","max_comments": 0}}
Follow the Apify MCP documentation for client-specific setup. The July 23 MCP baseline run hVYNBdXWkigil1431 succeeded in 14.1 seconds with one Dataset item, one INPUT key-value record, and about 71 MB peak memory. That observation verifies one bounded scenario, not every future Instagram response.
Pricing & Cost Calculator
The callable Actor’s hosted pricing record exposes pay-per-event pricing:
| Event | Billing unit | Public price |
|---|---|---|
actor_usage | Metered runtime, proxy, and storage event | $0.00001 |
metadata | One successfully processed metadata result without a stored video | $0.08 |
download | One successfully processed result with video download and storage | $0.20 |
A successful metadata-only item is billed through the metadata path plus applicable metered platform usage. A successful download item uses the download path instead of the metadata event. Failed access attempts may still consume platform resources even when no result event is produced.
For planning, 10 successful metadata items across 10 runs correspond to $0.80 in metadata events before metered usage. Ten successful downloads correspond to $2.00 in download events before metered usage. Each run processes one URL, so multiply the relevant event by the expected number of successful runs. Use Apify spending limits and bounded test inputs; do not rely on a charge cap as a work limit.
Use Cases & Applications
Content operations teams can preserve authorized Reel metadata and, when required, the source file for an internal review record. Researchers can capture a timestamped public snapshot containing the author, caption, dimensions, thumbnail, and available engagement values for one cited post. Developers can feed the normalized row into a webhook, catalog, moderation queue, or asset-management workflow.
AI teams can pass an authorized stored video to a separate transcription, caption, classification, or scene-analysis service. Media teams can use metadata mode first to validate identity and cost before requesting the file. Quality preferences help control file size, but the caller must inspect the returned dimensions and storage object rather than assuming the label was fulfilled exactly.
Small comment samples can support documented qualitative review when the source exposes them and the use is lawful. This Actor does not promise complete threads, reply trees, stable order, deleted comments, or historical coverage. Repeated metadata runs can observe current public counters, but the Actor does not calculate deltas, deduplicate records, or explain why a counter changed.
FAQ
Can it download an entire Instagram profile?
No. It accepts one post or Reel URL and produces at most one Dataset record per run.
Does max_comments: 0 guarantee no comments?
No. It disables the explicit positive comment request, but source-provided comments may still be present. Inspect the returned array and discard it downstream if your workflow must not retain comments.
Why did no item appear?
Open the exact URL in a private browser, confirm it is public and contains video, remove tracking fragments, and retry metadata mode with zero comments. Private, deleted, region-restricted, age-gated, login-only, or temporarily blocked content can fail.
Why is video empty?
That is expected in metadata mode. In download mode, an empty value means no video file was successfully produced or stored; inspect the run log and key-value store, then retest metadata to separate source access from media transfer.
Does high mode guarantee 4K?
No. It is an upper-bound preference with fallbacks. Instagram decides which renditions exist.
Why are counters or audio fields null?
The source or extractor did not expose them for that response. Null is not a measured zero.
Can it access private accounts, Stories, or sign-in-only media?
No authentication or Story input is exposed. Do not use the Actor to bypass access controls.
Can I schedule it?
Yes. Each scheduled run reprocesses the configured URL, and availability or counters may change. Store timestamps and deduplicate externally.
How do Reel, post, and IGTV URLs differ in practice?
All three resolve through the same single-item contract, but the fields Instagram publishes vary. A Reel usually carries audio track attribution, while an older feed post often leaves audio_title and audio_artist null. Submit the canonical /reel/<code>/ or /p/<code>/ permalink rather than a profile or story address, because those have no single media target.
Trust & Certifications
The same audit compared runtime key order with the Dataset schema, checked input defaults and enum values, and reviewed every public billing event. The baseline returned the intended Reel and exactly 26 top-level fields.
This page does not claim an external security, privacy, quality, or compliance certification. Apify provides the hosting, storage, API, and run controls described in its own documentation; users remain responsible for evaluating whether those controls meet their requirements. Live proof is scenario-specific because Instagram responses and extractor behavior can change.
For reproducibility, retain the run ID, redacted input, build version, Dataset item count, and expected field list. Recheck identity and nullability after dependency or platform changes rather than treating an old successful run as permanent evidence.
Legal & Compliance
Process only content you are authorized to access, download, analyze, and retain. Public visibility does not automatically grant permission to copy, redistribute, train on, or commercially reuse media or comments. Users are responsible for the Instagram Terms of Use, the Instagram Privacy Policy, copyright, privacy, applicable law, and internal retention rules.
Do not use this Actor to bypass access controls, evade platform safeguards, build undeclared personal profiles, or claim complete audience coverage. Minimize collected data, protect retained media and comments, and delete records when the stated purpose or lawful retention period ends. If a person requests removal under an applicable process, keep enough provenance to locate the relevant run without exposing unrelated data.
Related Tools
- Instagram Reel Scraper extracts broader post and Reel records with media-part and engagement detail.
- Video Transcript converts speech from authorized media into text.
- Video Captions Downloader retrieves caption tracks when a supported source exposes them.
- All Video Scraper provides a multi-platform video entry point.
Support & Community
Instagram availability, counts, comments, and temporary media URLs can change after that date.
- AgentX community
- Contact the AgentX team
- Actor input in Apify Console
- Apify API reference
- Apify MCP documentation
For support, include the Actor link, stable Actor ID, run ID, build number, redacted input, expected outcome, actual terminal status, and Dataset item count. Do not send API tokens, private URLs, cookies, or personal data.
