LazyLibrarian: another books&audiobooks organizer

NOTE: i don't use LazyLibrarian anymore, this page might get outdated over time.

LazyLibrarian is a tool to follow authors and grab metadata for all your digital reading needs. It accomplish the same goals as Readarr, but has a few advantages:

  • It works much better with metadata providers
  • It can manage books and audiobook for the same book in the same instance

In my view, it also has some drawbacks:

  • Clumsy UI, doesn't feel very intuitive
  • Diverge from the *Arr's looks&feel
  • It's more complex to setup properly

Installation

LazyLibrarian must be installed manually since there is no Gentoo ebuild for it, but it's pretty easy with pip. More info on pip on Gentoo here.

As usual, you need to create a specific user and set it's home folder to /data/daemons/lazylibrarian and set media as it's main group:

useradd -d /data/daemons/lazylibrarian -g media -m lazylibrarian

Using pip directly is discouraged on Gentoo because it can severely break your system. To use pip on Gentoo you need to explicitly enable it for the lazylibrarian user by creating the file /data/daemons/lazylibrarian/.config/pip/pip.conf with this content:

pip.conf
    [global]
    break-system-packages = true
    user = true

Now adapt the lazylibrarian umnask so that any files moved by it will be accessible by the other tools (where needed). Add the following line at the end of /data/daemons/lazylibrarian/.bashrc:

umask 0002
</codeZ>
 
You can now become the //lazylibrarian// user and proceed with the installation using **git**:
<code bash>
su - lazylibrarian
git clone git clone https://gitlab.com/LazyLibrarian/LazyLibrarian.git

As last step, you need a startup script called /data/daemons/lazylibrarian/lazylibrarian.sh, so create it with the following content:

lazylibrarian.sh
#!/bin/bash
 
cd /data/daemons/lazylibrarian
python LazyLibrarian.py -d

You also want a script to automatically start it at boot, so create the file /etc/local.d/80-lazylibrarian.start with the following content:

lazylibrarian.start
#!/bin/bash
 
start-stop-daemon -b -m -p /var/run/lazylibrarian.pid -n lazylibrarian -u lazylibrarian /data/daemons/lazylibrarian/lazylibrarian.sh

and make them both executable:

chmod +x /data/daemons/lazylibrarian/lazylibrarian.sh
chmod +x /etc/local.d/80-lazylibrarian.start

That's it, LazyLibrarian is installed, but you will need to configure it before starting.

Reverse-Proxy configuration

Before you proceed, you should make LazyLibrarian accessible via the reverse-proxy, so that access, configuration and usage will be simplified from the beginning. Add this file to /etc/nginx/folders:

lazylibrarian.conf
location /lazylibrarian/ {
        proxy_pass http://127.0.0.1:5299;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Add this config to the reverse proxy and restart it.

Startup

There are some configuration that must be perform before actually starting the service.

Edit the file /data/daemons/lazylibrarian/config.ini to set the correct base-url and some more things. Please note that the following lines are only the ones you need to change from the default. Be careful in changind eny other line unless you know what you do:

[GENERAL]
... 
file_perm = 0o664
dir_perm = 0o775
ebook_dir = /data/Books
audio_dir = /data/Audiobooks
download_dir = /data/daemons/nzbget/dst/Books, /data/daemons/deluge/Downloads, /data/daemons/transmission/Downloads
...
[WEBSERVER]
http_proxy = True
http_root = /lazylibrarian

A quick summary of the edits:

  • file_perm / dir_perm: changed to ensure all downloaded&moved files are accessible from Readarr as well
  • ebook_dir / audio_dir: match your media collection folders
  • download_dir: must point to where your downloaders will put downloaded files (more on this later on, see the downloaders pages)
  • http_proxy: tell LazyLibrarian you will use a reverse proxy
  • http_root: the Base URL of the reverse proxy

Now, start LazyLibrarian:

/etc/local.d/80-lazylibrarian.start

All set! LazyLibrarial is running.

In order for LazyLibrarian to benefit from Prowlarr automatic indexers management you need to open http://10.0.0.1/prowlarr in your browser, go to settingsapps and add LazyLinrarian. From the popup window set:

Now add a second Readarr (you will need to specify a different name, like Readarr-audiobooks):

  • LazyLibrarian server: http://localhost:5299
  • API Key: generate it from configinterface page by enabling “Enable API” and “generate” button.

Then go to the Prowlarr indexers page and click on the synchronize all indexers icon.

Usage

Configuring LazyLibrarian is quite complex and messy, compared to the *Arr's at least. I will give you some pointers here.

  • No pointers at the moment

Downloaders

After you add the downloaders, go back to LazyLibrarian config section and add the downloader there too. Note that you must also add the downloader default download folder to the download folders in the processing tab.