A modern, fast, and asynchronous MangaKatana downloader featuring both a gorgeous PyQt6 GUI and an interactive Rich CLI. Built without Selenium, it uses clean, lightweight HTTP requests for optimal speed and responsiveness.
- 🚀 Dual Interfaces: Sleek PyQt6 desktop GUI and interactive CLI menu.
- ⚡ Concurrent Downloads: Multithreaded page-by-page image downloading with adaptive speed throttling based on connection stability.
- 🔄 Smart Resume: Skips existing pages to easily resume interrupted downloads.
- 📦 Multi-Format Exporter: Save chapters in several formats:
- Raw Image Folder
- CBZ / ZIP
- PDF (custom scale-to-page per image, automatic RGB conversion)
- EPUB (fully styled responsive ebook format with a clean black background)
- ⚙️ Configurable Delays: Custom request timeouts and politeness delays to prevent IP bans.
- 🔍 Advanced Search: Live search by manga name or author across multiple pages.
- 📂 Detailed Info: Complete manga metadata retrieval (cover art, alternate names, author, status, genres, full chapter list).
This project uses uv for fast Python package management, but can also be installed using standard pip.
-
Clone the repository:
git clone https://github.com/Yui007/mangakatana-downloader.git cd mangakatana-downloader -
Sync/Create virtual environment:
uv sync
- Clone and install locally:
git clone https://github.com/Yui007/mangakatana-downloader.git cd mangakatana-downloader pip install -e .
Launch the modern PyQt6 desktop app with a dark theme:
# Using uv
uv run python -m mangakatana_downloader.gui
# Using standard Python
python -m mangakatana_downloader.guiLaunch the terminal-based interactive picker menu using any of the following commands:
# 1. Direct command (if installed/linked)
mangakatana-downloader
# 2. Via main package module
python -m mangakatana_downloader
# 3. Direct interactive module entry point
python -m mangakatana_downloader.cli.interactiveFor scripting and advanced usage, run the CLI directly with subcommands:
# 1. Search manga
mangakatana-downloader search "Solo Leveling" --by m_name --pages 1
# 2. View details & chapter list
mangakatana-downloader info "https://mangakatana.com/manga/solo-leveling.21708"
# 3. Direct download chapters (e.g., chapters 1-5, format: pdf, delete source images after export)
mangakatana-downloader download "https://mangakatana.com/manga/solo-leveling.21708" -c 1-5 -f pdf --delete-afterCopy settings.example.json to settings.json in the root folder to customize default settings:
{
"download_dir": "./downloads",
"chapter_delay": 0.3,
"concurrent_downloads": 4,
"concurrent_image_downloads": 4,
"export_format": "folder",
"delete_after_export": false
}download_dir: Destination folder for manga.chapter_delay: Polite delay (in seconds) between requesting subsequent pages/chapters.concurrent_downloads: Number of concurrent chapter downloads.concurrent_image_downloads: Number of concurrent image/page downloads per chapter.export_format: Export format (options:folder,cbz,zip,pdf,epub).delete_after_export: Automatically deletes raw images folder after compiling CBZ/ZIP/PDF/EPUB.
mangakatana-downloader/
├── src/
│ └── mangakatana_downloader/
│ ├── core/ # Scraper, models, downloader, exporter, and configuration
│ ├── cli/ # Argument parser & Rich-based interactive interface
│ ├── gui/ # PyQt6 main application, custom tabs, worker threads, and styling
│ └── utils/ # Genre mapping & general helpers
├── docs/ # Extended architecture and API documentation
├── GUI.png # UI screenshot
└── pyproject.toml # Project metadata & dependency definitions
Distributed under the MIT License.
