getjmanga
Retrieve and save images from japanese web comic sites.
Note: Redistribution of downloaded image data is prohibited. Please keep it to private use.
Supported sites
Installation
# mise via github release
mise use -g github:eggplants/getjmanga
# mise via pipx
mise use -g pipx:getjmanga
# pipx
pipx install getjmanga
# pip
pip install getjmanga
Docker
docker pull ghcr.io/eggplants/getjmanga
docker run --rm -v "$PWD:/work" -w /work \
ghcr.io/eggplants/getjmanga https://takecomic.jp/episodes/74f33031e13cd
CLI
# one episode
jm https://takecomic.jp/episodes/74f33031e13cd https://piccoma.com/web/viewer/8195/1185884
# episodes in bulk
jm -b https://shonenjumpplus.com/episode/13932016480028799982
# login
jm -u you@example.com https://piccoma.com/web/viewer/8195/1185884
| Option | Description |
|---|---|
-b, --bulk |
follow every next episode |
-d DIR, --savedir DIR |
directory to save into (default: .) |
-f, --first |
download only the first page |
-o, --overwrite |
download again if it exists |
-m, --metadata |
save episode metadata as metadata.json |
-u ID, --username ID |
id or email address to log in with |
-p PW, --password PW |
password (prompted for if -u is given without it) |
-e NAME, --extractor NAME |
use this extractor instead of picking one by the url's host |
-c FILE, --config FILE |
config file holding site credentials (default: ~/.config/getjmanga/config.toml) |
-q, --quiet |
disable console output |
--list-extractors |
list every extractor, its URL shapes and its hosts |
Configuration
# site.<host>
[site."shonenjumpplus.com"]
username = "you@example.com"
password = "..."
# site.<extractor>
[site.comici-plus]
username = "comici-id"
password = "..."
[site.piccoma]
username = "you@example.com"
# no password: it is prompted for once per run
Library
from getjmanga import Downloader, find_extractor
url = "https://takecomic.jp/episodes/74f33031e13cd"
extractor = find_extractor(url)() # -> Comici
result = Downloader(extractor, "out").download(url)
print(result.status, result.save_dir, result.episode.next_url)
An extractor on its own reads without writing anything:
from getjmanga import Comici
comici = Comici()
for url in comici.series_urls("https://takecomic.jp/series/b167ea507d35f"):
episode = comici.episode(url)
print(episode.episode_title, len(episode.pages), episode.readable)
Writing an extractor
See docs/ADD_SITE.md.
License
Release files for getjmanga 0.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| getjmanga-0.0.0.tar.gz | 271.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| getjmanga-0.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 641.6 kB
Release files / getjmanga-0.0.0.tar.gz
| Download URL | getjmanga-0.0.0.tar.gz |
|---|---|
| Size | 271.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c3b26e5ca2cf0e4afdcc562cdefe455f768178fb4b3d7d446b16038683531437
|
|
BLAKE2b-256 checksum How to use checksums |
94ef554864c69619511f5c4e9647653b82a1e296aa28ad5fa31ee0758afaddbc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / getjmanga-0.0.0-py3-none-any.whl
| Download URL | getjmanga-0.0.0-py3-none-any.whl |
|---|---|
| Size | 370.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a1cb17ea42615d346850a2cf0320ff0fd553cde5fab28097ad7ad88ffe73842
|
|
BLAKE2b-256 checksum How to use checksums |
59199ca1e43110632232cbe2204cee1caec69fd37efa33dc4814091e9021f6ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|