Instagram Video Downloader avatar

Instagram Video Downloader

Pricing

Pay per usage

Go to Apify Store
Instagram Video Downloader

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

Shahid Irfan

Maintained by Community

Actor stats

1

Bookmarked

260

Total users

18

Monthly active users

7 days ago

Last modified

Share

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 URLs, choose a quality limit, and receive structured records in the Apify Dataset. Downloaded media is also saved in the run's Key-Value Store with a direct download URL.

Why use Instagram Video Downloader?

  • Batch processing - Submit several Instagram URLs in one run.
  • Direct URL processing - Process only the exact Instagram media URLs supplied in the input.
  • Download or inspect - Download media files or use metadata_only when you only need structured information.
  • Quality selection - Request the best available file, or cap selection at 720p or 1080p.
  • Resilient downloads - Use the automatic downloader with a browser fallback, or select a specific download method.
  • Structured output - Get stable fields 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?

FieldDescription
video_idInstagram media identifier or shortcode
titleCaption-derived title or page title
authorPublic Instagram username when available
publish_datePublished timestamp when available
durationVideo duration in seconds when available
view_countPublic play or view count when available
like_countPublic like count when available
comment_countPublic comment count when available
descriptionPost caption or page description
thumbnailThumbnail image URL when available
urlOriginal Instagram URL
file_sizeDownloaded file size in bytes
file_extensionStored media extension
file_pathKey-Value Store record key
download_urlDirect API URL for the stored file
collected_atISO timestamp for the collection event
errorError message when a URL cannot be processed

How to use Instagram Video Downloader

  1. Open the Actor on Apify.
  2. Add one or more public Instagram post, reel, IGTV, or story URLs.
  3. Select download mode, quality, and the optional URL limit.
  4. Start the run and review the Dataset.
  5. Download media files from the download_url values or export the dataset.

Input Parameters

ParameterTypeRequiredDefaultDescription
urlsArray of stringsYesTested Reel URLDirect Instagram post, Reel, IGTV, or story URLs
downloadModeStringNovideosUse videos to save media or metadata_only to skip file downloads
downloadMethodStringNoautoauto, browser, or yt-dlp
maxItemsIntegerNo10Maximum number of supplied URLs to process; 0 processes every supplied URL
qualityStringNobestbest, 720p, 1080p, or audio_only
proxyConfigurationObjectNo{}Optional Apify or custom proxy settings for page access and yt-dlp downloads

Only direct media URLs are supported. Profile and hashtag discovery are intentionally not included because Instagram does not expose those pages reliably from Apify Cloud.

Usage Examples

Download one Instagram video

{
"urls": [
"https://www.instagram.com/p/C3v8HnK8JdL/"
]
}

Download several reels with a quality limit

{
"urls": [
"https://www.instagram.com/reel/C4d9IpL9KeM/",
"https://www.instagram.com/reel/C5e0JqM0LfN/"
],
"downloadMode": "videos",
"quality": "720p",
"maxItems": 10
}

Collect metadata without downloading files

{
"urls": [
"https://www.instagram.com/p/C3v8HnK8JdL/"
],
"downloadMode": "metadata_only"
}

Sample Output

{
"video_id": "C3v8HnK8JdL",
"title": "Sunset over the mountains",
"author": "naturephotography",
"publish_date": "2026-08-21T10:30:00.000Z",
"duration": 45,
"view_count": 1250,
"like_count": 318,
"comment_count": 24,
"description": "A short sunset video from the mountain trail.",
"thumbnail": "https://example.com/thumbnail.jpg",
"url": "https://www.instagram.com/p/C3v8HnK8JdL/",
"file_size": 15728640,
"file_extension": "mp4",
"file_path": "C3v8HnK8JdL.mp4",
"downloaded_format": "direct-1080p",
"download_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/C3v8HnK8JdL.mp4?raw=1",
"collected_at": "2026-08-21T10:31:00.000Z",
"quality_requested": "best"
}

Tips for best results

  • Use complete URLs copied from public Instagram posts or reels.
  • Start with one URL and metadata_only to confirm access before downloading a large batch.
  • Use a lower quality limit when file size or run time matters.
  • Direct post/Reel URLs are the supported input. A proxy is optional and is passed to both Patchright and yt-dlp.
  • If you are authorized to use an Instagram session, set the Apify environment secret INSTAGRAM_COOKIES to a JSON, Netscape, or cookie-header value. The actor loads it into Patchright and yt-dlp without exposing it in the input or output.
  • 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 URLs?

Yes. Add direct Instagram media links to urls.

Can I use an authorized Instagram session?

Yes, for content you are authorized to access. Set INSTAGRAM_COOKIES as an encrypted Apify environment secret. The value may be browser-exported JSON, Netscape format, or a name=value; name2=value2 header. Do not place credentials in README files, datasets, or public Actor inputs.

Can I download private Instagram content?

Only when you are authorized and Instagram permits that session to access it. The Actor does not bypass account permissions, and unsupported or login-gated content may still fail.

What happens when a URL fails?

The Actor pushes an error record containing the original URL, a short error message, the requested quality, and the collection timestamp. Other URLs in the same run can continue.

Which download method should I choose?

Use auto for normal runs. It tries the dedicated media downloader and falls back to the browser when Instagram changes or blocks a direct request. Use browser for browser-only access, or yt-dlp when you want the dedicated downloader to be required.

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.

Why did a video URL return metadata but no download?

Some Instagram /p/ URLs are image or carousel posts, and yt-dlp correctly reports that no video is available. In auto mode the actor then tries the browser-extracted media URL. If Instagram serves a login or restricted page, video formats are not exposed and the dataset receives an error record. Use a direct Reel/video URL or an authorized INSTAGRAM_COOKIES secret.

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.

No other Instagram Actors on the shahidirfan Apify profile were verified during this update. See the developer profile for current related Actors as they become available.

Support

For a failed run, include the input URL, run ID, error record, and approximate time of the run when opening an issue. Do not share private credentials or session data.

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.