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 xbat.tv (formerly bato.to)

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://xbat.tv/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 or xbat and /title/
  • Example: https://xbat.tv/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-7.1.tar.gz (33.7 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-7.1-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for bato_downloader-7.1.tar.gz
Algorithm Hash digest
SHA256 29341a897ab3b39426b09bdb246a81562d28eb3306dc49b7aa08679ade79f1fe
MD5 74f17f2d7514e7f34c2513dadc45d584
BLAKE2b-256 1b6759d31aecb41e1406a118d7ae0bcd387bbaa423bf859bf4056861522d005e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bato_downloader-7.1-py3-none-any.whl
  • Upload date:
  • Size: 42.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.6

File hashes

Hashes for bato_downloader-7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 622e62ba9d5c30e47899ad897d5b0eb452c906fb92a4e22385464e642b7c66be
MD5 ed2701e9818f41b1b5ed0d337a6babbc
BLAKE2b-256 7681bf4c72ba52e39a5e506b28e003c5e857fd0dcb444ca9ef5b4edc5f9227ec

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