Skip to main content

getjmanga

PyPI CI

ghcr size

Retrieve and save images from Japanese web comic sites.

Do not redistribute the downloaded images. Keep them for private use.

Supported sites

See docs/SUPPORTED_SITES.md.

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/

# numbered pages: 1 to 3, or from 1 on until a page has nothing new
jm -s "https://comic-ryu.jp/series/list/up/[1-3]"
jm -s "https://comic-ryu.jp/series/list/up/[1-]"

# 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

jm c patrol https://shonenjumpplus.com/episode/13932016480028799982
jm c patrol -s https://shonenjumpplus.com/

Patrol

jm -S adds what it downloads to a list of works to watch for new episodes in the config file.

jm c patrol <url> adds a url to the list but does not download it.

jm p then goes through the list. It skips the episodes that are already saved, so it downloads only what is new.

What jm p does with an entry depends on what the entry is:

  • For an episode, it follows the next links to the newest episode. The entry then moves to the first episode that is still locked. As a result, a wait-to-read episode gets one more try next time.
  • For a series page, it reads the episode list again.
  • For a page stored with -s, it scans the links again.
patrol = [
  { url = "https://shonenjumpplus.com/episode/13932016480028799982", title = "阿波連さんははかれない" },
  { url = "https://takecomic.jp/series/3f846451aff2d/1", title = "メイドインアビス" },
  { url = "https://shonenjumpplus.com/", search = true },
  ...
]

Library

from getjmanga import Downloader, find_extractor

url = "https://takecomic.jp/episodes/74f33031e13cd"
extractor = find_extractor(url)() # returns `Comici`
result = Downloader(extractor, "out").download(url)
print(result.status, result.save_dir, result.episode.next_url)

An extractor on its own reads the site and writes nothing:

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

MIT License

Release files for getjmanga 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for getjmanga 0.0.4
File Size Uploaded
getjmanga-0.0.4.tar.gz 288.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for getjmanga 0.0.4
File Interpreter ABI Platform
getjmanga-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 683.8 kB

Release files / getjmanga-0.0.4.tar.gz

Download URL getjmanga-0.0.4.tar.gz
Size 288.8 kB
Tags Source
SHA-256 checksum
How to use checksums
13d6ecb696532151fe9aba326b39eb4a6bfe69332095278325a048bc064508c2
BLAKE2b-256 checksum
How to use checksums
96d4fd48b85cf6638417edbb5707c915986840d4bd19a52650141eac22f56336
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.4-py3-none-any.whl

Download URL getjmanga-0.0.4-py3-none-any.whl
Size 395.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
18c5726c3cb2b916d30b6dabf3e5dcee53baee81b7889b949d13a020b4f16614
BLAKE2b-256 checksum
How to use checksums
c9c38465fd3e00e475e4a6511c3c1b33adb1b25253b0c93f911acbe872dad3f1
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 history Release notifications | RSS feed

0.1.0

2 release files

This release

0.0.4 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page