Lidarr the music organizer

Lidarr is part of the Servarr suite: it allows to automatically organize, search and download music.

You will need Lidarr if you plan to organize and enrich your music collection. As a bonus point, i will show you how to use DeeMon to fetch low-quality MP3 from Deezer to start filling your collection while Lidarr will improve it over time with FLAC quality.

Installation

Lidarr is easily installed and managed within Gentoo linux since there is an ebuild for it. All you need to do is unmask it (at the time of writing this it's are masked for AMD64 at least):

echo www-apps/lidarr ~amd64 >> /etc/portage/package.accept_keywords/lidarr

then install it:

emerge -v lidarr

This step will create a dedicated lidarr user but you will want to add it to the group media, that you have created before, so that the it will be able to access and manage your media collection:

usermod -a -G media lidarr

Also, you want to move Lidarr home folder under /data/daemons/lidarr for consistency and to be protected on the RAID array, so:

usermod -m -d /data/daemons/lidarr lidarr

Reverse-Proxy configuration

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

lidarr.conf
# Lidarr - Music
location ^~ /lidarr {
        proxy_pass http://127.0.0.1:8686;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
}
# Allow the API External Access via NGINX
location ~ /lidarr/api {
        auth_basic off;
        proxy_pass http://127.0.0.1:8686;
}

Check The Reverse Proxy concept for more info on how to enable this config file and reload the Reverse Proxy.

Startup

There are some configuration that must be perform before actually starting the service. You need to briefly start and stop it to let it create the main configuration file, this is required because you need to generate a new API key:

/etc/init.d/lidarr start
/etc/init.d/lidarr stop

Now edit the newly created xml config file /data/daemons/lidarr/.config/Lidarr and edit the UrlBase to match the reverse-proxy setup. Only change the following lines in the file, do not edit anything else (unless you know what you are doing):

  <UrlBase>lidarr</UrlBase>
    <BindAddress>127.0.0.1</BindAddress>
  <AuthenticationMethod>Forms</AuthenticationMethod>
  <AuthenticationRequired>DisabledForLocalAddresses</AuthenticationRequired>

Add Radarr to default runlevel, for autostart on reboot, and start it manually now:

rc-update add lidarr default
/etc/init.d/lidarr start

Lidarr will now be accessible as http://192.168.0.1/lidarr.

All set! Lidarr is running.

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

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

Usage

Before you can actually use Lidarr you need to perform some initial setup in settingsmedia management:

  • Add a new Root Folder. Use /data/Music as root folder.

Now enable “advanced settings” and:

  • Thick “Set permissions” to on
  • Set “chmod folder” to 775 (umask will be 0002)
  • set “chmod Group” to “media”
  • save and restart the daemon (from the user icon on top-right corner)

you can fine tune and configure many other aspects of Lidarr as you wish. A very common guide is The TRaSH Guides.

Please note that you will not yet be able to use Lidarr fully as you have not yet installed any downloader.

DeeMon

Lidarr is nice and good, but there is a very fast and practical way to start populating your music collection quickly, which is download 128Kb/sec MP3 files from a free Deezer account. Also, it seems that with a premium account you can also download high-res MP3 or even FLAC files.

DeeMon is a nice command-line tool that connects to your Deezer account and is able to easily fetch any music from it. DeeMon will use DeeMix internally. Of course, if you want FLAC or 320kbps MP3 files you also need a premium account. Please read carefully their license agreement and abide to it! There might be restrictions to fetching music and i am not responsible for DeeMon usage or such abuses to Deezer, if any.

In my experience, find music can be hard on the other ways, so this the best workaround i could come up with. I like that there is no need for another daemon, a Docker image or some other over complicated solution. DeeMon uses DeeMix internally to access your own Dezeer account and get the authors, albums or tracks you want. It's simple, it's easy, it's command-line based, and then Lidarr can easily pick it up from there and upgrade the tracks to FLAC when it finds them on you other indexers, but meanwhile you can quickly fill up your collection in a breeze. At this time i still haven't found a simple way to force Lidarr to import the tracks immediately or automatically, you still need to login on Lidarr web GUI and trigger an unmapped files import manually. But Jellyfin will pick the tracks up automatically without the need to do any manual steps, so there is that.

DeeMon can do much more, check the online documentation, like monitoring artists and automatically download new releases and so on.

You need to install manually DeeMon since it's not packaged for Gentoo, but it's really very easy. You want to create a DeeMon user, with it's default group the media group, so that any downloaded file will be created belonging to it for ease of access and management of the other apps:

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

as usual, you put it in the daemons folder for consistency. Installing it it's easily done with pip but using pip directly is discouraged on Gentoo because it can severily break your system. To use pip on Gentoo you need to explicitly enable it for the deemon user by creating the file /data/daemons/deemon/.config/pip/pip.conf with this content:

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

(check this for more details on pip and Gentoo)

You need to do two things now:

  • set deemon umask to 0002 so that all files downloaded will be writable by Lidarr
  • add ~/./local/bin in deemon path so that you can run the executable easily

So, edit your /data/daemons/deemon/.bashrc and append to the end the lines:

export PATH=$PATH:/opt/deemon/.local/bin
umask 0002

Installing DeeMon itself now it's pretty easy, but you need to become user deemon first:

su - deemon
pip install deemon
deemon refresh
mkdir temp

Running the refresh command is required to have DeeMon autogenerate empty configuration files that you need to edit to match DeeMon file naming scheme to match Lidarr one, and perform some extra configuration like the arl cookie from Deezer.

In order for DeeMon to work it requires the arl cookie from Deezer. Grabbing the cookie is not difficult but it's an operation that you might have to do again every few months, as it will expire:

  • Open the Deezer web site from your browser
  • Login with your Deezer account (or register a new account)
  • Open the browser developer console (usually CTRL+i YMMV)
  • Locate the cookies (under storage / cookies usually, YMMV)
  • Copy the string associated to the arl cookie.

Edit the file /data/daemons/deemon/.config/deemon/config.json and paste the string here:

    
    "global": {
        "bitrate": "128",
        "alerts": false,
        "record_type": "all",
        "download_path": "/data/Music",
        "email": ""
    },
    "deemix": {
        "path": "",
        "arl": "... very long random string of letters and numbers...",
        "check_account_status": true,
        "halt_download_on_error": false
    },

In the same config file, locate the download_path under “global” and make it point to the media music folder (/data/Music) because you want DeeMon to put all downloaded music straight into your media collection. Do not edit anything else from this file, unless you know what you are doing.

In order for Lidarr to properly (and with less fuss) detect and import all the albums and tracks you need to edit the DeeMix preferences because by default the downloaded tracks will have a slightly different naming scheme than Lidarr. Now, you could also change Lidarr naming scheme if you prefer, but i think it's more reasonable to fix DeeMix because Lidarr defaults just works for Jellyfin. To do so, edit the file /data/daemons/deemon/.config/deemix/config.json (note, this is DeeMix, not DeeMon config file).

You will need to adjust a few lines, the following seems to be working fine for me:

  "downloadLocation": "/data/daemons/deemon/temp",
  "tracknameTemplate": "%artist% - %title%",
  "albumTracknameTemplate": "%artist% - %album% - %tracknumber% - %title%",
  "playlistTracknameTemplate": "%position% - %artist% - %title%",
  "artistNameTemplate": "%artist%",
  "albumNameTemplate": "%album% (%year%)",

(note that i have copied only the relevant lines, do not modify the others unless you know what you want to do)

This is actually all… To use it, just type as user deemon:

deemon download some_thing

where some_thing is an artist or an album or a Dezeer ID…. and it will directly be downloaded inside your music library to enjoy!

As you can see DeeMon is not really integrated with Lidarr. All you do is actually download music in the same music collection as Lidarr. If you want to allow Lidarr to automatically upgrade your music quality, head to Lidarr GUI and, using the “unmapped files” add the newly downloaded ones to the collection.