Skip to content
Go back

LazyLibrarian + Readarr: Automating Your Book Library

By SumGuy 12 min read
LazyLibrarian + Readarr: Automating Your Book Library

Your Ebook Library Is a Crime Scene

You know the folder. Somewhere on your NAS there’s a directory called Books/ that started innocently enough and turned into this:

Books/
Brandon Sanderson - The Way of Kings.epub
way-of-kings-part2-final.mobi
Mistborn (1).epub
Mistborn_-_The_Final_Empire_unabridged.m4b
BRANDON SANDERSON - WORDS OF RADIANCE.EPUB
sanderson_stormlight_3_oathbringer.epub
tmp_download_452.azw3
unknown_author_2024-11-03.epub

No series ordering. Duplicate formats. Filenames that look like they were named by a cat walking across a keyboard. Metadata? What metadata? Half these files open in your reader with “Unknown Author” and a gray square where the cover should be.

The *arr ecosystem solved this for movies and TV years ago. Books got there too — just a bit more chaotically. For years the two serious options were LazyLibrarian and Readarr. They solved the same problem differently, and one of them had a rougher run than the other — to the point that in early 2026 the Servarr team officially retired Readarr. That changes the calculus a lot, but Readarr installs are still out there and the comparison is worth understanding before you commit. Let’s talk about it.


The Contenders

LazyLibrarian

LazyLibrarian is a Python-based, all-in-one book manager that handles ebooks, audiobooks, and comics. It’s been around for ages, survived multiple GitHub ownership transfers, and despite its “is this project dead?” vibes from the outside, it’s actively maintained by the DobyTang fork.

It does its own thing — different UI paradigm from the *arr stack, but it works, it’s stable, and now that Goodreads has killed off public API access entirely (the same thing that sank Readarr), LazyLibrarian’s fallback metadata sources like Open Library and GoogleBooks are doing the heavy lifting.

Readarr

Readarr was the official *arr-family book manager. If you’re already running Sonarr and Radarr, the UI, concepts, and quality profile system feel instantly familiar. The catch: as of early 2026, Readarr is officially retired. The Servarr team called it — the metadata became unusable after Goodreads killed off public access to its API, nobody had the time to rebuild it, and the community effort to switch to Open Library stalled out.

So why is it still in this comparison? Because plenty of working Readarr installs are still humming along, and the community didn’t just roll over. Third-party metadata mirrors like rreading-glasses have popped up to keep existing setups alive (use them entirely at your own risk — the Servarr team won’t support them). If you’ve already got Readarr running, it doesn’t instantly stop working. But you’re now firmly in unsupported, community-duct-tape territory. Going in fresh? Read the next section, then think hard.


Setting Up LazyLibrarian

Compose Stack

LazyLibrarian pairs well with Prowlarr for indexer management. Here’s a minimal stack:

docker-compose.yml
services:
lazylibrarian:
image: lscr.io/linuxserver/lazylibrarian:latest
container_name: lazylibrarian
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- DOCKER_MODS=linuxserver/mods:lazylibrarian-ffmpeg
volumes:
- ./config/lazylibrarian:/config
- /mnt/media/books:/books
- /mnt/media/audiobooks:/audiobooks
- /mnt/downloads:/downloads
ports:
- "5299:5299"
restart: unless-stopped
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./config/prowlarr:/config
ports:
- "9696:9696"
restart: unless-stopped
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- DOCKER_MODS=linuxserver/mods:calibre-web-calibre
volumes:
- ./config/calibre-web:/config
- /mnt/media/books:/books
ports:
- "8083:8083"
restart: unless-stopped

Note: The linuxserver/mods:lazylibrarian-ffmpeg Docker mod adds FFmpeg for audiobook processing. Skip it if you’re ebooks-only.

Initial Configuration

LazyLibrarian’s config lives in config.ini but you’ll mostly drive it through the web UI at port 5299. The key settings to hit first:

Key LazyLibrarian settings (via UI)
[General]
# Where processed books land
ebook_dir = /books
audiobook_dir = /audiobooks
mag_dir = /books/magazines
[Downloaders]
# NZBGet or SABnzbd for usenet
nzbget_host = nzbget
nzbget_port = 6789
# qBittorrent for torrents
qbittorrent_host = qbittorrent
qbittorrent_port = 8080
[Providers]
# Prowlarr as your indexer aggregator
prowlarr_url = http://prowlarr:9696
prowlarr_apikey = your-api-key-here

Metadata Sources

This is where LazyLibrarian earns its keep. Under Config → Searching, you configure metadata sources in priority order:

LazyLibrarian will try each source in order and use the first one that returns a result. With Goodreads gone, having GoogleBooks and Open Library baked in is exactly what keeps imports flowing. That’s the key difference from Readarr — no single point of failure pointed at a now-dead API.

Author Follow Workflow

The killer feature: add an author, LazyLibrarian monitors for new releases and grabs them automatically.

  1. Go to Authors → Add Author
  2. Search for the author name — LazyLibrarian queries your configured metadata sources
  3. Set Status: Wanted (for everything) or select individual books
  4. Hit Save — it’ll kick off a search across your indexers immediately

For series management, LazyLibrarian pulls series data from whichever metadata source answers first — increasingly Open Library now that Goodreads is off the table. Books get tagged with series name and position, so your Calibre library actually shows “The Stormlight Archive #1” instead of “The Way of Kings (Sanderson, Brandon).”

Quality Profiles

LazyLibrarian calls these “Preferred Extensions.” Under Config → Processing:

[Processing]
# Ebook format priority (first match wins)
ebook_type = epub,mobi,azw3,pdf
# Audiobook format priority
audiobook_type = m4b,mp3,flac
# Reject these formats entirely
reject_words = sample,partial,excerpt

EPUB is the right call for ebooks — universal support, reflowable, works with Calibre, KOBOs, Kindles via conversion. AZW3 is fine if you’re Amazon-only. PDF is a last resort for anything that isn’t a scanned technical manual.

For audiobooks, M4B (AAC in MPEG-4 container) is the gold standard — chapters, cover art, proper metadata. MP3 works everywhere but you lose chapter support. FLAC audiobooks exist but you’re looking at 3-4x the file size for marginal quality gains on spoken word. Your call.


Setting Up Readarr

Heads up: Readarr is officially retired as of early 2026. This setup is here for completeness and for people maintaining existing installs — if you’re starting fresh, LazyLibrarian is the call. To get a retired Readarr working at all now, you’ll need to point it at a third-party metadata mirror like rreading-glasses instead of the dead official server.

Compose Stack

docker-compose.yml
services:
readarr:
image: lscr.io/linuxserver/readarr:develop
container_name: readarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./config/readarr:/config
- /mnt/media/books:/books
- /mnt/downloads:/downloads
ports:
- "8787:8787"
restart: unless-stopped
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
volumes:
- ./config/prowlarr:/config
ports:
- "9696:9696"
restart: unless-stopped
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
container_name: audiobookshelf
environment:
- TZ=America/New_York
volumes:
- ./config/audiobookshelf:/config
- ./config/audiobookshelf/metadata:/metadata
- /mnt/media/audiobooks:/audiobooks
- /mnt/media/books:/ebooks
ports:
- "13378:80"
restart: unless-stopped

Note on image tags. Readarr’s develop tag was historically the most up-to-date linuxserver build. Now that the project is retired, no channel gets new patches — pin to a known-good tag and don’t expect updates.

Quality Profiles

This is where Readarr’s *arr heritage shines. The quality profile system is identical to Sonarr/Radarr:

  1. Settings → Quality — define your acceptable formats
  2. Create a profile: “Ebooks” with EPUB preferred, MOBI acceptable, PDF cutoff
  3. Create a profile: “Audiobooks” with M4B preferred, MP3 acceptable

You can set minimum size thresholds to avoid grabbing 50KB “ebooks” that are actually just sample chapters. Set a floor — anything under 500KB for an ebook is suspicious.

The *arr-family workflow is familiar: search for an author, monitor them, set a quality profile. Readarr queries its central metadata server (built on Goodreads data, with some additional sources) and populates series information automatically.

One-off book searches work through the Add Book interface — search by title, ISBN, or author. Readarr handles the import and rename on download.

The Metadata Server Problem

Here’s the honest part, and it’s the whole reason Readarr got retired. Readarr’s metadata API (api.readarr.com) was built on Goodreads data. Goodreads killed public API access, the official metadata server became unusable, and nobody had the bandwidth to rebuild it on Open Library in time. With the official server dead, here’s what breaks on a stock install:

Coping strategies for an existing install:

1. Point Readarr at a third-party metadata mirror. rreading-glasses is the most
popular community option — it stands in for the dead official server. Entirely
at your own risk; the Servarr team won't support it.
2. For books you need NOW: grab manually via your usenet/torrent client and
use Readarr's manual import. The import/rename logic still works without
the metadata server.
3. Keep a Calibre library as your ground truth. Even when Readarr is broken,
Calibre's fetch metadata function (which queries its own sources) still works.
4. Honestly? Plan your exit. With the project retired, migrating to LazyLibrarian
is the long-term answer rather than babysitting a mirror indefinitely.

Audiobookshelf: The Playback Layer

Neither LazyLibrarian nor Readarr plays your audiobooks — they just download and organize them. That’s where Audiobookshelf comes in.

Point it at your audiobook directory, and it:

After LazyLibrarian or Readarr drops an audiobook into /mnt/media/audiobooks/, Audiobookshelf picks it up on its next library scan (or trigger a manual scan from the UI). No extra configuration needed — just make sure the volume mounts point to the same physical directory.


Calibre Integration

For ebooks, Calibre is the industry-standard library manager and format converter. Calibre-Web sits in front of it to give you a browser-readable interface and OPDS server for e-readers.

The key integration point: tell LazyLibrarian (or Readarr) to use your Calibre library directory as the root, and let Calibre’s calibredb binary handle adding books and metadata.

In LazyLibrarian:

[Calibre]
# Use calibredb for adding books (gets you proper metadata, covers)
use_calibre = 1
calibre_dir = /books
# calibredb binary path inside calibre-web container with the mod
calibredb = /usr/bin/calibredb

With this setup, downloaded ebooks get passed through calibredb add before landing in your library. You get:


Side-by-Side: Which One

FeatureLazyLibrarianReadarr
StabilitySolid, actively maintainedRetired (early 2026); mirror-dependent
UIFunctional, datedClean *arr-family UX
EbooksYesYes
AudiobooksYes (native)No (ebooks only)
Comics/MagazinesYesNo
Metadata sourcesOpen Library, GoogleBooks, ISBN-DB (Goodreads now dead)Dead official API; third-party mirror only
Metadata fallbackYes (multi-source)No (single API, now retired)
*arr integrationPartial (Prowlarr supported)Full (native *arr ecosystem)
Quality profilesBasic (file extension priority)Full (like Sonarr/Radarr)
Series supportYesYes
Calibre integrationYesLimited
Author monitoringYesYes
Docker imagelinuxserver (well-maintained)linuxserver (no longer updated)

When to Pick LazyLibrarian

When to (Still) Run Readarr

With Readarr retired, this is really “when to keep an existing install going” rather than “when to start fresh.” Reasons you might:

Just know you’re on borrowed time with an unsupported project. For anyone starting today, pick LazyLibrarian.


The Bottom Line

Your ebook library Frankenstein situation is fixable in an afternoon. The question used to be how much alpha-software babysitting you’d tolerate. As of early 2026, the answer got simpler: Readarr is retired, so for anyone starting fresh, LazyLibrarian is the choice.

LazyLibrarian is the pragmatic pick in mid-2026. It handles ebooks, audiobooks, and comics, has real metadata fallbacks now that Goodreads has gone dark, and the linuxserver image is actively maintained. It’s not as pretty as Readarr was, but it doesn’t ghost you when an upstream API dies.

Readarr is now a “keep it running if you already have it” proposition. The project is officially retired and the official metadata server is dead. If you’re committed to it, you’ll be leaning on a third-party mirror like rreading-glasses — go in with eyes open, have a manual import workflow ready, and keep Calibre as your safety net. For most people, the long-term move is migrating off it.

Either way: pair your book manager with Audiobookshelf for audiobook playback, Calibre-Web for ebook serving, and Prowlarr for indexers. That four-container stack — book manager + Audiobookshelf + Calibre-Web + Prowlarr — covers everything from automated downloading through polished playback.

Your 2 AM self, staring at an unread 14-book fantasy series that’s currently scattered across six directories in three formats, will appreciate the effort.


Share this post on:

Send a Webmention

Written about this post on your own site? Send a webmention and it'll show up above once verified.


Previous Post
Lazy Docker & Dive: CLI Tools That Make Docker Less Painful
Next Post
LinkedIn Is Searching Your Computer

Discussion

Powered by Garrul . Sign in with GitHub or Google, or post anonymously.

Related Posts