Bulk-downloading clean, high-resolution images from an Excel list sounds complicated — but the open-source Python tool Universal Google Image Bulk Downloader Pro by hariompatel61 makes it a five-minute setup. Here's exactly how to get it running.
Prerequisites
Before you start, make sure you have:
- Python 3.8+ installed
- Google Chrome installed on your machine (the tool automates a real Chrome browser under the hood)
Step 1: Clone the Repository
Open a terminal and run:
git clone https://github.com/hariompatel61/universal-image-downloader.git
cd universal-image-downloader
Step 2: Install Dependencies
The project ships with a requirements.txt covering everything it needs:
undetected-chromedriver>=3.5.5
selenium>=4.21.0
pandas>=2.0.0
openpyxl>=3.1.2
Pillow>=10.0.0
requests>=2.31.0
Install them all in one line:
pip install -r requirements.txt
Step 3: Prepare Your Data File
The tool expects an Excel (or CSV) file listing the items you want images for. A simple one-column list of item names works, but you can also include a category column for more targeted search results — the tool has smart header detection built in, so messy sheets aren't a dealbreaker.
Step 4: Configure config.json
On first run, the script generates a config.json file. This is where the real customization happens — you can set:
-
premium_sites: which stock photo sites to prioritize (Freepik, Unsplash, Pexels, Pixabay by default) -
min_width/min_height: minimum acceptable image resolution -
jobs: an array of tasks, each pointing at a different data file, with its ownsearch_context(e.g., "Indian food dish") andfallback_filters(e.g.,-recipe -video -youtube) to keep results clean
This job-queue structure means you can process several spreadsheets — say, a food menu and a clothing catalog — in a single run, each with different search logic.
Step 5: Run It
Fire up the script (or use the included RUN_DOWNLOAD.bat on Windows for a one-click start). On the very first run, you'll get about 10 seconds to manually solve a CAPTCHA if one appears. After that, your session cookies are saved in a local chrome_profile/ folder, so you won't be prompted again on future runs.
Handling Common Snags
The project's README includes a small but useful troubleshooting section:
-
SessionNotCreatedException: usually a Chrome/driver version mismatch. Open the script and updateversion_main=XXXinsideinit_driver()to match your installed Chrome version. - Item skipped unexpectedly: the script won't re-download files that already exist in your output folder. Delete the old file if you want a fresh copy.
That's It
Once configured, the script runs hands-free — parsing your spreadsheet, searching, filtering, and saving images into the output folder you specified, while respecting built-in rate limits (roughly 10–15 requests per minute) so you don't get your IP banned for hammering search engines.
Full docs and source: github.com/hariompatel61/universal-image-downloader
Top comments (0)