Deprecated
This repository is now deprecated, will no longer be updated and is being archived. Please visit the new project/replacement:
AMD - Automated Music Downloader
RandomNinjaAtk/amd is a Lidarr companion script to automatically download music for Lidarr
AMD) + Video (AMVD) (Plex Example)
Audio (Features
- Downloading Music using online sources for use in popular applications (Plex/Kodi/Emby/Jellyfin):
- Searches for downloads based on Lidarr's album wanted list
- Downloads using a third party download client automatically
- FLAC / MP3 (320/120) Download Quality
- Notifies Lidarr to automatically import downloaded files
- Music is properly tagged and includes coverart before Lidarr Receives them (Third Party Download Client handles it)
Supported Architectures
The architectures supported by this image are:
Architecture | Tag |
---|---|
x86-64 | latest |
Version Tags
Tag | Description |
---|---|
latest | Newest release code |
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. See the wiki to understand how it works.
Parameter | Function |
---|---|
-v /config |
Configuration files for Lidarr. |
-v /downloads-amd |
Path to your download folder location. (DO NOT DELETE, this is a required path) :: !!!IMPORTANT!!! Map this exact volume mount to your Lidarr Container for everything to work properly!!! |
-e PUID=1000 |
for UserID - see below for explanation |
-e PGID=1000 |
for GroupID - see below for explanation |
-e AUTOSTART=true |
true = Enabled :: Runs script automatically on startup |
-e SCRIPTINTERVAL=1h |
#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 DOWNLOADMODE=wanted |
wanted or artist :: wanted mode only download missing/cutoff :: artist mode downloads all albums by an artist (requires lidarr volume mapping root media folders for import) |
-e FALLBACKSEARCH=True |
True or False :: True = enabled :: Allows DL client to search for missing songs when they are not available |
-e LIST=both |
both or missing or cutoff :: both = missing + cutoff :: missng = lidarr missing list :: cutoff = lidarr cutoff list |
-e SearchType=both |
both or artist or fuzzy :: both = artist + fuzzy searching :: artist = only artist searching :: fuzzy = only fuzzy searching (Various Artist is always fuzzy searched, regardless of setting) |
-e Concurrency=1 |
Number of concurrent downloads |
-e EMBEDDED_COVER_QUALITY=80 |
Controls the quality of the cover image compression in percentage, 100 = no compression |
-e FORMAT=FLAC |
FLAC or MP3 or OPUS or AAC or ALAC |
-e BITRATE=320 |
FLAC -> OPUS/AAC/MP3 will be converted using this bitrate (MP3 320/128 is native, not converted) |
-e ENABLEPOSTPROCESSING=true |
true = enabled :: enables or disables post processing processes as much as possible |
-e FORCECONVERT=false |
true = enabled :: This will convert lossy MP3 to desired target format (exluding FLAC/ALAC, ALAC will convert to AAC) |
-e requirequality=false |
true = enabled :: Requires all downloaded files match target file extension (mp3 or flac) when enabled |
-e MatchDistance=10 |
Set as an integer, the higher the number, the more lenient it is. Example: A match score of 0 is a perfect match :: For more information, this score is produced using this function: Algorithm Implementation/Strings/Levenshtein distance |
-e replaygain=true |
true = enabled :: Scans and analyzes files to add replaygain tags to song metadata |
-e FolderPermissions=766 |
Based on chmod linux permissions |
-e FilePermissions=666 |
Based on chmod linux permissions |
-e MBRAINZMIRROR=https://musicbrainz.org |
OPTIONAL :: Only change if using a different mirror |
-e MBRATELIMIT=1 |
OPTIONAL: musicbrainz rate limit, musicbrainz allows only 1 connection per second, max setting is 10 :: Set to 101 to disable limit |
-e LidarrUrl=http://x.x.x.x:8686 |
Set domain or IP to your Lidarr instance including port. If using reverse proxy, do not use a trailing slash. Ensure you specify http/s. |
-e LidarrAPIkey=LIDARRAPI |
Lidarr API key. |
-e ARL_TOKEN=ARLTOKEN |
User token for dl client, use google... |
-e NOTIFYPLEX=false |
true = enabled :: ONLY APPLIES ARTIST MODE :: Plex must have a music library added and be configured to use the exact same mount point as Lidarr's root folder |
-e PLEXLIBRARYNAME=Music |
This must exactly match the name of the Plex Library that contains the Lidarr Media Folder data |
-e PLEXURL=http://x.x.x.x:32400 |
ONLY used if NOTIFYPLEX is enabled... |
-e PLEXTOKEN=plextoken |
ONLY used if NOTIFYPLEX is enabled... |
-e ALBUM_TYPE_FILTER=COMPILE |
Filter Types: COMPILE, SINGLE, ALBUM, EP (this is a ", " separated list of Album Types to skip) (Applicable to artist mode only) |
-e POSTPROCESSTHREADS=1 |
Controls number of threads used for Format conversion and replaygain tagging |
Usage
Here are some example snippets to help you get started creating a container.
docker
docker create \
--name=amd \
-v /path/to/config/files:/config \
-v /path/to/downloads:/downloads-amd \
-e PUID=1000 \
-e PGID=1000 \
-e AUTOSTART=true \
-e SCRIPTINTERVAL=1h \
-e DOWNLOADMODE=wanted \
-e FALLBACKSEARCH=True \
-e LIST=both \
-e SearchType=both \
-e Concurrency=1 \
-e EMBEDDED_COVER_QUALITY=80 \
-e FORMAT=FLAC \
-e BITRATE=320 \
-e ENABLEPOSTPROCESSING=true \
-e FORCECONVERT=false \
-e requirequality=false \
-e MatchDistance=10 \
-e replaygain=true \
-e FolderPermissions=766 \
-e FilePermissions=666 \
-e MBRAINZMIRROR=https://musicbrainz.org \
-e MBRATELIMIT=1 \
-e LidarrUrl=http://x.x.x.x:8686 \
-e LidarrAPIkey=LIDARRAPI \
-e ARL_TOKEN=ARLTOKEN \
-e NOTIFYPLEX=false \
-e PLEXLIBRARYNAME=Music \
-e PLEXURL=http://x.x.x.x:8686 \
-e PLEXTOKEN=plextoken \
-e ALBUM_TYPE_FILTER=COMPILE \
-e POSTPROCESSTHREADS=1 \
--restart unless-stopped \
randomninjaatk/amd
docker-compose
Compatible with docker-compose v2 schemas.
version: "2.1"
services:
amd:
image: randomninjaatk/amd
container_name: amd
volumes:
- /path/to/config/files:/config
- /path/to/downloads:/downloads-amd
environment:
- PUID=1000
- PGID=1000
- AUTOSTART=true
- SCRIPTINTERVAL=1h
- DOWNLOADMODE=wanted
- FALLBACKSEARCH=True
- LIST=both
- SearchType=both
- Concurrency=1
- EMBEDDED_COVER_QUALITY=80
- FORMAT=FLAC
- BITRATE=320
- ENABLEPOSTPROCESSING=true
- FORCECONVERT=false
- requirequality=false
- MatchDistance=10
- replaygain=true
- FolderPermissions=766
- FilePermissions=666
- MBRAINZMIRROR=https://musicbrainz.org
- MBRATELIMIT=1
- LidarrUrl=http://x.x.x.x:8686
- LidarrAPIkey=LIDARRAPI
- ARL_TOKEN=ARLTOKEN
- NOTIFYPLEX=false
- PLEXLIBRARYNAME=Music
- PLEXURL=http://x.x.x.x:8686
- PLEXTOKEN=plextoken
- ALBUM_TYPE_FILTER=COMPILE
- POSTPROCESSTHREADS=1
restart: unless-stopped
Script Information
- Script will automatically run when enabled, if disabled, you will need to manually execute with the following command:
- From Host CLI:
docker exec -it amd /bin/bash -c 'bash /scripts/download.bash'
- From Docker CLI:
bash /scripts/download.bash
- From Host CLI:
Directories:
- /config/scripts
- Contains the scripts that are run
- /config/logs
- Contains the log output from the script
- /config/cache
- Contains the artist data cache to speed up processes
- /config/deemix
- Contains deemix app data
Lidarr Configuration Recommendations
Media Management Settings:
- Disable Track Naming
- Disabling track renaming enables synced lyrics that are imported as extras to be utilized by media players that support using them
Track Naming:
- Artist Folder:
{Artist Name}{ (Artist Disambiguation)}
- Album Folder:
{Artist Name}{ - ALBUM TYPE}{ - Release Year} - {Album Title}{ ( Album Disambiguation)}
Importing:
- Enable Import Extra Files
lrc,jpg,png
File Management
- Change File Date: Album Release Date
Permissions
- Enable Set Permissions