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.2.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.2-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bato_downloader-7.2.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.2.tar.gz
Algorithm Hash digest
SHA256 fc39111e306afbab6870801d264abc6b2c4d9adb8d90113808a78ee3800037a3
MD5 172678091186a7fef58b3156171b612d
BLAKE2b-256 f6eeab568a35c006820a5518340a2d7cd3f3fdb143ed56e11630df38552c6b68

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bato_downloader-7.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9f5096cb15390d0a2c170a141ea135e6e321eee8b4fd07484d351b6c5c23c8fd
MD5 ad4608bbfa4b148ac830b4ff0dbd3e4d
BLAKE2b-256 1916b0f3bac0147d5f86af6df2ea82a851ef709f24e5ce86a8d15d10049f54e1

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