A graphical tool specifically designed for downloading files from "Index of" pages, making it easy to scan and download all files from directory listings.
- 📂 Specialized in handling "Index of" type web pages
- 🔍 Recursive directory structure scanning
- ✅ Selective file downloading
- ⏸️ Support pause/resume downloads
- 🌐 HTTP/HTTPS protocol support
- 📊 Real-time download progress display
- 🗂️ Automatic folder structure creation
- 🔄 Download resume capability
- Automatic website directory structure scanning
- Display file sizes and types
- Support scan pause/resume
- Real-time scanning progress display
- Automatic identification of all file types
- File type statistics and filtering
- One-click select/deselect specific types
- File type association selection
- Multi-threaded parallel downloads
- Adjustable concurrent download count
- Support pause/resume downloads
- Preserve original directory structure
- Display download progress and speed
- File sorting (by name/size/type)
- Directory expand/collapse
- Select all/deselect all
- Custom download location
- Enter the website URL to scan
- Click "Scan" to start website scanning
- Select file types and specific files to download
- Choose download location (optional)
- Click "Download Selected Files" to start downloading
-
Right-click menu:
- Select all/Deselect all
- Expand/Collapse all directories
-
File type filtering:
- Click file type checkboxes to select/deselect
- Use Select all/Deselect all buttons for quick operations
- Python 3.10 or higher
- Supports Windows, macOS, Linux
- When installing Python, check "tcl/tk and IDLE"
- If not checked, re-run installer and modify
# Install Python and Tkinter using Homebrew
brew install python-tk@3.10# Ubuntu/Debian
sudo apt-get install python3-tk
# Fedora
sudo dnf install python3-tkinter
# Arch Linux
sudo pacman -S tkPrefer uv for faster, reproducible installs:
# Install uv (one-time)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install required packages
uv pip install -r requirements.txt# Run with uv
uv run python index_ripper.pyYou can download prebuilt executables from GitHub Actions artifacts:
- Windows: IndexRipper.exe
- macOS (Intel and Apple Silicon): IndexRipper.app
- Linux (x86_64): IndexRipper
Find them under Actions → "Build Executables (uv + PyInstaller)" → the latest successful run → Artifacts.
- Direct link to workflow runs: CI Workflow
- Latest successful runs: Actions
Notes:
- macOS: The app is not signed/notarized. You may need to right-click → Open the first time, or run
xattr -dr com.apple.quarantine IndexRipper.app. - Linux: Mark the file executable if needed:
chmod +x ./IndexRipper. - Using prebuilt binaries does not require a Python installation.
If you see "can't be opened" or "cannot be verified":
- Try Finder (recommended first):
- Right-click
IndexRipper.app→ Open → Click Open in the dialog. - Or go to System Settings → Privacy & Security → General → Click "Open Anyway" if shown.
- Remove quarantine attribute (Gatekeeper flag) from Terminal:
xattr -dr com.apple.quarantine "/path/to/IndexRipper.app"- Grant executable permission (inside the .app Contents/MacOS):
chmod +x "/path/to/IndexRipper.app/Contents/MacOS/IndexRipper"- Launch from Terminal (to observe logs for troubleshooting):
"/path/to/IndexRipper.app/Contents/MacOS/IndexRipper"Tip: Replace /path/to with your actual download location (e.g., ~/Downloads).
Build platform-specific executables with uv + PyInstaller.
Windows (PowerShell):
uv pip install -r requirements.txt pyinstaller pillow
uv run pyinstaller --onefile --windowed --icon=app.png --name=IndexRipper `
--hidden-import tkinter --hidden-import tkinter.ttk index_ripper.pymacOS/Linux (bash):
uv pip install -r requirements.txt pyinstaller pillow
# macOS .app
uv run pyinstaller -F --windowed --name=IndexRipper \
--hidden-import tkinter --hidden-import tkinter.ttk --icon=app.png index_ripper.py
# Linux single binary
uv run pyinstaller --onefile --windowed --name=IndexRipper \
--hidden-import tkinter --hidden-import tkinter.ttk --icon=app.png index_ripper.py- Ensure sufficient disk space
- Adjust concurrent download count when downloading many files
- Some websites may have access restrictions or require authentication
- Recommended to use with a stable internet connection
MIT License
If you encounter "No module named '_tkinter'" error:
- Windows: Reinstall Python, ensure "tcl/tk and IDLE" is checked
- macOS: Run
brew install python-tk@3.10 - Linux: Install tkinter package for your distribution
- If interface displays abnormally, it might be a DPI scaling issue
- Windows users can right-click Python.exe → Properties → Compatibility → Change high DPI settings, and enable high DPI scaling override