vooks-catalog
Official Python client for the Vooks Public Catalog API: a library of ad-free animated read-along storybooks, audiobooks and ebooks for children roughly ages 2 to 8.
Reads need no credential. No key, no registration, no form. A token only raises the rate limit from 600 to 3,000 requests a minute and unlocks catalog exports.
No runtime dependencies. A dependency in a published SDK is a dependency in every
project that installs it, and urllib is enough for nine reads and one write.
pip install vooks-catalog
from vooks_catalog import VooksCatalog
vooks = VooksCatalog()
page = vooks.list_titles(q="dinosaurs", age=4, limit=5)
for title in page["data"]:
print(title["title"], title["url"])
Pagination
list_titles, list_topics and titles are cursor-paginated. list_plans is not:
there are four plans and it returns them all.
titles() follows the cursor for you. Prefer list_titles when you only need the first
page, because this makes a request per page.
for title in vooks.titles(language="spanish"):
print(title["title"])
Errors
An HTTP error response raises VooksApiError, carrying the API's stable
machine-readable code. Branch on that, not on the message.
A transport failure, where the request never got an answer, raises whatever urllib
raised: there is no status or code to report, so wrapping it would invent one.
from vooks_catalog import VooksApiError
try:
vooks.get_title("no-such-slug")
except VooksApiError as error:
if error.code == "not_found":
...
print(error.status, error.code, error.retry_after_seconds)
retry_after_seconds is set when the server sent a Retry-After, in either form RFC
9110 allows. A date rounds up, so a date 400ms away gives 1, never 0. A literal
Retry-After: 0 is kept as 0. It is None when the server sent no header, when the
value will not parse, or when the date has already passed, because "said nothing" and
"retry now" are different answers.
Sandbox
A fixed, tiny catalog that never changes and never touches the live library.
from vooks_catalog import VooksCatalog, SANDBOX_BASE_URL
sandbox = VooksCatalog(base_url=SANDBOX_BASE_URL)
Command line
vooks search dinosaurs --age 4
vooks title 10-little-fish
vooks topics
vooks plans
vooks search bedtime --json
Reading on
Metadata
Release files for vooks-catalog 1.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 | Provenance | Actions |
|---|---|---|---|---|
| vooks_catalog-1.0.0.tar.gz | 8.5 kB | Without provenance | Details for vooks_catalog-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| vooks_catalog-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for vooks_catalog-1.0.0-py3-none-any.whl |
Total release size: 16.5 kB
Release files / vooks_catalog-1.0.0.tar.gz
| Download URL | vooks_catalog-1.0.0.tar.gz |
|---|---|
| Size | 8.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3fd51460a6e779196778237d7b8f64bc4c59608ebc52ef52157c01d2d49b8dd8
|
|
BLAKE2b-256 checksum How to use checksums |
6706767682688175da4f188484296a7025e4e3889cf39a445563b5453cac0004
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / vooks_catalog-1.0.0-py3-none-any.whl
| Download URL | vooks_catalog-1.0.0-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d8b79b7d693abb97c64454b147f7a56e4d699c991d5bd9b0cbeb53a4aaac0ca9
|
|
BLAKE2b-256 checksum How to use checksums |
6d9b094b3626752747677360165ad385e7b4a5d4693718354e444aa1aaa8feb6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for vooks-catalog 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.