fshy

fshy / Debrid

LibriVox

librivox.org · Debrid · 1 record · JSON

LibriVox Debrid

★ qualifiesanonymousno cardDper-ip-shaping

librivox.org/api/info · public-domain audiobook library (metadata API + Internet Archive files) · debrid/librivox · JSON · compare

Free tierFree public-domain audiobooks, read by volunteers, with a JSON/XML catalogue API. The API caps a single response at 500 records ('Can no longer be set above 500', added 2026-09-26) and pages with offset.
unit unlimited; metered on none; The catalogue size is not published; the highest project id returned by sort_order=desc was 23017, which bounds it near 23,000 projects.
PriceUSD 0
Per-object capnot applicable: one MP3 per section, one ZIP per book. The ZIP is served by archive.org, so the object size is the Internet Archive item's size.
Retentionpermanent: public-domain recordings 'donated to the public domain', with the audio stored as Internet Archive items
EgressMetadata is free and unmetered from the API. The audio is not served by librivox.org: each record's url_zip_file points at archive.org/compress/<item>/..., so audio bytes are Internet Archive egress and inherit its per-IP shaping.
free_allowance: no byte allowance published
Identityanonymous No key and no account: the API answered an anonymous GET with 200 and 3,084 bytes for limit=2.
Limits
  • request-rate 500 records maximum per request; 'If you intend to access a large number of records this way, please be considerate, and add a delay between your requests.' source
  • per-ip-shaping audio is fetched from archive.org, which shapes the caller (measured 1.99-3.17 MiB/s on this machine) source
Bindingper-ip-shaping The API is metadata and would take minutes to walk at 500 records a request; the bytes come from archive.org, so the Internet Archive's per-IP ceiling is what decides a TiB-scale pull.
Interfacerest, cli GET https://librivox.org/api/feed/audiobooks with id, since, author, title, genre, fields, extended, coverart, limit, offset, format, sort_order. Parameters may be path segments instead of query strings.
Toolingcurl/python-requests; any HTTP client. No SDK and no rclone backend is needed because the metadata is a plain JSON API and the audio is a plain archive.org URL.
Composes withHarvest the catalogue through the API (a few hundred requests), then pull the MP3s from archive.org - the same egress path and the same shaping as any other Internet Archive item.
ReliabilityThe API changed in 2026-09-26 to cap limit at 500; older clients that asked for more are silently clamped rather than rejected.
NotesThe interesting part is where the bytes are not: librivox.org serves a small JSON catalogue and archive.org serves the audio. A plan that expects a fast audiobook mirror from this API alone will move metadata and no media.
Evidence rungdocumented The API contract is the vendor's own page and was exercised here for two records; the audio path is read from the record's url_zip_file field, not downloaded. Downloading one ZIP would raise it.
Checked2026-10-24 (live); stale on 2026-11-23
Parsed numbers
  • $.limits[1].value limit:per-ip-shaping 3.17 MiB
  • $.price_per_tb_month price-per-tb USD0.0 TB / month
Evidence (4)
datesourcewhat it proved
2026-10-23librivox.org/api/info'limit - ... Defaults to 50. Can no longer be set above 500', added 2026-09-26, and the 'add a delay between your requests' guidance
2026-10-23librivox.org/pages/about-librivox/'Librivox donates its recordings to the public domain' and the non-commercial, ad-free terms
2026-10-23probe:https://librivox.org/api/feed/audiobooks?limit=2&format=json&sort_order=desc200, 3,084 bytes of JSON; highest project id 23017, which bounds the catalogue near 23,000 projects
2026-10-23probe:https://librivox.org/api/feed/audiobooks?limit=1&format=jsonanonymous access works and the record carries url_zip_file pointing at archive.org/compress/<item>/
More fields (3)
{
 "max_limit": 500,
 "highest_project_id": 23017,
 "audio_host": "archive.org"
}