Instagram Photos Downloader avatar

Instagram Photos Downloader

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Instagram Photos Downloader

Instagram Photos Downloader

📸 Instagram Photos Downloader—save and download photos & videos fast with a smooth experience. ⚡️ Ideal for creators, marketers, and social media fans. 🔥 Download instantly, organize easily, and share smarter! 🚀

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

SolidScraper

SolidScraper

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Instagram Photos Downloader 📥

Instagram Photos Downloader is an Apify actor that scrapes Instagram posts, reels, and galleries and saves the media (including single items and carousel media) into your dataset—so you can download Instagram photos at scale without doing it manually. It’s built for instagram photos downloader workflows, including download instagram photos, instagram photo download, and instagram images downloader use cases. Whether you’re a marketer, data analyst, researcher, or automation builder, this tool helps you turn publicly available Instagram media into structured results—saving you hours of manual work.


Why choose Instagram Photos Downloader?

FeatureBenefit
✅ All-in-one Instagram media scrapingCollect post, reel, and gallery media in one run (including carousel items)
✅ Reliability with fallback logicAutomatically falls back to HTML parsing when the primary request doesn’t return data
✅ Resilient execution patternIncludes built-in delays between requests to support smoother batch runs
✅ Structured dataset outputReturns consistent JSON with author + thumbnails + media URLs you can export later
✅ Batch-friendly scalingAccepts multiple start URLs and processes them sequentially while saving results live
✅ Automation-ready resultsEach input URL is pushed to the dataset immediately as it finishes

Key features

  • 📊 Structured media details for each item: Gets media URLs plus per-media metadata like type (image/video), dimensions, and extension.
  • 🌐 Input flexibility for posts, reels, and galleries: Works from Instagram URLs that match post/reel/tv paths.
  • 🔄 Fallback for resilience: If the primary request fails or doesn’t return expected data, the actor falls back to parsing the page content.
  • 💾 Real-time dataset saving: Results are appended live during the run, so you don’t lose data if you stop early.
  • 🛡️ Proxy support for reliable scraping: Built-in proxy configuration support for more dependable scraping in bulk scenarios.
  • ⏱️ Batch pacing with configurable delays: Uses sleepMin / sleepMax to space requests between input URLs.

Input

Provide input via an input.json file. Example structure:

{
"startUrls": [
{
"url": "https://www.instagram.com/p/CaHpoweBjmx"
}
],
"proxyConfiguration": {
"useApifyProxy": true
},
"sleepMin": 3,
"sleepMax": 7
}

Input Fields

KeyRequiredDescription
startUrlsList of Instagram URLs to scrape (Posts, Reels, or TV). You can provide objects like { "url": "..." } as shown in the prefill.
proxyConfigurationProxy settings. The actor checks proxyConfiguration for proxy support to decide whether to use Apify proxy URLs.
proxyConfiguration.proxy supportWhen true, the actor uses Apify proxy support for scraping requests.
sleepMinMinimum delay (seconds) between processing each start URL. Default is 3 when not provided.
sleepMaxMaximum delay (seconds) between processing each start URL. Default is 7 when not provided.

Output

This actor pushes one JSON result per input URL into the dataset (live during execution).

Example output object:

{
"url": "https://www.instagram.com/p/CaHpoweBjmx",
"source": "instagram",
"shortcode": "CaHpoweBjmx",
"author": "username or full name",
"music_attribution_info": null,
"duration": 0,
"owner": {
"pk": "123456789",
"id": "123456789",
"username": "username",
"profile_pic_url": "https://example.com/profile.jpg",
"show_account_transparency_details": true,
"__typename": "XDTUserDict",
"is_private": false,
"friendship_status": null,
"transparency_product": null,
"transparency_product_enabled": false,
"transparency_label": null,
"ai_agent_owner_username": null,
"is_unpublished": false,
"is_verified": false
},
"view_count": 0,
"like_count": 0,
"title": "caption text (may be empty)",
"thumbnail": "https://example.com/thumbnail.jpg",
"medias": [
{
"url": "https://example.com/media1.jpg",
"height": 720,
"width": 720,
"id": "media-id",
"quality": "image 720x720p 1",
"resolution": "720x720",
"type": "image",
"extension": "jpg"
}
],
"type": "image",
"error": false,
"time_end": 1532
}

Output Fields

FieldTypeDescription
urlstringThe input URL that was processed.
sourcestringAlways set to "instagram" for these results.
shortcodestringThe extracted shortcode from the Instagram URL.
authorstring | nullThe author name (full name or username) if available.
music_attribution_infoobject | nullMusic attribution info when present (otherwise null).
durationnumberVideo duration value if available; otherwise 0.
ownerobjectOwner/account metadata object (IDs, username, profile pic URL, and account flags).
view_countnumber | nullView/play count when available.
like_countnumberLike count when available.
titlestringCaption text (may be empty).
thumbnailstring | nullThumbnail URL when available.
mediasarrayList of extracted media items (supports carousel items).
typestringMedia type classification: "multiple" (more than one media), otherwise "video" or "image".
errorbooleanfalse when scraping succeeded; true when an error occurred.
time_endnumberTime spent for the request in milliseconds.
messagestring | (only on error)Error message text when error is true.

medias array fields

Each item in medias includes:

FieldTypeDescription
urlstring | nullDirect media URL (image or video).
heightnumberMedia height in pixels (when available).
widthnumberMedia width in pixels (when available).
idstring | nullMedia ID when available.
qualitystringA readable quality label like image 720x720p 1 or video 640x360p 1.
resolutionstringResolution string in the form WIDTHxHEIGHT.
typestring"image" or "video".
extensionstring"jpg" for images or "mp4" for videos.

After the run, you can export your dataset in JSON or CSV from the Apify Console (depending on the dataset export options you choose).


How to use Instagram Photos Downloader (via Apify Console)

  1. Open Apify Console
    Log in at https://console.apify.com and go to the Actors page.

  2. Find Instagram Photos Downloader
    Search for the actor and open its listing to view the Input tab.

  3. Add your start URLs
    In the INPUT section, paste one or more Instagram URLs (Posts, Reels, or TV) into startUrls. The input supports entries like { "url": "https://www.instagram.com/p/..." }.

  4. (Optional) Configure proxies
    If you want proxy support for batch runs, set proxyConfiguration.proxy support to true.

  5. (Optional) Tune request pacing
    Adjust sleepMin and sleepMax to control the delay between processing each URL (defaults: 3 and 7).

  6. Run the actor
    Click Run. While it works, you’ll see logs for each processed URL. Results are pushed to the dataset live, and the actor may fall back to HTML parsing if needed.

  7. Review results in the dataset
    When finished, open the OUTPUT tab and open the dataset to view the structured media results (perfect for building an instagram photos downloader workflow).

  8. Export to your format
    Export the dataset as JSON or CSV for your reporting, analysis, or downstream automation.

No coding required—get accurate results in minutes with this instagram photo saver style workflow.


Advanced features & SEO optimization

  • 🧠 Engineered for Instagram media download: Designed to work as an instagram media downloader for posts, reels, and galleries—especially when you need multiple items from carousels (gallery-style).
  • 🔁 Resilience with fallback parsing: Includes fallback behavior for cases where the primary request doesn’t return usable data, improving outcomes for instagram photo download tool needs.
  • Compliance-friendly pacing: Uses sleepMin / sleepMax delays to help keep requests smoother during instagram bulk photo downloader runs.
  • 🔍 Clean, export-ready JSON: Each run outputs consistently structured fields—so “download instagram pictures” becomes a repeatable data pipeline step.

Best use cases

  • 📈 Marketing teams building content moodboards: Quickly gather captions and direct media URLs for visual campaigns without manual downloading.
  • 🔎 Researchers analyzing visual trends: Collect image/video URLs, dimensions, and engagement metrics like like_count and view_count.
  • 👥 Influencer and brand auditing: Pull profile media from specific posts/reels and compare engagement patterns across multiple pieces of content.
  • 🛠️ Data teams creating enrichment datasets: Feed the medias array into ETL pipelines as part of an instagram images downloader workflow.
  • 💻 Developer workflows for media archiving: Use the dataset output as input to storage, caching, or media processing jobs (turning an insta photos downloader into an automated pipeline).
  • 🧺 Bulk gallery extraction: Download carousel-style posts as multiple media records using the type field ("multiple") for easy grouping.
  • 🧾 Analysts tracking media performance over time: Compare like_count, view_count, and media resolutions across runs for time-based reporting.

Technical specifications

  • Supported Input Formats

    • startUrls: list of Instagram URLs for Posts, Reels, or TV (array of URL objects or URL strings as handled by the actor)
  • Proxy Support

    • ✅ Proxy configuration via proxyConfiguration.proxy support (Apify proxy URL support when enabled)
  • Retry / Reliability Behavior

    • ✅ Includes fallback logic (primary request + fallback HTML parsing) to improve the chance of extracting the needed fields
  • Dataset Structure

    • ✅ One result object per processed URL, containing top-level fields like url, owner, thumbnail, and medias
  • Rate Limits & Performance

    • ✅ Uses a randomized delay between sleepMin and sleepMax seconds between URLs (defaults are 3 and 7)
  • Limitations

    • ❌ If an input URL is invalid or the actor cannot extract a shortcode, the result will include an error.
    • ❌ If required media data isn’t available, the result may include an error message with error: true.

FAQ

Can I use Instagram Photos Downloader for multiple posts at once?

✅ Yes. Provide multiple items in startUrls, and the actor processes them sequentially, pushing each result live to the dataset as it completes.

What kinds of Instagram content does it support?

✅ It supports Instagram posts, reels, and galleries. It also handles single media and carousel media by returning multiple items inside the medias array when applicable.

Do I need to write any code?

✅ No coding required. You can use the actor directly in Apify Console by entering your startUrls (and optionally proxy settings and delays).

What does the actor store in the dataset?

✅ The actor saves a JSON object per URL including fields like author, owner, thumbnail, and medias (with direct media URLs, dimensions, and file extension). The actor also includes error and an error message when something goes wrong.

Does it support proxy configuration?

✅ Yes. You can enable Apify proxy support by setting proxyConfiguration.proxy support to true. The actor uses proxy configuration for more reliable scraping during bulk runs.

How does it handle failures?

✅ When scraping fails, the actor returns a result with error: true and includes a message. It also includes fallback logic so that if the primary request doesn’t provide usable data, it attempts alternative parsing.

Can I export my results as CSV?

✅ You can export from the Apify Console dataset view. The actor outputs structured JSON objects, which can typically be exported to CSV depending on your selected export options.


Support & feature requests

Want to improve your Instagram Photos Downloader experience? Share feedback and feature requests with us—your ideas help shape the roadmap.

  • 💡 Feature Requests: Ideas like additional export formats, extra media metadata, or better grouping for carousel galleries are welcome.
  • 📧 Contact: Email us at dataforleads@gmail.com.

Thanks for building with instagram photos downloader workflows—tell us what you need next.


This is the most comprehensive Instagram Photos Downloader for structured Instagram media results. Get started and turn downloads into repeatable data with less manual work.

Disclaimer

This tool only accesses publicly accessible sources. It does not access private profiles, authenticated data, or password-protected content. It is your responsibility to comply with applicable laws (including GDPR and CCPA where relevant), spam regulations, and Instagram platform policies / Terms of Service.

For data-removal requests, contact dataforleads@gmail.com. Please use this actor responsibly, ethically, and for legitimate purposes only.