Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 MangaKatana Downloader

Python 3.11+ License: MIT UI

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.


🖥️ GUI Preview

MangaKatana Downloader GUI


✨ Features

  • 🚀 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).

🛠️ Installation

This project uses uv for fast Python package management, but can also be installed using standard pip.

Using uv (Recommended)

  1. Clone the repository:

    git clone https://github.com/Yui007/mangakatana-downloader.git
    cd mangakatana-downloader
  2. Sync/Create virtual environment:

    uv sync

Using standard pip

  1. Clone and install locally:
    git clone https://github.com/Yui007/mangakatana-downloader.git
    cd mangakatana-downloader
    pip install -e .

🚀 Usage

Graphical User Interface (GUI)

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.gui

Interactive CLI

Launch 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.interactive

Command-Line Arguments

For 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-after

⚙️ Configuration

Copy 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
}

Config Options:

  • 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.

📁 Repository Structure

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

📝 License

Distributed under the MIT License.

About

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.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages