lidarr-extended :: Lidarr application packaged with multiple scripts to provide additional functionality
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
RandomNinjaAtk 383d10b026
1.0.310 - Supress error messages
2 years ago
.github Add files via upload 2 years ago
hooks Create pre_build 2 years ago
root 1.0.310 - Supress error messages 2 years ago
.gitignore add gitignore 2 years ago
LICENSE Initial commit 2 years ago
README.md Update README.md 2 years ago
amd64.dockerfile remove /music as volume 2 years ago
arm32v7.dockerfile Add missing dependencies for arm32 2 years ago
arm64v8.dockerfile Add missing dependencies for arm64 2 years ago
multi-arch-manifest.yaml Update multi-arch-manifest.yaml 2 years ago

README.md

RandomNinjaAtk/lidarr-extended

Docker Build Docker Pulls Docker Stars Docker Hub

What is Lidarr Extended:

  • Linuxserver.io Lidarr docker container (develop tag)
  • Additional packages and scripts added to the container to provide additional functionality

Lidarr itself is not modified in any way, all changes that are pushed to Lidarr via public Lidarr API's. This is strictly Lidarr Develop branch

For more details, visit the Wiki

This containers base image is provided by: linuxserver/lidarr

All Arr-Extended Apps:

Lidarr + Extended Script Features

  • Lidarr Develop (develop branch), base image provided by LinuxServer.io Team
  • Downloading Music using online sources for use in popular applications (Plex/Kodi/Emby/Jellyfin):
    • Completely automated
    • Searches for downloads based on Lidarr's album missing & cutoff list
    • Downloads using a third party download client automatically
    • FLAC (lossless) / MP3 (320/128) / AAC (320/96) Download Quality
    • Can convert Downloaded FLAC files to preferred audio format and bitrate before import into Lidarr
    • Notifies Lidarr to automatically import downloaded files
    • Music is properly tagged and includes coverart before Lidarr Receives them
    • Can pre-match and tag files using Beets
    • Can add Replaygain tags to tracks
    • Can add top artists from online services
    • Can add artists related to your artists in your existing Library
    • Can notify Plex application to scan the individual artist folder after successful import, thus increasing the speed of Plex scanning and reducing overhead
  • Downloading Music Videos using online sources for use in popular applications (Plex/Kodi/Emby/Jellyfin):
    • Completely automated
    • Searches Lidarr Artists (musicbrainz) video recordings for videos to download
    • Saves videos in MKV format
    • Downloads using Highest available quality for both audio and video
    • Saves thumbnail of video locally for Plex/Kodi/Jellyfin/Emby usage
    • Embed subtitles if available matching desired language
    • Automatically Add Featured Music Video Artists to Lidarr
    • Writes metadata into Kodi/Jellyfin/Emby compliant NFO file
      • Tagged Data includes
        • Title (musicbrainz)
        • Year (upload year/release year)
        • Artist (Lidarr)
        • Thumbnail Image (service thumbnail image)
        • Artist Genere Tags (Lidarr)
    • Embeds metadata into Music Video file
      • Tagged Data includes
        • Title (musicbrainz)
        • Year (upload year/release year)
        • Artist (Lidarr)
        • Thumbnail Image (service thumbnail image)
        • Artist Genere Tags (Lidarr)
  • Queue Cleaner Script
    • Automatically removes downloads that have a "warning" or "failed" status that will not auto-import into Lidarr, which enables Lidarr to automatically re-search for the album

Audio & Video (Plex Example)

Video Example (Kodi)

Supported Architectures

The architectures supported by this image are:

Architecture Available Tag
multi latest
x86-64 amd64
arm64v8 arm64v8
arm32v7 arm32v7

Version Tags

Tag Description
latest Lidarr (develop) + Extended Scripts

Application Setup

Access the webui at <your-ip>:8686, for more information check out Lidarr.

Parameters

Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Parameter Function
-p 8686 The port for the Lidarr webinterface
-v /config Configuration files for Lidarr. (required path)
-v /downloads-lidarr-extended Path for online service downloads. (required path)
-v /music Path to your music folder location.
-v /music-videos Path to your music-videos folder location. (required path)
-e TZ=America/New_York Specify a timezone to use EST, America/New_York.
-e PUID=1000 for UserID - see below for explanation
-e PGID=1000 for GroupID - see below for explanation
-e scriptInterval=15m #s or #m or #h or #d :: s = seconds, m = minutes, h = hours, d = days :: Amount of time between each script run, when autoStart is enabled
-e enableAudioScript=true true = enabled :: Enables the Audio script to run automatically
-e enableVideoScript=true true = enabled :: Enables the Video script to run automatically
-e videoDownloadTag=VALUE If VALUE is specified, only artists tagged with VALUE will have videos downloaded
-e configureLidarrWithOptimalSettings=true true = enabled :: Automatically configures Lidarr with optimal settings
-e searchSort=date date or album :: Sorts the missing/cutoff list by release date (newest -> oldest) or album type (album -> single) for processing the list
-e audioFormat=native native or alac or mp3 or aac or opus :: native is the native download client file type, selected by the matching audio bitrate
-e audioBitrate=lossless master or lossless or high or low or ### :: master = MQA/lossless flac files, lossless = flac files, high = 320K, low = 128k/96k, ### = the output bitrate of converted lossless files to selected audioFormat that is not native, example: 192...
-e requireQuality=true true = enabled :: Downloads will be required to have the requested file format
-e enableReplaygainTags=true true = enabled :: Downloads will be tagged with Replaygain Metadata
-e audioLyricType=both both or explicit or clean :: both, is explicit preferred matching, explicit is explicit releases only matching and clean is clean releases only matching
-e dlClientSource=both deezer, tidal or both :: set to both, to use both clients, tidal requires extra steps, view logging output (Authing information)
-e arlToken= User ARL token for deemix client, see wiki: Wiki URL
-e tidalCountryCode=US Country Code required for tidal
-e addDeezerTopArtists=false true = enabled :: Enabling this will enable the extended script to automatically add artists that are on the Deezer Top Artist Chart to your existing Lidarr instance
-e addDeezerTopAlbumArtists=false true = enabled :: Enabling this will enable the extended script to automatically add artists that are on the Deezer Top Album Chart to your existing Lidarr instance
-e addDeezerTopTrackArtists=false true = enabled :: Enabling this will enable the extended script to automatically add artists that are on the Deezer Top Track Chart to your existing Lidarr instance
-e topLimit=10 This setting controls the amount of Top Artist (Albums/Tracks/Artists) to add to Lidarr from Deezer
-e addRelatedArtists=false true = enabled :: WARNING !!! WARNING !!! Enabling this can cause an endless loop of additional artists.... Enabling this will enable the extended script to automatically add artists that are related to your existing Lidarr artists from Tidal & Deezer
-e numberOfRelatedArtistsToAddPerArtist=5 1-20 :: This will limit the number of related artists to add per artist in your library :: Minimum is 1, Maximum is 20
-e lidarrSearchForMissing=true true = enabled :: When artists are added, search for them using Lidarr's built in functionality
-e addFeaturedVideoArtists=false true = enabled :: WARNING !!! WARNING !!! Enabling this can cause an endless loop of additional artists.... Enabling this will enable the extended Video script to automatically add Music Video Featured Artists to your existing Lidarr artists from IMVDB
-e plexUrl=http://x.x.x.x:32400 ONLY used if PlexNotify.bash is used...
-e plexToken= ONLY used if PlexNotify.bash is used... (How to obtain token, visit: Plex Support Article
-e youtubeSubtitleLanguage=en Desired Language Code :: For guidence, please see yt-dlp documentation.
-e webHook=https://myhook.mydomain.com POST's to this URL on error events which prevent the script from working. Content is JSON {"event":"eventtype", "message":"eventmessage", "content":"eventtype: eventmessage"}
-e enableQueueCleaner=true true = enabled :: Enables QueueCleaner Script that automatically removes stuck downloads that cannot be automatically imported on a 15 minute interval
-e matchDistance=5 The number of changes required to transform the searched album title into a possible found album title match... (0, requires a perfect match)
-e enableBeetsTagging=true true = enabled :: Downloads will be processed and tagged by Beets
-e beetsMatchPercentage=90 1-100 :: Set this to the minimum percentage required for Beets to match the downloaded album to a musicbrainz release :: Lower percentage is less restrictive
-e retryNotFound=90 ## :: Number of days between re-attempting the download of previously notfound albums

Usage

Here are some example snippets to help you get started creating a container.

docker

docker create \
  --name=lidarr-extended \
  -v /path/to/config/files:/config \
  -v /path/to/preferred/local/directory:/downloads-lidarr-extended \
  -v /path/to/preferred/local/directory:/music \
  -v /path/to/preferred/local/directory:/music-videos \
  -p 8686:8686 \
  -e TZ=America/New_York \
  -e PUID=1000 \
  -e PGID=1000 \
  -e enableAudioScript=true \
  -e enableVideoScript=true \
  -e scriptInterval=15m \
  -e configureLidarrWithOptimalSettings=true \
  -e searchSort=date \
  -e audioFormat=native \
  -e audioBitrate=lossless \
  -e requireQuality=true \
  -e enableReplaygainTags=true \
  -e audioLyricType=both \
  -e dlClientSource=both \
  -e arlToken=Token_Goes_Here \
  -e tidalCountryCode=US \
  -e addDeezerTopArtists=true \
  -e addDeezerTopAlbumArtists=true \
  -e addDeezerTopTrackArtists=true \
  -e topLimit=10 \
  -e addRelatedArtists=false \
  -e numberOfRelatedArtistsToAddPerArtist=5 \
  -e lidarrSearchForMissing=true \
  -e addFeaturedVideoArtists=false \
  -e plexUrl=http://x.x.x.x:32400 \
  -e plexToken=Token_Goes_Here \
  -e youtubeSubtitleLanguage=en \
  -e enableQueueCleaner=true \
  -e matchDistance=5 \
  -e enableBeetsTagging=true \
  -e beetsMatchPercentage=90 \
  -e retryNotFound=90 \
  --restart unless-stopped \
  randomninjaatk/lidarr-extended:latest

docker-compose

Compatible with docker-compose v2 schemas.

version: "2.1"
services:
  lidarr-extended:
    image: randomninjaatk/lidarr-extended:latest
    container_name: lidarr-extended
    volumes:
      - /path/to/config/files:/config
      - /path/to/preferred/local/directory:/downloads-lidarr-extended
      - /path/to/preferred/local/directory:/music
      - /path/to/preferred/local/directory:/music-videos
    environment:
      - TZ=America/New_York
      - PUID=1000
      - PGID=1000
      - enableAudioScript=true
      - enableVideoScript=true
      - scriptInterval=15m
      - configureLidarrWithOptimalSettings=true
      - searchSort=date
      - audioFormat=native
      - audioBitrate=lossless
      - requireQuality=true
      - enableReplaygainTags=true
      - audioLyricType=both
      - dlClientSource=both
      - arlToken=Token_Goes_Here
      - tidalCountryCode=US
      - addDeezerTopArtists=true
      - addDeezerTopAlbumArtists=true
      - addDeezerTopTrackArtists=true
      - topLimit=10
      - addRelatedArtists=false
      - numberOfRelatedArtistsToAddPerArtist=5
      - lidarrSearchForMissing=true
      - addFeaturedVideoArtists=false
      - plexUrl=http://x.x.x.x:32400
      - plexToken=Token_Goes_Here
      - youtubeSubtitleLanguage=en
      - enableQueueCleaner=true
      - matchDistance=5
      - enableBeetsTagging=true
      - beetsMatchPercentage=90
      - retryNotFound=90
    ports:
      - 8686:8686
    restart: unless-stopped

Credits