This project isn't finished yet. Goal is to create a SickBeard, CouchPotato, Headphones-like application for ebooks. Headphones is used as a base, so there are still a lot of references to it.
Python HTML JavaScript C Other
Pull request Compare This branch is 2512 commits ahead of itsmegb:master.
Latest commit c617161 Nov 19, 2017 @philborman philborman Merge pull request #1124 from philborman/master
Fix for #1123, cover selector in book manual edit page


LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. License: GNU GPL v3

Right now it's capable of the following:

  • Import an existing calibre library (optional)
  • Find authors and add them to the database
  • List all books of an author and mark ebooks or audiobooks as 'wanted'.
  • LazyLibrarian will search for a nzb-file or a torrent or magnet link for that book
  • If a nzb/torrent/magnet is found it will be sent to a download client or saved in a black hole where your download client can pick it up.
  • Currently supported download clients for usenet are :
  • sabnzbd (versions later than 0.7.x preferred)
  • nzbget
  • synology_downloadstation
  • Currently supported download clients for torrent and magnets are:
  • deluge
  • transmission
  • utorrent
  • qbittorrent
  • rtorrent
  • synology_downloadstation
  • When processing the downloaded books it will save a cover picture (if available) and save all metadata into metadata.opf next to the bookfile (calibre compatible format)
  • The new theme for the site allows it to be accessed (and usable) from devices with a smaller screen (such as an iPad)
  • AutoAdd feature for book management tools like Calibre which must have books in flattened directory structure, or use calibre to import your books into an existing calibre library
  • LazyLibrarian can also be used to search for and download magazines, and monitor for new issues



LazyLibrarian runs by default on port 5299 at http://localhost:5299

Linux / Mac OS X:

  • Install Python 2.6 or higher

  • Git clone/extract LL wherever you like

  • Run "python -d" to start in daemon mode

  • Fill in all the config (see Configuration Wiki for full configuration)

  • Start in daemon mode with python -daemon


Fairly limited so far (any help appreciated) There is a wiki at and a reddit at

Minimal Configuration (uTorrent):

This is the bare minimum to get you up and running. For more options see the Configuration Wiki.


  • Open localhost:5299/config
  • Select Downloaders tab and check the uTorrent box.
  • Host: localhost
  • Port: Found in "uTorrent | Options Menu | Preferences | Connections | Port used for incoming connections"
  • In "uTorrent settings | Advanced | WebUI" check Enable WebUI and make a username and password. Fill that username and password in to LazyLibrarian.
  • In Download Settings Directory in Lazylibrarian change the path to where uTorrent keeps your completed downloads. Found in "uTorrent Settings | Directories | Move completed downloads to"


Check some or all of the torrent provider boxes.


In "Folders | Base Destination Folder" type the directory where you want to keep the books LazyLib downloads. For example putting a books folder in Documents. The system documents folder for windows is "C:\Users\USERNAME\Documents\Books" where USERNAME is your Windows User Name.


Open localhost:5299/home or click the LazyLibrarian icon in the top left. Type a book or author name into the top right search bar. Then on the search results screen select "Add Book" to make LazyLib start searching for the book. Not all books can be found instantly, but LazyLib will keep searching!


Auto update available via interface from master for git and source installs


rpm deb and snap packages here :
The snap package is confined to users home directory, so all books and downloads need to be accessible from there too. AUR package available here:

Docker packages

armhf version here :
x64 version here :
with calibredb here: