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: this one and every next one
jm -b https://shonenjumpplus.com/episode/13932016480028799982
# every previous one too: the whole work from one episode
jm -B https://shonenjumpplus.com/episode/13932016480028799982
# login
jm -u you@example.com https://piccoma.com/web/viewer/8195/1185884
# every link on a page that some extractor takes
jm -s https://shonenjumpplus.com/
# remember the work, then download what is new in every remembered work
jm -S -b https://shonenjumpplus.com/episode/13932016480028799982
jm patrol
Configuration
Use jm config / jm c.
jm c init
# asks for the username and password
jm c site shonenjumpplus.com
jm c site piccoma
jm c savedir ~/manga
jm c overwrite true
jm c bulk false
jm c both true # -B by default; turns bulk off, and the other way round
Patrol
jm -S remembers what it downloaded as a [[patrol]] entry in the config file,
and jm patrol / jm p goes through them: an episode is followed to the newest
one and the entry moves along to the first episode still locked (so a wait-to-read
episode is tried again next time), a series page is listed again, a -s page is
scanned again. Episodes already there are skipped, so only what is new gets
downloaded. jm patrol takes the download options (-d, -o, -q, ...) but no url.
patrol = [
{ url = "https://shonenjumpplus.com/episode/13932016480028799982", title = "SPY×FAMILY" },
{ url = "https://shonenjumpplus.com/", search = true },
...
]
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.3
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.3.tar.gz | 287.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| getjmanga-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 680.5 kB
Release files / getjmanga-0.0.3.tar.gz
| Download URL | getjmanga-0.0.3.tar.gz |
|---|---|
| Size | 287.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7296895b08c45f0de23231cda6b2b06b109968e6dce70e3b7a4e0411c8d56b67
|
|
BLAKE2b-256 checksum How to use checksums |
8ce400ff4a524b0e8c97fd1cc056b3add8e0132ea1ce58f314bd5c1f4bc021ab
|
| 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.3-py3-none-any.whl
| Download URL | getjmanga-0.0.3-py3-none-any.whl |
|---|---|
| Size | 393.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8006688538372f778841e941e8355b10d05459d9a1ec059d9dcb984ca38bd7bf
|
|
BLAKE2b-256 checksum How to use checksums |
dff820ee576dcebd9e3f4a278074cf91c82d9c74d9354534daa5d8f56d5a2f14
|
| 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}
|