Instagram Video Downloader - Reels & IGTV, Pay-Per-Video avatar

Instagram Video Downloader - Reels & IGTV, Pay-Per-Video

Pricing

$20.00 / 1,000 download videos

Go to Apify Store
Instagram Video Downloader - Reels & IGTV, Pay-Per-Video

Instagram Video Downloader - Reels & IGTV, Pay-Per-Video

Downloads videos from Instagram posts, reels, and IGTV by URL and re-hosts them to Apify, AWS S3, Google Cloud, DigitalOcean, or Azure. $0.02 per video, no subscription, carousel-aware, with automatic dedup across duplicate URLs.

Pricing

$20.00 / 1,000 download videos

Rating

4.9

(11)

Developer

epctex

epctex

Maintained by Community

Actor stats

71

Bookmarked

1.2K

Total users

13

Monthly active users

3 hours ago

Last modified

Share

Instagram Video Downloader

Instagram Video Downloader is an Apify actor that extracts and re-hosts videos from Instagram post, reel, and IGTV URLs. Each downloaded video costs $0.02, or $20.00 per 1,000 videos, billed only on successful delivery to your chosen storage.

The Instagram Video Downloader runs one operating mode across 3 Instagram content types, accepts 24 input fields covering 4 storage providers, and returns 9 output fields per video through 1 pay-per-event charge type. Every price on this page is a per-event charge with no subscription and no monthly minimum.

What Does the Instagram Video Downloader Extract?

The Instagram Video Downloader extracts every video attached to an Instagram feed post, reel, or IGTV entry, including every video inside a multi-media carousel post. The table below lists the 4 source types it covers.

SourceHow to Target ItWhat It Covers
Feed postsPost URLs (/p/{shortcode}/) in startUrlsEvery video attached to a standard feed post, including carousels
ReelsReel URLs (/reel/{shortcode}/ or /reels/{shortcode}/) in startUrlsThe reel video
IGTVIGTV URLs (/tv/{shortcode}/) in startUrlsThe IGTV video
Carousel postsAny of the above URL types pointing at a multi-media postEvery video in the carousel, one result per video, numbered by its position

Which Instagram URLs Does the Instagram Video Downloader Accept?

The Instagram Video Downloader accepts 4 URL path patterns inside startUrls, listed below.

  • /p/{shortcode}/ targets a standard feed post.
  • /reel/{shortcode}/ targets a reel.
  • /reels/{shortcode}/ targets the same reel under Instagram's alternate path.
  • /tv/{shortcode}/ targets an IGTV entry.

Every URL is matched against the same shortcode. A post entered as /p/{shortcode}/, /reel/{shortcode}/, and /tv/{shortcode}/ in one run resolves once and is downloaded, and charged, once.

Who Uses the Instagram Video Downloader?

Listed below are the 5 roles that run the Instagram Video Downloader against Instagram video content.

  • Social media and content teams pull campaign or influencer videos into downloadUrl for repurposing or cross-platform reposting, instead of relying on Instagram's own short-lived media links.
  • Marketing and brand monitoring functions re-host UGC, branded content, or competitor posts by feeding startUrls from a tracked list and reading storageType back to confirm delivery.
  • Agencies and freelancers batch a client's startUrls list against the client's own s3Bucket, googleCloudBucketName, digitalOceanBucketName, or azureContainerName as part of a deliverable pipeline.
  • Product and dev teams building on Apify call the actor through the Apify API, budgeting runs against the fixed $0.02 video-download event instead of a variable proxy cost.
  • Researchers and archivists collect a reproducible set of public Instagram video content, defined by an explicit startUrls list, and use jobId and inputSource to trace each result back to its query.

What Does the Instagram Video Downloader Cost?

The Instagram Video Downloader charges 1 event type. Each video-download event costs $0.02, or $20.00 per 1,000 videos.

Event TypePriceWhat's Included
video-download$0.02Charged once per video successfully downloaded and re-hosted to your storage

Instagram Video Downloader Cost Examples

The table below prices 5 scenarios against the rate card above.

ScenarioCharge EventsCalculationTotal Cost
1 post, 1 video1 video-download$0.02 x 1$0.02
1 carousel post, 6 videos6 video-download$0.02 x 6$0.12
1 image-only postnonen/a$0.00
1 private or deleted postnonen/a$0.00
1 malformed or non-Instagram URLnonen/a$0.00

Instagram Video Downloader Unit Economics

The 4 figures below are derived from the rate card above. None of them include a subscription or platform fee, because the Instagram Video Downloader has neither.

MetricValue
Cost per video$0.02
Videos per $150
Cost per 1,000 videos$20.00
Videos per $10500

How Does the Instagram Video Downloader Free Plan Work?

The Instagram Video Downloader checks, before starting, whether its run's cost ceiling can cover even 1 video-download event. When it cannot and the account is not on a paid plan, the actor charges for a small number of video-download events, 10 by default in the actor's configuration, and returns that many placeholder items shaped { "demo": true } instead of downloading real videos. This lets a Free-plan account see the output shape before subscribing. On the Free plan, maxItems is fixed by the plan's own configuration; the value entered in the input is ignored. For unrestricted use, subscribe to a paid plan.

How Is the Instagram Video Downloader Configured?

The Instagram Video Downloader exposes 24 input fields: 4 core fields plus 20 storage-provider fields split across 4 providers.

FieldTypeRequiredDescriptionDefault
startUrlsarrayYesInstagram post, reel, or IGTV URLs to download videos from.[]
storageTypestringYesTarget storage provider: apify, gcp, aws, digitalocean, or azure. Fill the matching configuration section below.apify
maxItemsintegerNoMaximum number of items to output (minimum 1). Leave empty for no limit.no limit
customMapFunctionstringNoFunction that takes each output object as an argument and returns the mapped data, e.g. (object) => { return {...object} }. Not intended for filtering. Leave empty to keep the output as-is; an unusable function is ignored and the original items are saved instead.null

Which Storage Configuration Fields Does the Instagram Video Downloader Use?

Fill in the section matching your storageType. Fields marked Secret are masked in the Apify Console and never logged.

AWS S3 Configuration (storageType: "aws"), 5 fields

FieldTypeSecretDescription
s3AccessKeyIdstringNoAWS access key ID.
s3SecretAccessKeystringYesAWS secret access key.
s3RegionstringNoAWS region.
s3BucketstringNoTarget S3 bucket name.
s3PathstringNoOptional folder path in the S3 bucket.

Google Cloud Storage Configuration (storageType: "gcp"), 4 fields

FieldTypeSecretDescription
googleCloudProjectIdstringNoGCP project ID.
googleCloudServiceKeyJsonobjectYesService account credentials JSON.
googleCloudBucketNamestringNoTarget Google Cloud Storage bucket name.
googleCloudPathstringNoOptional folder path in the GCS bucket.

DigitalOcean Spaces Configuration (storageType: "digitalocean"), 7 fields

FieldTypeSecretDescription
digitalOceanAccessKeyIdstringNoDigitalOcean Spaces access key ID.
digitalOceanSecretAccessKeystringYesDigitalOcean Spaces secret access key.
digitalOceanRegionstringNoDigitalOcean Spaces region (e.g. nyc3).
digitalOceanBucketNamestringNoDigitalOcean Spaces bucket name.
digitalOceanEndpointstringNoOptional Spaces endpoint URL.
digitalOceanAclstringNoOptional ACL value (defaults to private).
digitalOceanPathstringNoOptional folder path in the Spaces bucket.

Azure Storage Configuration (storageType: "azure"), 4 fields

FieldTypeSecretDescription
azureAccountNamestringNoAzure storage account name.
azureAccountKeystringYesAzure storage account key.
azureContainerNamestringNoAzure container name.
azurePathstringNoOptional folder path in the Azure container.

Which Input Rules Does the Instagram Video Downloader Enforce?

The Instagram Video Downloader enforces 7 input rules covering URL validation, deduplication, and storage credentials.

RuleWhat It Means
startUrls is required and cannot be emptyA missing or empty startUrls fails the run with "Instagram start URLs must be provided" before it starts.
Only /p/, /reel/, /reels/, and /tv/ URLs are acceptedAny other Instagram URL, or a non-Instagram URL, is reported with invalidUrl status and never sent to the resolver.
Duplicate shortcodes are deduplicatedThe same post entered under more than one of /p/, /reel/, /reels/, or /tv/ resolves once, by shortcode; only the first occurrence is processed.
storageType defaults to apifyAn input saved without storageType runs against Apify's key-value store instead of failing.
Missing storage credentials fail the runA storageType of aws, gcp, digitalocean, or azure without its required fields, for example s3Bucket for AWS, fails the run before any video is downloaded.
maxItems has a minimum of 1A maxItems value below 1 is rejected by the input schema.
maxItems is ignored on the Free planThe Free plan's item limit comes from its own plan configuration regardless of the maxItems value entered.

How Do You Run the Instagram Video Downloader with Apify Storage?

The Instagram Video Downloader defaults storageType to apify, so a run needs only startUrls to deliver videos into Apify's built-in key-value store.

{
"startUrls": [
"https://www.instagram.com/p/CuKHeY_PLbZ/",
"https://www.instagram.com/reel/DdBT6qbjGaQ/"
],
"storageType": "apify"
}

How Do You Run the Instagram Video Downloader with Your Own Cloud Storage?

The Instagram Video Downloader re-hosts every video to aws, gcp, digitalocean, or azure when storageType and that provider's credential fields are filled in. The example below targets an AWS S3 bucket.

{
"startUrls": ["https://www.instagram.com/p/CuKHeY_PLbZ/"],
"storageType": "aws",
"s3AccessKeyId": "AKIA...",
"s3SecretAccessKey": "...",
"s3Region": "us-east-1",
"s3Bucket": "my-video-archive",
"s3Path": "instagram/"
}

How Do You Cap an Instagram Video Downloader Run's Volume?

The Instagram Video Downloader stops adding items once maxItems is reached, on paid plans. The example below caps a 3-URL run at 2 output items.

{
"startUrls": [
"https://www.instagram.com/p/CuKHeY_PLbZ/",
"https://www.instagram.com/reel/DdBT6qbjGaQ/",
"https://www.instagram.com/tv/Cp1a2B3cD4e/"
],
"storageType": "apify",
"maxItems": 2
}

Which Fields Does the Instagram Video Downloader Output?

The Instagram Video Downloader outputs 9 fields per video, covering source tracking, delivery, and status. Every item is stored as one JSON object per video found, per input URL.

{
"sourceUrl": "https://www.instagram.com/p/DdBT6qbjGaQ/",
"videoPosition": 1,
"downloadUrl": "https://api.apify.com/v2/key-value-stores/xxx/records/ig-DdBT6qbjGaQ-1.mp4",
"thumbnailUrl": "https://scontent.cdninstagram.com/...",
"storageType": "apify",
"status": "succeeded",
"jobId": "a1b2c3d4",
"error": null,
"inputSource": {
"queryIndex": 0,
"url": "https://www.instagram.com/p/DdBT6qbjGaQ/"
}
}
FieldDescription
sourceUrlThe input URL that produced this item.
videoPosition1-based position of this video among all the post's media. A carousel whose videos are its 2nd and 4th items yields 2 and 4.
downloadUrlThe re-hosted video in your chosen storage. null unless status is succeeded.
thumbnailUrlInstagram's own thumbnail link. Passed through as-is, and it will eventually expire.
storageTypeWhich storage the video was delivered to.
statusOne of 6 values, listed below.
jobIdIdentifier of the download job, for support requests. null if no job was created.
errorWhy this item is not a download, or null.
inputSourceWhich startUrls entry produced this item, as queryIndex and url.

Which Statuses Does the Instagram Video Downloader Report?

The Instagram Video Downloader reports 6 status values on every output item. 1 status is charged.

StatusMeaningCharged
succeededThe video was downloaded and re-hosted.Yes
invalidUrlThe URL is not a post, reel, or IGTV URL.No
unavailableThe post does not exist, or it is private or deleted.No
noVideoContentThe post exists but contains no video.No
failedThe download or the upload to your storage failed.No
timedOutThe run ran out of time before this video was downloaded.No

The 5 non-charged statuses split into 2 recovery behaviors: 4 statuses (invalidUrl, unavailable, noVideoContent, failed) report a problem with one video while the run continues to the next startUrls entry, and 1 status (timedOut) reports a video the run did not finish before its deadline. Wait time for one download scales with the video's own length; a job whose backend heartbeat or phase freezes past that scaled threshold is reported as failed, and a video still in progress when the run's own deadline arrives is reported as timedOut instead of stalling the whole run.

Which Instagram Video Downloader Questions Come Up Most Often?

What can the Instagram Video Downloader collect?

Videos attached to Instagram posts, reels, and IGTV entries, including every video inside a carousel post, sourced from the URLs supplied in startUrls.

Can the Instagram Video Downloader download a carousel post?

Yes. Every video in the post is returned as its own result, numbered by its position in the post.

Does the Instagram Video Downloader need my own cloud storage account?

No. The default storageType is apify, which saves videos to Apify's built-in key-value store with no extra setup. An AWS S3, Google Cloud, DigitalOcean Spaces, or Azure account is optional.

What happens if I enter the same Instagram Video Downloader post as a /p/ and a /reel/ URL?

The Instagram Video Downloader deduplicates it by shortcode and downloads, and charges, it once.

How do I cap the volume of an Instagram Video Downloader run?

maxItems sets the maximum number of items returned, on paid plans. On the Free plan it is fixed by the plan configuration regardless of what is entered.

Can I customize the Instagram Video Downloader output?

Yes. customMapFunction takes each output object and returns a mapped object. An unusable function is ignored and the original items are saved instead.

Is there a free way to try the Instagram Video Downloader?

Yes. A Free-plan account can start a run and see a small number of placeholder items without a subscription. For unrestricted use, subscribe to a paid plan.

Am I charged by the Instagram Video Downloader for a private or deleted post?

No. Nothing is charged for a URL that is not a valid post, reel, or IGTV link, or for a post that is private, deleted, or contains no video.

Does a failed Instagram Video Downloader download cost anything?

No. A failed or timedOut item is not charged.

Can I fetch Instagram Video Downloader results via the API?

Yes, in any language, including Python, PHP, and Node.js, via the Apify API.

Where Do You Get Instagram Video Downloader Support?

The Instagram Video Downloader is published by epctex, reachable at epctex.com for all available products. Custom integrations go through the chat box on epctex.com. Support requests go to business@epctex.com.