Instagram Video Downloader
Pricing
Pay per usage
Instagram Video Downloader
The Instagram Video Downloader is a powerful Apify actor designed to download videos from Instagram with comprehensive metadata extraction. Whether you need to download single videos, multiple posts, reels, or entire profiles, this actor provides reliable extraction with direct download.
Pricing
Pay per usage
Rating
5.0
(2)
Developer
Shahid Irfan
Maintained by CommunityActor stats
1
Bookmarked
299
Total users
12
Monthly active users
11 days ago
Last modified
Categories
Security
Limited permissionsShare
What does Instagram Video Downloader do?
Instagram Video Downloader collects metadata and downloadable media from direct Instagram post, Reel, IGTV, and story URLs. Add one or more links, choose a quality limit, and receive structured records in the Apify Dataset. When you download media, the Actor also stores the file in the run's Key-Value Store with a direct download URL.
The Actor works with public post URLs, so you can use it without an Instagram login for public Reels, videos, and image posts. If you are authorized to access a story or restricted post, you can supply a session through the INSTAGRAM_COOKIES environment secret.
Why use Instagram Video Downloader?
- Batch processing - Submit several Instagram URLs in one run instead of downloading files one by one.
- Direct URL processing - Process only the exact post, Reel, IGTV, or story links you provide.
- Metadata without files - Use
metadata_onlywhen you need captions, counts, and thumbnails but do not want to store video files. - Quality selection - Request the best available file, or cap selection at 720p or 1080p.
- Audio extraction - Save the soundtrack as an MP3 when you select
audio_only. - Structured output - Get stable field names for content analysis, archiving, reporting, or downstream automation.
- Apify workflow support - Export JSON, CSV, or Excel files, schedule runs, use webhooks, and read results through the Apify API.
What data can you extract from Instagram?
| Field | Description |
|---|---|
video_id | Instagram media identifier or shortcode |
title | First line of the caption, or a page title when no caption is available |
author | Public Instagram username when available |
publish_date | Published timestamp when the post exposes one |
duration | Video duration in seconds when available |
view_count | Public play or view count when available |
like_count | Public like count when available |
comment_count | Public comment count when available |
description | Full post caption or page description |
thumbnail | Thumbnail image URL when available |
url | Original Instagram URL |
file_size | Downloaded file size in bytes |
file_extension | Stored media extension |
file_path | Key-Value Store record key |
downloaded_format | Format and quality actually saved, such as mp4-720p or mp3 |
download_url | Direct API URL for the stored file |
quality_requested | Quality value used for the run |
collected_at | ISO timestamp for the collection event |
error | Error message when a URL cannot be processed |
Instagram does not publish every field for every post. Image posts usually have no duration or view count, and some posts hide like counts. The Actor returns missing values as null instead of estimating them.
How to use Instagram Video Downloader
- Open the Actor on Apify.
- Add one or more public Instagram post, Reel, IGTV, or story URLs.
- Select the download mode, quality, and optional URL limit.
- Start the run and review the Dataset.
- Download media files from the
download_urlvalues or export the dataset.
The default run processes one public Reel so you can confirm the output before adding a larger batch.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
urls | Array of strings | No | Public Reel example | Direct Instagram post, Reel, IGTV, or story URLs |
downloadMode | String | No | videos | Use videos to save media or metadata_only to skip file downloads |
maxItems | Integer | No | 10 | Maximum number of supplied URLs to process. Set to 0 to process every supplied URL |
quality | String | No | best | best, 720p, 1080p, or audio_only |
proxyConfiguration | Object | No | {} | Optional Apify or custom proxy settings for page access and media downloads |
The Actor supports only direct media URLs. Profile and hashtag discovery are not included.
Usage Examples
Download one Instagram video
{"urls": ["https://www.instagram.com/reel/DcMXl1IPNtB/"]}
Download a Reel with a quality limit
{"urls": ["https://www.instagram.com/reel/DcMXl1IPNtB/"],"downloadMode": "videos","quality": "720p","maxItems": 10}
Collect metadata without downloading files
{"urls": ["https://www.instagram.com/p/DcOX3hWFiey/"],"downloadMode": "metadata_only"}
Save audio only
{"urls": ["https://www.instagram.com/reel/DcMXl1IPNtB/"],"quality": "audio_only"}
Output Data
| Field | Type | Description |
|---|---|---|
video_id | String | Instagram media identifier or shortcode |
title | String | Caption first line or page title |
author | String | Public username when available |
publish_date | String | ISO date when the post exposes it |
duration | Number | Video length in seconds |
view_count | Number | Public play or view count |
like_count | Number | Public like count |
comment_count | Number | Public comment count |
description | String | Full caption or page description |
thumbnail | String | Thumbnail image URL |
url | String | Original Instagram URL |
file_size | Number | Stored file size in bytes |
file_extension | String | File extension such as mp4 or mp3 |
file_path | String | Key-Value Store record key |
downloaded_format | String | Format and quality that was saved |
download_url | String | Direct API URL for the stored file |
quality_requested | String | Quality value used for the run |
collected_at | String | ISO timestamp for the collection event |
error | String | Error message for a failed URL |
Sample Output
The thumbnail URL and store ID are shortened placeholders. The counts come from a test run and change over time.
{"video_id": "3966649126543481665","title": "Soothing spacewalk scenes.","author": "nasajohnson","publish_date": null,"duration": 50.2,"view_count": 771532,"like_count": 115157,"comment_count": 1088,"description": "Soothing spacewalk scenes. Today, August 18, NASA's crew completed a spacewalk to remove a failed communications antenna.","thumbnail": "https://instagram.example.com/thumbnail.jpg","url": "https://www.instagram.com/reel/DcMXl1IPNtB/","file_size": 5862041,"file_extension": "mp4","file_path": "3966649126543481665.mp4","downloaded_format": "mp4-720p","download_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/3966649126543481665.mp4?raw=1","quality_requested": "best","collected_at": "2026-10-29T15:52:46.495Z"}
Tips for best results
- Use complete URLs copied from public Instagram posts or Reels.
- Start with one URL and
metadata_onlyto confirm access before downloading a large batch. - Use a lower quality limit when file size or run time matters. Instagram supplies the closest available file, so the saved format may differ from the request.
- Image and carousel posts have no video file. Use
metadata_onlyto collect their captions, counts, and thumbnails. - Public stories usually require an authorized session. Set the encrypted
INSTAGRAM_COOKIESenvironment secret with browser-exported JSON, Netscape cookies, or aname=value; name2=value2header. - Some fields are unavailable when Instagram does not publish them publicly.
- Private, deleted, age-restricted, or login-gated content may return an error record.
- Respect Instagram's terms, copyright rules, privacy requirements, and applicable law.
Integrations and exports
- Dataset exports - Download results as JSON, CSV, Excel, XML, or other supported formats.
- Webhooks - Trigger downstream workflows after a run or dataset update.
- Google Sheets - Send structured records to spreadsheet workflows.
- Make or Zapier - Connect completed runs to no-code automations.
- Apify API - Start runs and read dataset items from your own application.
Frequently Asked Questions
Can I process multiple Instagram URLs in one run?
Yes. Add direct Instagram links to urls. The Actor processes them in small batches and continues after an individual URL fails.
Can I download private Instagram content?
Only when you are authorized and Instagram permits that session to access it. Set INSTAGRAM_COOKIES as an encrypted Apify environment secret. The Actor does not bypass account permissions, and unsupported or login-gated content may still fail.
Do I need an Instagram account to download public Reels?
No for most public Reels, videos, and image posts. Public stories and some restricted posts usually need an authorized session.
What happens when a URL fails?
The Actor pushes an error record with the original URL, a short message, the requested quality, and the collection timestamp. Other URLs in the same run continue.
Why did a video URL return metadata but no download?
Some Instagram URLs point to image or carousel posts, and some posts expose metadata without a public media file. Use metadata_only for those URLs, or verify that the link opens as a public video in a browser.
Which quality should I choose?
Use best for the highest available file. Use 720p or 1080p to limit size. The Actor saves the closest available quality and records the result in downloaded_format.
How does audio_only work?
The Actor downloads the video, extracts the audio as a 192 kbps MP3, and stores the MP3 in the Key-Value Store.
Can I run it on a schedule?
Yes. Create an Apify schedule and connect the resulting dataset to exports, webhooks, or an external API workflow.
Is collecting public Instagram data legal?
Legal requirements depend on your location, purpose, and the data involved. You are responsible for following Instagram's terms, applicable copyright and privacy laws, and any required permissions.
Support
For a failed run, include the input URL, run ID, error record, and approximate run time when opening an issue. Do not share private credentials or session data.
Legal Notice
This Actor is intended for legitimate collection of publicly available media and metadata. Users are responsible for using downloaded content lawfully and respecting Instagram's terms, copyright, privacy, and access controls.
