Batch Image Downloader
Paste an image URL list, free text, JSON, or CSV to load and preview remote images in batches, then download them individually or ZIP the successfully loaded ones. Images blocked by browser CORS are marked as failed.
FreeOnline Tool
Loading…
How to Use
- Paste image URLs into the text area (one per line or several per line), or paste any text containing image links, a JSON array, or CSV content.
- Click “Parse and preview” to start batch loading, or click “Import text / CSV / JSON” to choose a local file. Up to 4 images load concurrently with a progress bar.
- Review the cards: successful items show a thumbnail, filename, and size; failures show the reason. Use the checkboxes to choose which images to package.
- Click “Download ZIP (N)” to package selected, successfully loaded images. Download individual images with “Download”, retry one with “Retry”, or retry all failures with “Retry failed”.
- Click “Load sample data” to generate 3 built-in SVG samples (data:image, no external network) that demonstrate the full flow.
- “Clear list” removes all images and revokes thumbnail URLs.
Features
- Accepts many input shapes: one URL per line, http(s) links inside arbitrary text, JSON string arrays or object arrays with url/src/link/href/image fields, data:image URLs, and CSV.
- For CSV, columns whose headers contain url, link, src, image, 图片, 链接, or 地址 are preferred; if no header matches, all columns are scanned.
- Only http/https and data:image URLs are accepted; ftp, javascript, and similar protocols are marked invalid. Duplicate URLs and URLs already in the list are skipped with a count.
- Loading uses fetch in cors mode with up to 4 concurrent workers. It checks HTTP status, empty responses, and decodes the blob when the Content-Type is not image/* so HTML error pages are not mistaken for images.
- Loaded items can be downloaded individually or included in a ZIP; failures support per-item and bulk retry and can be opened in a new tab via “Open original”.
- The ZIP contains only selected, successfully loaded images, stored without compression. Duplicate filenames become a.png, a-2.png, etc.; filenames are sanitized and get a MIME-derived extension when missing.
- Binary .xlsx / .xls files are not parsed directly — save the sheet as CSV in Excel / WPS first.
- Images are requested by your browser directly from the image hosts; this tool's server never proxies, uploads, or stores them.
Use Cases
Collecting reference images
Paste image links copied from chat logs, documents, or web pages, load them at once, and save them as a ZIP.
Bulk e-commerce product images
Extract image URLs from a CSV product sheet or store export, load them in batches, and archive them for further processing.
Image host or site migration
Review a list of legacy image URLs, see which still load, and package the successful ones for migration.
Validating image links
Check in bulk whether URLs are valid and return images, and identify links blocked by CORS or no longer available.
FAQ
Why do some images show “read failed”?
The most common cause is a missing Access-Control-Allow-Origin header on the image server, so the browser blocks the cross-origin read under CORS rules. Other causes include an unreachable network, HTTP 4xx/5xx responses, an empty response, or content that cannot be decoded as an image. Each card shows the specific reason, such as “possibly blocked by CORS or unreachable” or “HTTP 403”.
Can this tool still download images blocked by CORS?
No. Browsers do not allow a web page to bypass CORS, and the tool reports the failure honestly rather than pretending the download succeeded. Use “Open original” to view the image in a new tab and save it manually, or add Access-Control-Allow-Origin on the image server if you control it.
Can I import Excel (.xlsx / .xls) files?
Binary Excel files are not parsed directly. Save the worksheet as CSV in Excel / WPS, then load it with “Import text / CSV / JSON”. CSV headers containing url, link, image, or similar labels are detected automatically.
Which URLs and input formats are supported?
Only http://, https://, and data:image/ URLs are accepted; ftp, javascript, and other protocols are rejected. Input can be one or more URLs per line, arbitrary text containing image links, a JSON array/object, or a CSV with a header row.
Which images end up in the ZIP?
Only images that are both selected and successfully loaded. Failed images (for example, CORS-restricted ones) cannot be packaged, and the tool warns that there are no selected, loaded images. The ZIP is stored without compression, and duplicate filenames are renamed to forms like a-2.png.
Are URLs or images uploaded to this tool's server?
No. URL parsing happens locally, and your browser fetches each image directly from its host. The tool does not proxy downloads or store images; thumbnails and ZIPs are generated only after the browser successfully reads the content.