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.0.0.tar.gz (33.5 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.0.0-py3-none-any.whl (42.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bato_downloader-7.0.0.tar.gz
  • Upload date:
  • Size: 33.5 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.0.0.tar.gz
Algorithm Hash digest
SHA256 f5d979e94a577038779197b23c0724a5c9bb5ad31e092e3088bec531dd422a60
MD5 14e9fa4635e3a3457998904e3bb49f4a
BLAKE2b-256 6dda2410c44ef9b18369c858ff4fc2d851969463e8daacff69264f8c2798a618

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bato_downloader-7.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62ae09a2cc8958ec283ddb0703698885a131d7ab4698910cb795d140bd7ec7aa
MD5 59f34d9a00ed39b96f8439f9e68bb118
BLAKE2b-256 04c1d2dd261acbbf46fd6bfb26ea0e3e348d94d75a374f7a3965df8d48d34f7a

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