LazyLibrarian is a program available for OSX and Linux that is used 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. It’s nice to be able to have all of our book in digital form since books are extremely heavy and take up a lot of space, which we are already lacking in the bus.
Some of LazyLibrarian’s features include:
- Import an existing Calibre library.
- Find authors and add them to the database.
- List all books of an author and mark them as ‘wanted’.
Although this program is only available for OSX and Linux as a stand-alone program, you can also install it using Docker for Windows. Read about how to install LazyLibrarian for Docker here. Once LazyLibrarian is running it will stay open in the background and can be found using your favorite internet browser and navigating to http://localhost:5299.
The initial skin is a bit harder to navigate. This can be changed by clicking on the gear icon, scrolling down to Interface, and selecting “bookstrap” from the drop down.
Now that the skin is easier on the eyes, and all of the text is easier to read, we can begin to configure the skin for automation. Within the settings, open up the Importing tab. This tab is used to import your saved books from either GoodReads or GoogleBooks. We already had an account at GoodReads so we decided to just stick with what we knew.
Make a GoodReads account and then register for a developer key. Once you have registered for a developer key, you will be given an API key and a Secret key. Within LazyLibrarian’s Importing tab tick the “Enable GoodReads Sync box”. Copy and paste your GoodReads API and Secret keys into the appropriate boxes and then save changes.
Next click Request OAuth1 and you will directed to the GoodReads website to allow application access to LazyLibrarian. Once that is done, return to Lazylibrarian and click Request OAuth2, which will auto-fill the Goodreads OAuth Token and Goodreads OAuth Secret. Now LazyLibrarian and GoodReads can talk to one another to sync your books. It is also a good idea to fill out the Sync Wanted to Goodreads shelf section with “to-read” and the Sync Open/Have to Goodreads shelf to “owned”. Save changes, and move onto the Downloaders tab.
The Downloaders tab is pretty straight forward. Select which option you would like to use to download whether it be Usenet, or Torrents, and fill in the appropriate information. We use SABnzbd on our machine and information on how to set that up and obtain the API key can be found here. More than likely, you will want “localhost” under SABnzbd Host. Since we use categories within SABnzbd, it’s necessary to enter books
into the category block. We also like to split our torrent categories. Because of this, we entered the full path where Transmission is to place completed downloads. In this case the path is /Media/Library/Torrents/complete/Books
. Save changes and move onto the Providers tab.
The Providers tab, also known as indexers, is where the settings for the various search providers are input. Use your favorite providers information to fill in this section. If you are using torrents, Jackett will need installed first. More on that can be found here. Save changes, and move onto the Processing tab.
Processing happens after a book is done downloading. Since we use the Thraxis version of LazyLibrarian which includes a Calibre database, we will be setting up post-processing to allow Calibre to import the finished book(s) into a virtual library. To set this up, scroll to the bottom of the Processing tab. Under Calibredb Import Program type in /opt/calibre/calibredb
.
Setting up a virtual library is a great way to share books locally. Read about how to setup a virtual library using Calibre-Web here.
Scroll back to the top of the Processing tab and under the Folders section under eBook Library, set the Download Directories as well as the eBook Library Folder. Since we are using two download clients we needed to input the two locations that LazyLibrarian needs to look for completed downloads.
/Media/Downloads/Torrents/complete/Books, /Media/Downloads/Usenet/complete/Books
The eBook Library Folder setting is where LazyLibrarian places the processed books for Calibre to then pickup and process. The books need to be stored in the same place as the Calibre database (metadata.db)
/Media/Library/Books
You can begin to sync your books from GoodReads shelves by going to Manage and clicking Import Books.
That’s it! All of your books will begin to populate, and LazyLibrarian will start sending API requests to all of your indexers to download wanted books.
Alas… GoodReads no longer allows the use of their API.
As of December 8th 2020, Goodreads no longer issues new developer keys for our public developer API and plans to retire the current version of these tools. You can find more information here.
That is unfortunate. Many people have started using Readarr for books, while keeping LL for magazines.
Excellent tutorial. Thanks for all your efforts. I am more interested in magazines. Do you have insights about their downloads ?
LazyLibrarian doesn’t handle magazine downloads well in my experience. I managed to get it to grab a few issues of Popular Mechanics, but it was a struggle. I gave up on them to work on other things but I may revisit them again in the future.