Skip to main content

Comic/manga/webtoon downloader and converter to CBZ/EPUB/PDF

Project description

mandown

Supported Python versions Code style: black Checked with mypy Download from PyPI Download from the AUR Latest release License

Comic downloader and converter to CBZ, EPUB, and/or PDF as a Python library and command line application.

Supported sites

To request a new site, please file a new issue.

Installation

Install the package from PyPI:

pip3 install mandown

Install the optional large dependencies for some features of Mandown:

# image processing
pip3 install Pillow

# graphical interface (GUI)
pip3 install PySide6

Arch Linux users may also install the package from the AUR:

git clone https://aur.archlinux.org/mandown-git.git
makepkg -si

Or, to build from source:

Mandown depends on poetry for building.

git clone https://github.com/potatoeggy/mandown.git
poetry install
poetry build
pip3 install dist/mandown*.whl

Usage

mandown get <URL>

To convert the download contents to CBZ/EPUB, append the --convert option. To apply image processing to the downloaded images, append the --process option.

mandown get <URL> --convert epub --process rotate_double_pages

To download only a certain range of chapters, append the --start and/or --end options.

Note: --start and --end are inclusive, i.e., using --start 2 --end 3 will download chapters 2 and 3.

To convert an existing folder without downloading anything (like a stripped-down version of https://github.com/ciromattia/kcc), use the convert command.

mandown convert <FORMAT> <PATH_TO_FOLDER>

To process an existing folder without downloading anything, use the process command.

mandown process <PROCESS_OPERATIONS> <PATH_TO_FOLDER>

Where PROCESS_OPERATIONS is an option found from running mandown process --help.

Run mandown --help for more info.

Library usage

To just download the images:

import mandown

mandown.download("https://comic-site.com/the-best-comic")

To download and convert to EPUB:

import mandown

comic = mandown.query("https://comic-site.com/the-best-comic")
mandown.download(comic)
mandown.convert(comic, comic.metadata.title, "epub")

More advanced stuff:

import mandown

# load a previously downloaded comic...
comic = mandown.load("path/to/comic/folder")
print(comic.metadata, comic.chapters)

# ...OR fetch a comic from a source by URL
comic = mandown.query(url_to_comic)
print(comic.metadata, comic.chapters)

# download the first 10 chapters of comic to ./comic using 4 threads
mandown.download(comic, "./comic/", threads=4, end=10)

# apply image post-processing to comic images in ./comic
mandown.process("./comic/", options=["rotate_double_pages", "trim_borders"])

# convert comic located in ./comic to epub, storing it in ./epubs
mandown.convert(comic, "./comic/", "epub", "./epubs")

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

mandown-1.1.1.tar.gz (32.0 kB view hashes)

Uploaded Source

Built Distribution

mandown-1.1.1-py3-none-any.whl (40.1 kB view hashes)

Uploaded Python 3

Supported by

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