BuildWithMatija
  1. Home
  2. Blog
  3. Shopify
  4. New Open Source Tool: Shopify Image Downloader

New Open Source Tool: Shopify Image Downloader

A Python tool to bulk download all images from your Shopify store using GraphQL Admin API

11th June 2025·Updated on:21st July 2026··
Shopify
New Open Source Tool: Shopify Image Downloader

🛍️ Complete Shopify Development Guides

Step-by-step Shopify guides with practical examples, performance optimization tips, and workflow-accelerating prompts for faster e-commerce development.

No spam. Unsubscribe anytime.

📄View markdown version
3

About the author

Matija Žiberna

Matija Žiberna

Full-stack developer, co-founder

AboutResume

Self-taught full-stack developer sharing lessons from building software and startups.

I'm Matija Žiberna, a self-taught full-stack developer and co-founder passionate about building products, writing clean code, and figuring out how to turn ideas into businesses. I write about web development with Next.js, lessons from entrepreneurship, and the journey of learning by doing. My goal is to provide value through code—whether it's through tools, content, or real-world software.

Contents

  • What It Does
  • Why I Built This
  • Features
  • Get Started
  • Technical Notes
On this page:
  • What It Does
  • Why I Built This
  • Features
  • Get Started
  • Technical Notes
Build with Matija logo

Build with Matija

Senior-led B2B websites, applications, content systems, and digital infrastructure. Business-first, full-stack, AI-assisted, no handoffs.

Services

  • B2B Website Development
  • CMS Architecture Review & Platform Blueprint
  • Next.js + Payload Advisory
  • AI Integration & Implementation

Resources

  • CMS Hub
  • B2B Website Strategy
  • E-commerce Hub
  • Blog
  • Case Studies

Payload CMS

  • Payload CMS Developer
  • Payload CMS Migration
  • Payload CMS Demos
  • All Payload CMS Resources

Discuss your project

Planning a rebuild, migration, application, workflow change, or platform decision? Start with the business problem and the system behind it.

Book a discovery callContact me →
© 2026Build with Matija•All rights reserved•Privacy Policy•Terms of Service
BuildWithMatija
Get In Touch

I just released a new Python tool that I've been working on - a Shopify Image Downloader that makes it super easy to bulk download all images from your Shopify store.

What It Does

If you've ever needed to backup your Shopify store images or migrate them elsewhere, you know it's a pain to do manually. This tool uses Shopify's GraphQL Admin API to:

  • Download all your store images in bulk
  • Export image metadata to CSV
  • Handle pagination automatically
  • Resume interrupted downloads
  • Sanitize filenames properly

Why I Built This

I ran into this exact problem recently and couldn't find a simple, reliable solution. Most existing tools were either outdated, overcomplicated, or required paid services. So I built this as a clean, production-ready Python script that just works.

Features

  • GraphQL Admin API integration - Uses the modern API, not the old REST one
  • CSV export - Get all your image metadata organized
  • Smart pagination - Handles stores with thousands of images
  • Resume capability - Won't re-download existing files
  • Environment-based config - Keep your API tokens secure

Get Started

The tool is completely free and open source. You can grab it from GitHub:

→ matija2209/shopify-image-downloader

Setup is straightforward - just clone the repo, add your Shopify API credentials to the .env file, and run the script. Full instructions are in the README.

Technical Notes

Built with Python using the requests library for API calls and pandas for CSV handling. The GraphQL queries are optimized for performance, and there's built-in error handling for network issues.

You can run it in CSV-only mode if you just want the metadata, or let it download everything. Perfect for store migrations, backups, or data analysis.


Hope this helps other Shopify developers who run into the same problem! Feel free to contribute or report issues on GitHub.