Mangadex downloader written in python
Find a file
Ivan Schaller 516d0b74a1
All checks were successful
continuous-integration/drone/push Build is passing
fixed release.sh and added help dialog
2022-05-11 16:44:03 +02:00
.github/ISSUE_TEMPLATE Update issue templates 2021-12-25 13:51:33 +01:00
contrib update versions and readme + minor tweaks 2022-05-09 21:07:37 +02:00
docker changelog and fix versions. 2022-05-11 15:10:48 +02:00
mangadlp better interrupt handling and fixed some loop bugs 2022-05-11 14:23:42 +02:00
tests set test execution order 2022-05-11 16:12:03 +02:00
.coveragerc update tests and add coverage report 2022-05-10 16:38:14 +02:00
.drone.yml fixed release.sh and added help dialog 2022-05-11 16:44:03 +02:00
.gitignore update versions and readme + minor tweaks 2022-05-09 21:07:37 +02:00
CHANGELOG.md changelog and fix versions. 2022-05-11 15:10:48 +02:00
conftest.py update tests and add coverage report 2022-05-10 16:38:14 +02:00
LICENSE update versions and readme + minor tweaks 2022-05-09 21:07:37 +02:00
manga-dlp.py better interrupt handling and fixed some loop bugs 2022-05-11 14:23:42 +02:00
mangas.txt add docker container 2021-12-24 16:30:50 +01:00
MANIFEST.in update versions and readme + minor tweaks 2022-05-09 21:07:37 +02:00
README.md fix readme 2022-05-10 18:42:17 +02:00
release-files.txt fix gitea relase 2022-05-10 18:27:19 +02:00
release.sh fixed release.sh and added help dialog 2022-05-11 16:44:03 +02:00
renovate.json Update 'renovate.json' 2022-04-16 19:48:03 +02:00
requirements.txt add requirements 2021-12-22 14:35:07 +01:00
setup.py changelog and fix versions. 2022-05-11 15:10:48 +02:00
sonar-project.properties remove tests from sonar ignore list 2022-05-11 14:25:41 +02:00

manga-dlp

python script to download mangas

Build Status Quality Gate Status Coverage Bugs Code style: black

Description

A manga download script written in python. It only supports mangadex.org for now. But support for other sites is planned.

Before downloading a new chapter, the script always checks if there is already a chapter with the same name in the download directory. If found the chapter is skipped. So you can run the script on a schedule to only download new chapters without any additional setup.

The default behaiviour is to pack the images to a cbz archive. If you just want the folder with all the pictures use the flag --nocbz.

Currently Supported sites

Usage

Quick start

python3 manga-dlp.py \
          --url https://mangadex.org/title/a96676e5-8ae2-425e-b549-7f15dd34a6d8/komi-san-wa-komyushou-desu \
          --language "en" \
          --chapters "all"

With GitHub

git clone https://github.com/olofvndrhr/manga-dlp.git # clone the repository

cd manga-dlp # go in the directory

pip install -r requirements.txt # install required packages

# on windows
python manga-dlp.py <options>
# on unix
python3 manga-dlp.py <options>

With pip (pypi)

(not yet done)

With docker

See the docker README

Options

usage: manga-dlp.py [-h] [-u URL] [-c CHAPTERS] [-p PATH] [-l LANG] [--read READ] [--list] [--nocbz] [--forcevol] [--wait WAIT]
[--verbose]

optional arguments:
-h, --help                          Show this help message and exit
-u URL/UUID, --url URL/UUID         URL or UUID of the manga
-c CHAPTERS, --chapters CHAPTERS    Chapters to download
-p PATH, --path PATH                Download path. Defaults to "<script_dir>/downloads"
-l LANG, --language LANG            Manga language. Defaults to "en" --> english
--read READ                         Path of file with manga links to download. One per line
--list                              List all available chapters. Defaults to false
--nocbz                             Dont pack it to a cbz archive. Defaults to false
--forcevol                          Force naming of volumes. For mangas where chapters reset each volume
--wait WAIT                         Time to wait for each picture to download in seconds(float). Defaults 0.5
--verbose                           Verbose logging. Defaults to false

Downloads file-structure

.
└── <download path>/
    └── <manga title>/
        └── <chapter title>/

Example:

./downloads/mangatitle/chaptertitle(.cbz)

With the option --read you can specify a file with links to multiple mangas. They will be parsed from top to bottom one at a time. Every link will be matched for the right api to use. It is important that you only have one link per line, otherwise they can't be parsed.

Example:

# mangas.txt
link1
link2
link3

python3 manga-dlp.py --read mangas.txt --list

This will list all available chapters for link1, link2 and link3.

Set download path

With the option -p/--path you can specify a path to download the chapters to. The default path is <script_dir>/downloads. Absolute and relative paths are supported.

Example:

python3 manga-dlp.py <other options> --path /media/mangas

This will save all mangas/chapters in the path /media/mangas/<manga title>/<chapter name>

Contribution / Bugs

For suggestions for improvement, just open a pull request.

If you want to add support for a new site, there is an api template file which you can use.

Otherwise you can open a issue with the name of the site which you want support for. (not guaranteed to be implemented)

If you encounter any bugs, also just open a issue with a description of the problem.

TODO's

  • Make docker container for easy distribution --> Dockerhub
  • Make pypi package
  • Add more supported sites