ranobelib-python-sdk
Async Python SDK for ranobelib.me: fetch title metadata, download chapters and volumes, and export to epub, fb2, txt, or pdf.
The SDK talks to the undocumented but open JSON API behind the site (api.cdnlibs.org,
part of the lib.social network) instead of scraping HTML.
Status: all the calls in the quickstart below are implemented — metadata, table of contents, single/bulk chapter and volume downloads, translation selection, and export to
"txt","fb2","epub", or"pdf"(cover + in-chapter illustrations embedded in epub/pdf). Raw API responses are cached to disk, and the underlying client bounds concurrency, paces requests, and retries 429/5xx with backoff.fmt="pdf"needs WeasyPrint's native dependencies (Pango/cairo/GTK3) installed on the system —pip install/uv addalone doesn't guarantee that on every platform; without them,export(fmt="pdf")raises the same "unknown format" error the other three formats don't. Authorization (private/18+/paid content) is out of scope — seeCLAUDE.mdfor the full architecture and design decisions behind all of this.
Installation
uv add ranobelib-python-sdk
or
pip install ranobelib-python-sdk
Requires Python 3.11+.
Quickstart
from ranobelib import RanobeLib
async with RanobeLib("https://ranobelib.me/ru/book/6712--high-school-dxd-novel") as lib:
info = await lib.get_info()
toc = await lib.get_table_of_contents()
chapter = await lib.get_chapter(volume=6, number="51.6")
volume = await lib.get_volume(volume=6)
chapters = await lib.get_chapters([(6, "51.6"), (6, "52")])
volumes = await lib.get_volumes([1, 2, 3])
translations = await lib.get_translations(volume=6, number="51.6")
chapter = await lib.get_chapter(volume=6, number="51.6", branch_id=...)
await lib.export(chapters, fmt="epub", path="output.epub")
This is the full current public API — everything above is implemented and works today.
Documentation
Full API reference and guides: https://LLIJIYAPNIK.github.io/ranobelib-python-sdk/
(built with mkdocs-material + mkdocstrings, deployed on push to main). CLAUDE.md
documents the full architecture, public API contract, and the reasoning behind the SDK's
design decisions.
License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ranobelib_python_sdk-0.1.0.tar.gz.
File metadata
- Download URL: ranobelib_python_sdk-0.1.0.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fae2db0c4dd5fe145d49102d8ee1746ee35007d2d0df5c0b4b1be733adb647aa
|
|
| MD5 |
ce72177371d516883cc8035ab0d1b5a4
|
|
| BLAKE2b-256 |
8ecdcfe65a771cc82363302c9c94abcac653c2d75ac7040d7af31aef7eb372f7
|
File details
Details for the file ranobelib_python_sdk-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ranobelib_python_sdk-0.1.0-py3-none-any.whl
- Upload date:
- Size: 28.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4fe4bb3c88e70e093e8985635741aad70fc85447d11dc44b28d77b0ecf4d31c
|
|
| MD5 |
3f6582ca070aaef06ce612a440e86d62
|
|
| BLAKE2b-256 |
52491f90289f1dc6d3a8eefd1cb6fac1d3e4bf83b903f66007e3f6834a5b976e
|