{"id":13552308,"url":"https://github.com/RandomNinjaAtk/docker-amd","last_synced_at":"2025-04-03T03:31:17.499Z","repository":{"id":41967123,"uuid":"284502641","full_name":"RandomNinjaAtk/docker-amd","owner":"RandomNinjaAtk","description":"AMD is a Lidarr companion script to automatically download music for Lidarr","archived":true,"fork":false,"pushed_at":"2022-07-16T13:32:14.000Z","size":304,"stargazers_count":220,"open_issues_count":0,"forks_count":27,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-11-03T23:34:40.329Z","etag":null,"topics":["automation","bash","lidarr"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RandomNinjaAtk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["RandomNinjaAtk"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-08-02T16:49:38.000Z","updated_at":"2024-10-04T09:55:50.000Z","dependencies_parsed_at":"2022-08-12T00:50:46.583Z","dependency_job_id":null,"html_url":"https://github.com/RandomNinjaAtk/docker-amd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomNinjaAtk%2Fdocker-amd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomNinjaAtk%2Fdocker-amd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomNinjaAtk%2Fdocker-amd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RandomNinjaAtk%2Fdocker-amd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RandomNinjaAtk","download_url":"https://codeload.github.com/RandomNinjaAtk/docker-amd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933394,"owners_count":20857047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","bash","lidarr"],"created_at":"2024-08-01T12:02:02.062Z","updated_at":"2025-04-03T03:31:12.369Z","avatar_url":"https://github.com/RandomNinjaAtk.png","language":"Shell","readme":"# Deprecated\n\nThis repository is now deprecated, will no longer be updated and is being archived. Please visit the new project/replacement:\n* [https://github.com/RandomNinjaAtk/docker-lidarr-extended](https://github.com/RandomNinjaAtk/docker-lidarr-extended)\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n# AMD - Automated Music Downloader \n[RandomNinjaAtk/amd](https://github.com/RandomNinjaAtk/docker-amd) is a Lidarr companion script to automatically download music for Lidarr \n\n[![RandomNinjaAtk/amd](https://raw.githubusercontent.com/RandomNinjaAtk/unraid-templates/master/randomninjaatk/img/amd.png)](https://github.com/RandomNinjaAtk/docker-amd)\n\n### Audio ([AMD](https://github.com/RandomNinjaAtk/docker-amd)) + Video ([AMVD](https://github.com/RandomNinjaAtk/docker-amvd)) (Plex Example)\n![](https://raw.githubusercontent.com/RandomNinjaAtk/Scripts/master/images/plex-musicvideos.png)\n\n## Features\n* Downloading **Music** using online sources for use in popular applications (Plex/Kodi/Emby/Jellyfin): \n  * Searches for downloads based on Lidarr's album wanted list\n  * Downloads using a third party download client automatically\n  * FLAC / MP3 (320/120) Download Quality\n  * Notifies Lidarr to automatically import downloaded files\n  * Music is properly tagged and includes coverart before Lidarr Receives them (Third Party Download Client handles it)\n\n## Supported Architectures\n\nThe architectures supported by this image are:\n\n| Architecture | Tag |\n| :----: | --- |\n| x86-64 | latest |\n\n## Version Tags\n\n| Tag | Description |\n| :----: | --- |\n| latest | Newest release code |\n\n\n## Parameters\n\nContainer images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `\u003cexternal\u003e:\u003cinternal\u003e` 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](https://github.com/RandomNinjaAtk/docker-amd/wiki) to understand how it works.\n\n| Parameter | Function |\n| --- | --- |\n| `-v /config` | Configuration files for Lidarr. |\n| `-v /downloads-amd` | Path to your download folder location. (\u003cstrong\u003eDO NOT DELETE, this is a required path\u003c/strong\u003e) :: \u003cstrong\u003e!!!IMPORTANT!!! Map this exact volume mount to your Lidarr Container for everything to work properly!!! \u003c/strong\u003e|\n| `-e PUID=1000` | for UserID - see below for explanation |\n| `-e PGID=1000` | for GroupID - see below for explanation |\n| `-e AUTOSTART=true` | true = Enabled :: Runs script automatically on startup |\n| `-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|\n| `-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) |\n| `-e FALLBACKSEARCH=True` | True or False :: True = enabled :: Allows DL client to search for missing songs when they are not available |\n| `-e LIST=both` | both or missing or cutoff :: both = missing + cutoff :: missng = lidarr missing list :: cutoff = lidarr cutoff list |\n| `-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) |\n| `-e Concurrency=1` | Number of concurrent downloads |\n| `-e EMBEDDED_COVER_QUALITY=80` | Controls the quality of the cover image compression in percentage, 100 = no compression |\n| `-e FORMAT=FLAC` | FLAC or MP3 or OPUS or AAC or ALAC |\n| `-e BITRATE=320` | FLAC -\u003e OPUS/AAC/MP3 will be converted using this bitrate  (MP3 320/128 is native, not converted) |\n| `-e ENABLEPOSTPROCESSING=true` | true = enabled :: enables or disables post processing processes as much as possible |\n| `-e FORCECONVERT=false` | true = enabled :: This will convert lossy MP3 to desired target format (exluding FLAC/ALAC, ALAC will convert to AAC) |\n| `-e requirequality=false` | true = enabled :: Requires all downloaded files match target file extension (mp3 or flac) when enabled |\n| `-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](https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance) |\n| `-e replaygain=true` | true = enabled :: Scans and analyzes files to add replaygain tags to song metadata |\n| `-e FolderPermissions=766` | Based on chmod linux permissions |\n| `-e FilePermissions=666` | Based on chmod linux permissions |\n| `-e MBRAINZMIRROR=https://musicbrainz.org` | OPTIONAL :: Only change if using a different mirror |\n| `-e MBRATELIMIT=1` | OPTIONAL: musicbrainz rate limit, musicbrainz allows only 1 connection per second, max setting is 10 :: Set to 101 to disable limit |\n| `-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. |\n| `-e LidarrAPIkey=LIDARRAPI` | Lidarr API key. |\n| `-e ARL_TOKEN=ARLTOKEN` | User token for dl client, use google... |\n| `-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 |\n| `-e PLEXLIBRARYNAME=Music` | This must exactly match the name of the Plex Library that contains the Lidarr Media Folder data |\n| `-e PLEXURL=http://x.x.x.x:32400` | ONLY used if NOTIFYPLEX is enabled... |\n| `-e PLEXTOKEN=plextoken` | ONLY used if NOTIFYPLEX is enabled... |\n| `-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) |\n| `-e POSTPROCESSTHREADS=1` | Controls number of threads used for Format conversion and replaygain tagging |\n\n\n## Usage\n\nHere are some example snippets to help you get started creating a container.\n\n### docker\n\n```\ndocker create \\\n  --name=amd \\\n  -v /path/to/config/files:/config \\\n  -v /path/to/downloads:/downloads-amd \\\n  -e PUID=1000 \\\n  -e PGID=1000 \\\n  -e AUTOSTART=true \\\n  -e SCRIPTINTERVAL=1h \\\n  -e DOWNLOADMODE=wanted \\\n  -e FALLBACKSEARCH=True \\\n  -e LIST=both \\\n  -e SearchType=both \\\n  -e Concurrency=1 \\\n  -e EMBEDDED_COVER_QUALITY=80 \\\n  -e FORMAT=FLAC \\\n  -e BITRATE=320 \\\n  -e ENABLEPOSTPROCESSING=true \\\n  -e FORCECONVERT=false \\\n  -e requirequality=false \\\n  -e MatchDistance=10 \\\n  -e replaygain=true \\\n  -e FolderPermissions=766 \\\n  -e FilePermissions=666 \\\n  -e MBRAINZMIRROR=https://musicbrainz.org \\\n  -e MBRATELIMIT=1 \\\n  -e LidarrUrl=http://x.x.x.x:8686 \\\n  -e LidarrAPIkey=LIDARRAPI \\\n  -e ARL_TOKEN=ARLTOKEN\t\\\n  -e NOTIFYPLEX=false \\\n  -e PLEXLIBRARYNAME=Music \\\n  -e PLEXURL=http://x.x.x.x:8686 \\\n  -e PLEXTOKEN=plextoken \\\n  -e ALBUM_TYPE_FILTER=COMPILE \\\n  -e POSTPROCESSTHREADS=1 \\\n  --restart unless-stopped \\\n  randomninjaatk/amd \n```\n\n\n### docker-compose\n\nCompatible with docker-compose v2 schemas.\n\n```\nversion: \"2.1\"\nservices:\n  amd:\n    image: randomninjaatk/amd \n    container_name: amd\n    volumes:\n      - /path/to/config/files:/config\n      - /path/to/downloads:/downloads-amd\n    environment:\n      - PUID=1000\n      - PGID=1000\n      - AUTOSTART=true\n      - SCRIPTINTERVAL=1h\n      - DOWNLOADMODE=wanted\n      - FALLBACKSEARCH=True\n      - LIST=both\n      - SearchType=both\n      - Concurrency=1\n      - EMBEDDED_COVER_QUALITY=80\n      - FORMAT=FLAC\n      - BITRATE=320\n      - ENABLEPOSTPROCESSING=true\n      - FORCECONVERT=false\n      - requirequality=false\n      - MatchDistance=10\n      - replaygain=true\n      - FolderPermissions=766\n      - FilePermissions=666\n      - MBRAINZMIRROR=https://musicbrainz.org\n      - MBRATELIMIT=1\n      - LidarrUrl=http://x.x.x.x:8686\n      - LidarrAPIkey=LIDARRAPI\n      - ARL_TOKEN=ARLTOKEN\n      - NOTIFYPLEX=false\n      - PLEXLIBRARYNAME=Music\n      - PLEXURL=http://x.x.x.x:8686\n      - PLEXTOKEN=plextoken\n      - ALBUM_TYPE_FILTER=COMPILE\n      - POSTPROCESSTHREADS=1\n    restart: unless-stopped\n```\n\n\n# Script Information\n* Script will automatically run when enabled, if disabled, you will need to manually execute with the following command:\n  * From Host CLI: `docker exec -it amd /bin/bash -c 'bash /scripts/download.bash'`\n  * From Docker CLI: `bash /scripts/download.bash`\n  \n## Directories:\n* \u003cstrong\u003e/config/scripts\u003c/strong\u003e\n  * Contains the scripts that are run\n* \u003cstrong\u003e/config/logs\u003c/strong\u003e\n  * Contains the log output from the script\n* \u003cstrong\u003e/config/cache\u003c/strong\u003e\n  * Contains the artist data cache to speed up processes\n* \u003cstrong\u003e/config/deemix\u003c/strong\u003e\n  * Contains deemix app data\n\n\u003cbr /\u003e\n\n# Lidarr Configuration Recommendations\n\n## Media Management Settings:\n* Disable Track Naming\n  * Disabling track renaming enables synced lyrics that are imported as extras to be utilized by media players that support using them\n\n#### Track Naming:\n\n* Artist Folder: `{Artist Name}{ (Artist Disambiguation)}`\n* Album Folder: `{Artist Name}{ - ALBUM TYPE}{ - Release Year} - {Album Title}{ ( Album Disambiguation)}`\n\n#### Importing:\n* Enable Import Extra Files\n  * `lrc,jpg,png`\n\n#### File Management\n* Change File Date: Album Release Date\n \n#### Permissions\n* Enable Set Permissions\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e \n\n\n# Credits\n- [Original Idea based on lidarr-download-automation by Migz93](https://github.com/Migz93/lidarr-download-automation)\n- [Deemix download client](https://deemix.app/)\n- [Musicbrainz](https://musicbrainz.org/)\n- [Lidarr](https://lidarr.audio/)\n- [r128gain](https://github.com/desbma/r128gain)\n- [Algorithm Implementation/Strings/Levenshtein distance](https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance)\n- Icons made by \u003ca href=\"http://www.freepik.com/\" title=\"Freepik\"\u003eFreepik\u003c/a\u003e from \u003ca href=\"https://www.flaticon.com/\" title=\"Flaticon\"\u003e www.flaticon.com\u003c/a\u003e\n","funding_links":["https://github.com/sponsors/RandomNinjaAtk"],"categories":["Shell","[🌐 decentralize](https://github.com/stars/ketsapiwiq/lists/decentralize)"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRandomNinjaAtk%2Fdocker-amd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRandomNinjaAtk%2Fdocker-amd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRandomNinjaAtk%2Fdocker-amd/lists"}