Batch download "the first file" from Dropbox shared folders using Excel file input.
Install dependencies first (you should use venv):
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtCreate an Excel file (.xlsx) with these columns (column's order does not matter):
UPC- Unique identifier (used as filename)IMAGES LINK- Dropbox shared folder URLCATEGORY(optional) - Organize files into subdirectories
See products.xlsx for an example Excel file.
The Dropbox folder link should look like this when accessed:
# Single-threaded download
python cli.py products.xlsx output/
# Multi-threaded download (4 threads)
python cli.py products.xlsx output/ --threads 4
# Auto-retry failed downloads
python cli.py products.xlsx output/ --retry
# Enable debug mode
python cli.py products.xlsx output/ --debug| Flag | Description | Example |
|---|---|---|
-t, --threads N |
Number of parallel download threads | --threads 4 |
-r, --retry [N] |
Auto-retry failed downloads (unlimited if no value, or max N attempts) | --retry or --retry 3 |
-d, --debug |
Enable verbose debug output | --debug |
--no-categories |
Ignore CATEGORY column and save all files to root output directory | --no-categories |
-h, --help |
Show help message | --help |
- Multi-threaded downloads - Download multiple files in parallel
- Auto-retry - Automatically retry failed downloads
- Skip existing files - Avoids re-downloading files that already exist
- Progress tracking - Real-time progress bars with tqdm
- Failed download tracking - Creates
failed_*.xlsxfor easy retry
- Python 3.10+ (I tested this on Python 3.10)
- Chrome browser (for Selenium)
- ChromeDriver (should be installed automatically with Selenium)
Python, Pandas, Selenium, ChromeDriver, tqdm