Downloader¶
Downloads pages from a gallery with optional per-page translation and PDF export.
from nhentai import NHentai, Downloader, NekoTranslator, Engine, Language
gallery = NHentai("639456")
# Download only
dl = Downloader(gallery, output_dir="./downloads", workers=8)
paths = dl.download()
# Download + translate + PDF
translator = NekoTranslator()
dl = Downloader(
gallery,
output_dir="./downloads",
translator=translator,
translate_lang=Language.INDONESIAN,
translate_engine=Engine.DEEPL,
)
pdf = dl.download(make_pdf=True)
If a page fails to translate, the original image is saved instead (silent fallback).
Proxy Support¶
The downloader supports proxy lists for enhanced connectivity. Proxy lists can be provided as local files or URLs.
Using Local Proxy List File¶
dl = Downloader(
gallery,
output_dir="./downloads",
proxy_list=["http://127.0.0.1:8080", "socks5://10.0.0.1:1080"]
)
Using URL-based Proxy List¶
dl = Downloader(
gallery,
output_dir="./downloads",
proxy_list=["https://example.com/proxies.txt"]
)
The downloader will automatically fetch proxy lists from URLs and use them for requests.
nhentai.downloader.Downloader(gallery: NHentai, output_dir: str | Path = '.', workers: int = 4, translator: Any | None = None, translate_lang: Language | str = Language.ENGLISH, translate_engine: str | Any = 'deepl', timeout: int = 30, proxy_list: list[str] | None = None)
¶
Downloads pages from an :class:NHentai gallery, with optional translation and PDF export.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
gallery
|
NHentai
|
Parsed gallery object. |
required |
output_dir
|
str | Path
|
Root directory for downloads. Gallery pages go into |
'.'
|
workers
|
int
|
Number of parallel download threads. |
4
|
translator
|
Any | None
|
Optional :class: |
None
|
translate_lang
|
Language | str
|
Target language for translation. |
ENGLISH
|
translate_engine
|
str | Any
|
Engine to use for translation. |
'deepl'
|
timeout
|
int
|
Per-request timeout in seconds. |
30
|
Source code in nhentai/downloader.py
download(make_pdf: bool = False, progress_callback: Callable[[int, int, str], None] | None = None) -> list[Path]
¶
Download all pages. Returns a list of saved file paths (or a single PDF path if make_pdf=True).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
make_pdf
|
bool
|
Compile pages into a PDF after downloading. Requires Pillow. |
False
|
progress_callback
|
Callable[[int, int, str], None] | None
|
Optional callback to report progress: (current, total, status). |
None
|
Raises:
| Type | Description |
|---|---|
DownloadError
|
If a page fails to download. |
RuntimeError
|
If |
Source code in nhentai/downloader.py
nhentai.downloader.DownloadError
¶
Bases: Exception
Raised when a page download fails.