Getting Started

August 2, 2026 · View on GitHub

Install

pip install audiobooker

Optional extras:

ExtraInstallsEnables
[youtube]tutuboTheCybrarian, HorrorBabble, TheDustyTome, YoutubeChannelSource
[stealth]curl-cffiTLS-fingerprint transport to bypass bot protection
[test]pytest, vcrpy, pytest-vcrrunning the test suite
from audiobooker import search

for book in search("Dracula", max_per_source=3, timeout=30):
    print(f"[{book.score:.2f}] [{book.source}] {book.title}")
    print(f"  streams: {book.streams[:1]}")

search() queries all 7 web sources in parallel threads. Results arrive sorted by relevance score and deduplicated by title + authors.

Key objects

ObjectModulePurpose
AudioBookaudiobooker.baseUnified book dataclass: title, authors, chapters, streams
BookAuthoraudiobooker.baseAuthor name (first + last)
AudiobookNarratoraudiobooker.baseReader name
AudioBookChapteraudiobooker.baseChapter with offset, runtime, stream URL
AudioBookSourceaudiobooker.scrappersBase class for all scrapers
BookIndexaudiobooker.indexSQLite offline index

Search methods

from audiobooker import search, search_by_title, search_by_author, search_by_tag, search_by_narrator

search("Poe")                          # title + author + tag, weighted
search_by_title("The Raven")
search_by_author("Edgar Allan Poe")
search_by_tag("horror")
search_by_narrator("Frank Muller")

All accept sources, max_per_source, timeout, deduplicate. See search.md for details.

Single-source

from audiobooker.scrappers.librivox import Librivox

lv = Librivox()
for book in lv.search_by_author("Lovecraft"):
    print(book.title, book.runtime, "s")

mediavocab conversion

from audiobooker import search, audiobook_to_release

book = next(search("Dracula", max_per_source=1))
release = audiobook_to_release(book)
print(release.work.title, release.license)

See converters.md for the full field mapping.

CLI

audiobooker search "Sherlock Holmes" -n 5 -v
audiobooker index build
audiobooker index search "Lovecraft" --method search_by_author
audiobooker cache download "Dracula" --source Librivox
audiobooker cache play "Dracula"

Home · Unified Search →