ImageExtract.pics

Download product images from a Shopify store

Paste a collection or product URL from any Shopify store and the scanner collects the product photography the page carries, including the responsive size variants a store generates for each photo. Shopify renders its catalogue into the HTML, which is why this works well — measured against a real browser on two live stores, it finds 90–98% of what the browser loads.

What this does

Why Shopify specifically

Shopify renders product data into the HTML it serves. The catalogue is in the page before any JavaScript runs, which is exactly the condition a static parser needs — and it is why the coverage numbers on this page are high enough to publish.

That is not true of every storefront. A store built as a single-page app assembles its grid in the browser from an API, and there is nothing in the served HTML to read. Both kinds exist; the measured ones here are the first kind.

What the numbers mean

Coverage was measured against a browser, not estimated. A headless Chromium loaded each store’s collection page, scrolled to the bottom to trigger lazy loading, and recorded every image it actually fetched. The scanner read the same URL, and the two lists were compared.

The comparison counts logical images rather than exact URLs. A store serving one photo at eight widths is one image, not eight — counting URLs would score a perfect result as a poor one, which is a measurement error rather than a finding. The full method and corpus are in the project’s frontend plan.

What it won't do

Questions

Collection page or product page?

Product page for one item's full set, including the alternate angles a collection tile never shows. Collection page for a broad sweep of the catalogue at whatever size the grid uses. They answer different questions, and the product page is the one people usually want.

The store shows one photo — why does the chip say six versions?

Shopify generates a set of sizes for every image and declares them all so browsers can pick whichever suits the screen. All of them are found, and they are grouped into a single tile so the grid shows pictures rather than breakpoints. The chip opens the group if you want a specific width.

How do I get the highest-resolution version?

Selecting a tile already takes it: a grouped tile represents its largest version, so the default selection is the best the store serves publicly. There is no hidden original behind it. If dimensions are unknown, Measure reads them from the file headers and the grouping updates to match.

Does this work on stores with a custom domain?

Yes. Shopify stores mostly run on their own domains, and nothing here keys on the myshopify.com hostname — it reads the page it is given.

Is it only Shopify?

No, but Shopify is the platform the coverage was measured on. Any store that renders its catalogue into HTML behaves the same way; stores that build the grid entirely in JavaScript return much less.

Related

Images belong to their creators. Only download what you have the right to use. See all tools or read what our requests do.