A modular, threaded manga downloader for MangaBuddy with an interactive CLI and a sleek GUI. This powerful tool allows you to easily download your favorite manga series from MangaBuddy.com with high-speed parallel downloads and multiple output formats. Whether you prefer the command-line interface or the modern graphical user interface, this downloader provides a seamless experience for all your manga reading needs.
- Interactive CLI: Easy-to-use command-line interface built with Rich and Typer
- Sleek GUI: Modern PyQt6-based graphical user interface with dark theme
- Flexible Chapter Selection: Download single chapters, a range of chapters, or all chapters
- Multiple Formats: Convert downloaded chapters to PDF or CBZ, or keep images only
- Configurable Cleanup: Option to automatically delete original images after conversion
- Parallel Downloads: Multi-threaded chapter downloads with concurrent image downloads for speed
- Robust Error Handling: Retry mechanisms and proper error messages for failed downloads
- Lightweight Scraping: Uses direct HTTP parsing (
httpx) with no browser automation dependency - CBZ Metadata: Automatically embeds a
ComicInfo.xmlfile with manga details (title, summary, genre, etc.) into CBZ files.
-
Clone the repository:
git clone https://github.com/Yui007/mangabuddy_downloader.git cd mangabuddy_downloader -
Install dependencies:
pip install -r requirements.txt
Run the interactive CLI:
python main.pyFollow the on-screen prompts to:
- Enter the MangaBuddy URL for the manga you want to download
- Choose which chapters to download (single, range, or all)
- Select the conversion format (PDF, CBZ, or none)
- Decide whether to delete images after conversion
Launch the sleek graphical interface:
python gui.pyThe GUI provides all the same functionality as the CLI with a modern, user-friendly interface:
- Visual chapter selection with checkboxes
- One-click download buttons
- Real-time progress tracking
- Detailed download log
Downloads will be saved in the downloads/ directory, organized by manga title and chapter.
You can adjust settings in config.py:
| Setting | Description | Default |
|---|---|---|
MAX_CHAPTER_THREADS |
Maximum number of chapters to download concurrently | 5 |
MAX_IMAGE_THREADS |
Maximum number of images to download concurrently within a chapter | 10 |
DOWNLOAD_PATH |
Base directory for downloads | ./downloads/ |
DELETE_IMAGES_AFTER_CONVERSION |
Default choice for deleting images after conversion | False |
RETRY_ATTEMPTS |
Number of times to retry a failed download | 3 |
HTTP_TIMEOUT |
HTTP timeout in seconds for page/image requests | 20 |
mangabuddy_downloader/
├── main.py # Interactive CLI entry point
├── gui.py # PyQt6 GUI module
├── downloader/
│ ├── __init__.py
│ ├── scraper.py # Scrapes manga details/chapters and chapter images via HTTP + HTML parsing
│ ├── download.py # Handles async chapter and image downloads with retries
│ ├── converter.py # Converts images to PDF or CBZ
│ ├── metadata.py # Generates ComicInfo.xml for CBZ files
│ └── utils.py # Helper functions
├── config.py # Configuration settings
├── requirements.txt # Python dependencies
This project is licensed under the MIT License - see the LICENSE file for details.