Skip to main content

A beautiful manga downloader for Bato.to with PyQt6 GUI and Rich CLI

Project description

๐Ÿ“š Bato.to Manga Downloader

PyPI Python PyQt6 License

Beautiful manga downloader for bato.to, batotoo.com, and bato.si

Search, browse, and download your favorite manga with ease

GUI Screenshot


โœจ Features

๐Ÿ” Smart Search

  • Search by manga title
  • Card-based results with covers
  • Authors, genres & ratings display
  • Pagination support

๐Ÿ“ฅ Powerful Downloads

  • Concurrent chapter downloads
  • Parallel image fetching
  • Progress tracking
  • Resume support

๐Ÿ“ Multiple Formats

  • Images - Raw image files
  • PDF - Single file per chapter
  • CBZ - Comic book archive

๐ŸŽจ Two Interfaces

  • GUI - Beautiful PyQt6 interface
  • CLI - Interactive Rich terminal

๐Ÿš€ Installation

Option 1: Install from PyPI (Recommended)

# Install from PyPI
pip install bato-downloader

# Launch GUI
bato-downloader-gui

# Launch CLI
bato-downloader

โœ… That's it! All dependencies are installed automatically.

Option 2: Download Executables

Platform GUI CLI
Windows ๐Ÿ“ฅ BatoDownloaderGUI.exe ๐Ÿ“ฅ BatoDownloaderCLI.exe

Just download and run - no Python needed!


๐Ÿ–ฅ๏ธ Graphical User Interface

Search Manga Details Settings
Search by title View chapters Configure downloads
Cover previews Select multiple Set output format
One-click select Download progress Adjust concurrency

How to Use

  1. ๐Ÿ” Search - Enter manga name and press Search
  2. ๐Ÿ‘† Select - Click a result card to view details
  3. โ˜‘๏ธ Choose - Select chapters you want to download
  4. ๐Ÿ“ฅ Download - Click "Download Selected" and wait

๐Ÿ’ป Command-Line Interface

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚       ๐Ÿ“š BATO DOWNLOADER ๐Ÿ“š            โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Main Menu

  [1] ๐Ÿ“ฅ Download Manga by URL
  [2] ๐Ÿ” Search For Manga
  [3] โš™๏ธ  Settings
  [4] ๐Ÿšช Exit

Select option [1/2/3/4]:

Direct Commands

# Interactive mode
bato-downloader

# Search for manga
bato-downloader search "Solo Leveling"

# Download from URL
bato-downloader download "https://bato.si/title/81514-solo-leveling"

โš™๏ธ Configuration

Settings are saved in config.json:

Setting Options Default
๐Ÿ“ download_format images / pdf / cbz images
๐Ÿ“‚ output_directory Any path Current folder
โšก concurrent_chapters 1-10 3
๐Ÿ–ผ๏ธ concurrent_images 1-20 5
๐Ÿ’พ keep_images_after_conversion true / false true

๐Ÿ“ Project Structure

bato_downloader/
โ”œโ”€โ”€ ๐Ÿš€ main.py              # GUI entry point
โ”œโ”€โ”€ ๐Ÿ–ฅ๏ธ cli.py               # CLI entry point
โ”œโ”€โ”€ ๐Ÿ“ gui/
โ”‚   โ”œโ”€โ”€ main_window.py      # Main window
โ”‚   โ”œโ”€โ”€ workers.py          # Background threads
โ”‚   โ”œโ”€โ”€ styles.py           # Theme & colors
โ”‚   โ””โ”€โ”€ widgets/            # UI components
โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚   โ”œโ”€โ”€ config.py           # Settings
โ”‚   โ”œโ”€โ”€ scraper/            # Web scraping
โ”‚   โ””โ”€โ”€ downloader/         # Download logic
โ”œโ”€โ”€ ๐Ÿ”ง build_gui.bat        # Build GUI
โ”œโ”€โ”€ ๐Ÿ”ง build_cli.bat        # Build CLI
โ””โ”€โ”€ ๐Ÿ”ง build_all.bat        # Build both

๐Ÿ“ฆ Dependencies

Package Purpose
PyQt6 Modern GUI framework
Typer CLI framework
Rich Beautiful terminal output
Requests HTTP requests
Pillow Image processing

โ“ Troubleshooting

๐Ÿ–ผ๏ธ Cover images not loading
  • Check your internet connection
  • Covers load asynchronously, wait a moment
  • Try refreshing the search
โฑ๏ธ Download timeouts
  • Reduce concurrent_chapters in settings (try 1-2)
  • Reduce concurrent_images in settings
  • Check if the site is accessible
โŒ Invalid URL error
  • URL must contain bato and /title/
  • Example: https://bato.si/title/81514-solo-leveling
๐Ÿ“„ PDF conversion fails
pip install Pillow --upgrade

๐Ÿ› ๏ธ Development

Install from Source

# Clone the repository
git clone https://github.com/Yui007/bato_downloader.git
cd bato_downloader

# Install in development mode
pip install -e .

# Run directly
bato-downloader      # CLI
bato-downloader-gui  # GUI

# Or run scripts directly
python cli.py
python main.py

Building Executables

# Build GUI only
.\build_gui.bat

# Build CLI only
.\build_cli.bat

# Build both at once
.\build_all.bat

Output:

dist/
โ”œโ”€โ”€ BatoDownloaderGUI.exe   # ๐Ÿ–ผ๏ธ Windowed application
โ””โ”€โ”€ BatoDownloaderCLI.exe   # ๐Ÿ’ป Console application

๐Ÿ“œ License

This project is licensed under the MIT License

Made with โค๏ธ by Yui007

โญ Star this repo if you find it useful!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bato_downloader-6.0.0.tar.gz (33.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bato_downloader-6.0.0-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

File details

Details for the file bato_downloader-6.0.0.tar.gz.

File metadata

  • Download URL: bato_downloader-6.0.0.tar.gz
  • Upload date:
  • Size: 33.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.6

File hashes

Hashes for bato_downloader-6.0.0.tar.gz
Algorithm Hash digest
SHA256 5609c4be71c653311d4e6642205bf14929405d09daa7516b7a8fe6817e973ca8
MD5 7bba23aa7e4bc93d708c311f50ba3ed7
BLAKE2b-256 a2d5611de6d404493a379f9b7ebb995e494b00b3c3d4ec9611b12299a147c38a

See more details on using hashes here.

File details

Details for the file bato_downloader-6.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for bato_downloader-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f040c6c18bf514881eccc012ddf4ff36852708321a0c169e545495c2ecefc538
MD5 231b9513c4f14674c18550ffaea50c14
BLAKE2b-256 bf5d467c1c22a1f3fdcc945f996c0249fb7cdef23f473113fdff2b196be439ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page