Mangadex downloader written in python
Go to file
Ivan Schaller 4911f02303
check code / check-docs (push) Successful in 6s Details
check code / check-code-py38 (push) Successful in 1m28s Details
check code / check-code-py39 (push) Successful in 2m55s Details
check code / check-code-py310 (push) Successful in 3m40s Details
check code / scan-code-py311 (push) Successful in 9m41s Details
check code / check-code-py311 (push) Successful in 21s Details
run scheduled tests / check-code-py311 (push) Successful in 7m13s Details
Merge pull request 'Update dependency shellcheck to v0.10.0' (#76) from renovate/shellcheck-0.x into master
Reviewed-on: #76
2024-04-16 12:40:49 +02:00
.gitea/workflows Update sonarsource/sonarqube-scan-action action to v2.0.2 2024-04-04 20:14:07 +02:00
.github/ISSUE_TEMPLATE Update issue templates 2022-06-20 16:29:54 +02:00
contrib update ruff settings and fix lint violations 2024-02-21 13:35:42 +01:00
docker fix container build 2024-02-01 15:36:53 +01:00
docs update readme links 2023-02-22 21:41:23 +01:00
src/mangadlp Bump version 2.4.0 → 2.4.1 2024-02-01 15:54:39 +01:00
tests update ruff settings and fix lint violations 2024-02-21 13:35:42 +01:00
.gitignore fix black error 2023-02-11 13:16:20 +01:00
.tool-versions Merge pull request 'Update dependency shellcheck to v0.10.0' (#76) from renovate/shellcheck-0.x into master 2024-04-16 12:40:49 +02:00
CHANGELOG.md update changelog 2024-02-01 15:54:33 +01:00
LICENSE update to ruff formatter and fix py3.8 compatibility 2024-02-01 13:59:45 +01:00
MANIFEST.in update to ruff formatter and fix py3.8 compatibility 2024-02-01 13:59:45 +01:00
README.md update badges in readme [skip ci] 2024-02-01 15:59:25 +01:00
justfile update ruff settings and fix lint violations 2024-02-21 13:35:42 +01:00
manga-dlp.py fix tests and workflows 2024-02-01 14:22:25 +01:00
mangas.txt add docker container 2021-12-24 16:30:50 +01:00
pyproject.toml fix pyproject coverage 2024-02-21 13:38:37 +01:00
renovate.json update to ruff formatter and fix py3.8 compatibility 2024-02-01 13:59:45 +01:00
requirements.txt update requirements 2023-02-13 19:19:03 +01:00
sonar-project.properties update to ruff formatter and fix py3.8 compatibility 2024-02-01 13:59:45 +01:00

README.md

manga-dlp - python script to download mangas

Full docs: https://manga-dlp.ivn.sh

Code Analysis

Coverage Bugs Maintainability Rating Reliability Rating Security Rating

Meta

Formatter Linter Types Tests Coverage License Compatibility


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 --format "".

Currently Supported sites

Features (not complete)

  • Metadata support with ComicInfo.xml
  • Json caching
  • Custom hooks after/before each download
  • Custom chapter name format
  • Volume support
  • Multiple archive formats supported (cbz,cbr,zip,none)
  • Language selection
  • Download all chapters directly
  • And others...

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)

python3 -m pip install manga-dlp # download the package from pypi

python3 -m mangadlp <args> # start the script as a module
OR
manga-dlp <args> # call script directly
OR
mangadlp <args> # call script directly

With docker

See the docker README

Options

Usage: manga-dlp.py [OPTIONS]

Script to download mangas from various sites

Options:
--help                          Show this message and exit.
--version                       Show the version and exit.
source: [mutually_exclusive, required]
-u, --url, --uuid TEXT        URL or UUID of the manga
--read FILE                   Path of file with manga links to download. One per line
verbosity: [mutually_exclusive]
--loglevel INTEGER            Custom log level
--warn                        Only log warnings and higher
--debug                       Debug logging. Log EVERYTHING
-c, --chapters TEXT             Chapters to download
-p, --path PATH                 Download path  [default: downloads]
-l, --language TEXT             Manga language  [default: en]
--list                          List all available chapters
--format [cbz|cbr|zip|pdf|]     Archive format to create. An empty string means don't archive the folder  [default: cbz]
--name-format TEXT              Naming format to use when saving chapters. See docs for more infos  [default: {default}]
--name-format-none TEXT         String to use when the variable of the custom name format is empty
--forcevol                      Force naming of volumes. For mangas where chapters reset each volume
--wait FLOAT                    Time to wait for each picture to download in seconds(float)  [default: 0.5]
--hook-manga-pre TEXT           Commands to execute before the manga download starts
--hook-manga-post TEXT          Commands to execute after the manga download finished
--hook-chapter-pre TEXT         Commands to execute before the chapter download starts
--hook-chapter-post TEXT        Commands to execute after the chapter download finished
--cache-path PATH               Where to store the cache-db. If no path is given, cache is disabled
--add-metadata / --no-metadata  Enable/disable creation of metadata via ComicInfo.xml  [default: add-metadata]

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. And more infos and tools are in the contrib README.md

Otherwise, you can open an 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 an issue with a description of the problem.

TODO's

  • Make docker container for easy distribution --> Dockerhub
  • Automate release --> Done with woodpecker-ci
  • Make pypi package --> Done with release 2.1.7
  • Add more supported sites