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

299

Total users

12

Monthly active users

11 days ago

Last modified

Security

Limited permissions

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 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_only when 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?

FieldDescription
video_idInstagram media identifier or shortcode
titleFirst line of the caption, or a page title when no caption is available
authorPublic Instagram username when available
publish_datePublished timestamp when the post exposes one
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
descriptionFull post 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
downloaded_formatFormat and quality actually saved, such as mp4-720p or mp3
download_urlDirect API URL for the stored file
quality_requestedQuality value used for the run
collected_atISO timestamp for the collection event
errorError 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

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

The default run processes one public Reel so you can confirm the output before adding a larger batch.

Input Parameters

ParameterTypeRequiredDefaultDescription
urlsArray of stringsNoPublic Reel exampleDirect Instagram post, Reel, IGTV, or story URLs
downloadModeStringNovideosUse videos to save media or metadata_only to skip file downloads
maxItemsIntegerNo10Maximum number of supplied URLs to process. Set to 0 to process every supplied URL
qualityStringNobestbest, 720p, 1080p, or audio_only
proxyConfigurationObjectNo{}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

FieldTypeDescription
video_idStringInstagram media identifier or shortcode
titleStringCaption first line or page title
authorStringPublic username when available
publish_dateStringISO date when the post exposes it
durationNumberVideo length in seconds
view_countNumberPublic play or view count
like_countNumberPublic like count
comment_countNumberPublic comment count
descriptionStringFull caption or page description
thumbnailStringThumbnail image URL
urlStringOriginal Instagram URL
file_sizeNumberStored file size in bytes
file_extensionStringFile extension such as mp4 or mp3
file_pathStringKey-Value Store record key
downloaded_formatStringFormat and quality that was saved
download_urlStringDirect API URL for the stored file
quality_requestedStringQuality value used for the run
collected_atStringISO timestamp for the collection event
errorStringError 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_only to 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_only to collect their captions, counts, and thumbnails.
  • Public stories usually require an authorized session. Set the encrypted INSTAGRAM_COOKIES environment secret with browser-exported JSON, Netscape cookies, or a name=value; name2=value2 header.
  • 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.

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.

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.