Skip to main content

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)

Source distribution for vooks-catalog 1.0.0
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)

Table of built distributions (wheels) for vooks-catalog 1.0.0
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

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