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.

242 lines
14 KiB

3 years ago
# [RandomNinjaAtk/lidarr-extended](https://github.com/RandomNinjaAtk/docker-lidarr-extended)
[![Docker Build](https://img.shields.io/docker/cloud/automated/randomninjaatk/lidarr-extended?style=flat-square)](https://hub.docker.com/r/randomninjaatk/lidarr-extended)
[![Docker Pulls](https://img.shields.io/docker/pulls/randomninjaatk/lidarr-extended?style=flat-square)](https://hub.docker.com/r/randomninjaatk/lidarr-extended)
[![Docker Stars](https://img.shields.io/docker/stars/randomninjaatk/lidarr-extended?style=flat-square)](https://hub.docker.com/r/randomninjaatk/lidarr-extended)
[![Docker Hub](https://img.shields.io/badge/Open%20On-DockerHub-blue?style=flat-square)](https://hub.docker.com/r/randomninjaatk/lidarr-extended)
3 years ago
<table>
<tr>
2 years ago
<td><img src="https://github.com/RandomNinjaAtk/docker-lidarr-extended/raw/main/.github/lidarr.png" width="150"></td>
<td><img src="https://github.com/RandomNinjaAtk/docker-lidarr-extended/raw/main/.github/plus.png" width="75"></td>
<td><img src="https://github.com/RandomNinjaAtk/docker-lidarr-extended/raw/main/.github/music.png" width="150"></td>
<td><img src="https://github.com/RandomNinjaAtk/docker-lidarr-extended/raw/main/.github/plus.png" width="75"></td>
<td><img src="https://github.com/RandomNinjaAtk/docker-lidarr-extended/raw/main/.github/video.png" width="150"></td>
</tr>
</table>
2 years ago
## Lidarr + Extended Script Features
2 years ago
* [Lidarr](https://lidarr.audio/) Develop (develop branch), base image provided by [LinuxServer.io Team](https://github.com/linuxserver/docker-lidarr)
* Downloading **Music** using online sources for use in popular applications (Plex/Kodi/Emby/Jellyfin):
2 years ago
* Completely automated
* Searches for downloads based on Lidarr's album missing & cutoff list
* Downloads using a third party download client automatically
2 years ago
* FLAC (lossless) / MP3 (320/128) / AAC (320/96) Download Quality
2 years ago
* 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
2 years ago
* 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)
2 years ago
* 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)
2 years ago
* Thumbnail Image (service thumbnail image)
* Artist Genere Tags (Lidarr)
2 years ago
* 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)
![](https://github.com/RandomNinjaAtk/docker-lidarr-extended/raw/main/.github/plex.png)
### Video Example (Kodi)
![](https://github.com/RandomNinjaAtk/docker-lidarr-extended/raw/main/.github/kodi-music-videos.png)
3 years ago
## Supported Architectures
The architectures supported by this image are:
3 years ago
| Architecture | Available | Tag |
| :----: | :----: | ---- |
3 years ago
| multi | ✅ | latest |
| x86-64 | ✅ | amd64 |
| arm64v8 | ✅ | arm64v8 |
| arm32v7 | ✅ | arm32v7 |
3 years ago
## Version Tags
| Tag | Description |
| :----: | --- |
2 years ago
| latest | Lidarr (develop) + Extended Scripts |
3 years ago
## Application Setup
Access the webui at `<your-ip>:8686`, for more information check out [Lidarr](https://lidarr.audio/).
3 years ago
## Parameters
2 years ago
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.
3 years ago
| Parameter | Function |
| --- | --- |
| `-p 8686` | The port for the Lidarr webinterface |
2 years ago
| `-v /config` | Configuration files for Lidarr. (<strong>required path</strong>)|
| `-v /downloads-lidarr-extended` | Path for online service downloads. (<strong>required path</strong>)|
2 years ago
| `-v /music` | Path to your music folder location.|
| `-v /music-videos` | Path to your music-videos folder location. (<strong>required path</strong>)|
3 years ago
| `-e TZ=America/New_York` | Specify a timezone to use EST, America/New_York. |
3 years ago
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
2 years ago
| `-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 |
3 years ago
| `-e configureLidarrWithOptimalSettings=true` | true = enabled :: Automatically configures Lidarr with optimal settings |
2 years ago
| `-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 |
3 years ago
| `-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` | lossless or high or low or ### :: 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 |
2 years ago
| `-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)](https://github.com/RandomNinjaAtk/docker-lidarr-extended/issues/96#issuecomment-1280672421)|
2 years ago
| `-e arlToken=` | User ARL token for deemix client, see wiki: [Wiki URL](https://github.com/RandomNinjaAtk/docker-lidarr-extended/wiki/Extended-Audio-Script-Information#q-how-do-i-get-my-arl-token)|
3 years ago
| `-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 |
3 years ago
| `-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 |
3 years ago
| `-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 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 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 |
3 years ago
| `-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](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token)|
| `-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 |
3 years ago
## Usage
Here are some example snippets to help you get started creating a container.
### docker
```
docker create \
--name=lidarr-extended \
3 years ago
-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 \
3 years ago
-p 8686:8686 \
-e TZ=America/New_York \
-e PUID=1000 \
-e PGID=1000 \
-e enableAudioScript=true \
-e enableVideoScript=true \
-e scriptInterval=15m \
3 years ago
-e configureLidarrWithOptimalSettings=true \
-e searchSort=date \
3 years ago
-e audioFormat=native \
-e audioBitrate=lossless \
-e requireQuality=true \
-e enableReplaygainTags=true \
-e audioLyricType=both \
3 years ago
-e dlClientSource=both \
-e arlToken=Token_Goes_Here \
3 years ago
-e tidalCountryCode=US \
3 years ago
-e addDeezerTopArtists=true \
-e addDeezerTopAlbumArtists=true \
-e addDeezerTopTrackArtists=true \
-e topLimit=10 \
-e addRelatedArtists=false \
-e numberOfRelatedArtistsToAddPerArtist=5 \
-e addFeaturedVideoArtists=false \
3 years ago
-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 \
--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:
3 years ago
- 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
3 years ago
- tidalCountryCode=US
- addDeezerTopArtists=true
- addDeezerTopAlbumArtists=true
- addDeezerTopTrackArtists=true
- topLimit=10
- addRelatedArtists=false
- numberOfRelatedArtistsToAddPerArtist=5
- addFeaturedVideoArtists=false
- plexUrl=http://x.x.x.x:32400
- plexToken=Token_Goes_Here
- youtubeSubtitleLanguage=en
- enableQueueCleaner=true
- matchDistance=5
- enableBeetsTagging=true
- beetsMatchPercentage=90
3 years ago
ports:
- 8686:8686
restart: unless-stopped
```
3 years ago
# Credits
- [LinuxServer.io Team](https://github.com/linuxserver/docker-lidarr)
3 years ago
- [Lidarr](https://lidarr.audio/)
- [Musicbrainz](https://musicbrainz.org/)
- [Docker multi-arch example](https://github.com/ckulka/docker-multi-arch-example)
- [Beets](https://beets.io/)
- [Deemix download client](https://deemix.app/)
- [Tidal-Media-Downloader client](https://github.com/yaronzz/Tidal-Media-Downloader)
2 years ago
- [r128gain](https://github.com/desbma/r128gain)
- [Algorithm Implementation/Strings/Levenshtein distance](https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance)
- Icons made by <a href="http://www.freepik.com/" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon"> www.flaticon.com</a>
- [ffmpeg](https://ffmpeg.org/)
- [yt-dlp](https://github.com/yt-dlp/yt-dlp)
- [SMA Conversion/Tagging Automation Script](https://github.com/mdhiggins/sickbeard_mp4_automator)