Settings
Settings marked Instant apply right away; everything else is saved with Save.
No matching settings
Try a different word.
Appearance
The accent colour and the aurora glowing behind every page. Saved on the server, so every device and browser uses them.
Colours
Buttons, progress bars, the active menu item and the default aurora. Text in this colour is kept readable whatever you pick.
The glow behind every page: the colours of the album cover you are looking at, always your accent colour, or off.
Automation
Check Lidarr for missing albums on a schedule and download them automatically.
Scheduler
Enable automatic periodic checks for missing albums.
Scheduler off
Automatically download missing albums when found.
How often to check for missing albums, in minutes (1–1440).
Maximum number of albums to queue per scheduler run. Set to 0 for unlimited.
Skip auto-downloading an album that was already attempted (success or failure) within this many hours, so the scheduler works through the rest of the library before retrying the same one. Set to 0 to disable.
Failing tracks
A track that keeps failing (e.g. a song that simply isn't on YouTube) waits twice as long after each failure instead of being retried every cycle forever — capped at 30 days, so it is still found if it appears later. Turn off to retry every run.
Give up on a track for good after this many consecutive failures. Set to 0 to never give up (just keep backing off). Adding an album to the queue by hand always retries everything immediately.
Audio
Format, bitrate and loudness of the files you download.
Format
M4A and Opus prefer the native YouTube stream and stream-copy it without re-encoding (no quality loss) — unless Loudness Normalization is on, which re-encodes the audio. MP3 always transcodes.
Target bitrate when transcoding or re-encoding (MP3 always; M4A/Opus when the native codec isn't available or Loudness Normalization is on). Only stream-copied audio keeps the YouTube source bitrate regardless of this setting.
Apply EBU R128 loudness normalization (−14 LUFS) so volume is consistent across tracks. Runs a separate re-encode pass, so the audio is re-encoded at the Audio Quality bitrate (M4A/Opus won't keep the original stream when enabled).
Measure each track's loudness and write ReplayGain tags (REPLAYGAIN_TRACK_GAIN/PEAK) so players like Jellyfin/Navidrome can normalize volume — without re-encoding the audio (non-destructive, unlike Loudness Normalization). Adds a short ffmpeg analysis pass per track.
Advanced
Force a specific yt-dlp format selector (e.g. 141 for 256 kbps AAC with a YouTube Premium account). The built-in selectors are used as a fallback when the requested format isn't available. Leave empty for automatic best-audio selection. Use “List formats” to see a video's available format IDs.
Library & metadata
What gets written next to each track, and how Lidarr is told about it.
Files
Generate XML metadata files alongside audio files (useful for Lidarr integration).
Write the album artwork as cover.jpg next to the audio files. Disable to save disk space if you don't want artwork stored on disk. (Cover is still embedded in ID3 tags and used for notifications regardless.)
Fetch time-synced lyrics from LRCLIB and write a .lrc file next to each track, so Jellyfin/Navidrome/Plex can show synced lyrics. Falls back to plain lyrics when synced aren't available.
For “Playlist creation from YouTube”: write the downloaded tracks into your Lidarr music library path (instead of only the download folder) and ask Lidarr to scan them, so they show up in Jellyfin/Lidarr (Lidarr imports whatever it can match). Requires LIDARR_PATH configured. Off keeps the files in the download folder only.
One playlist URL per line. Every hour, each video not downloaded yet is imported as one album — a title like “Artist - Album (1974) [Full Album]” becomes Artist/Album (1974)/. Made for full-album uploads such as vinyl rips. Follows “Save YouTube playlist imports to library” for where the files go.
Lidarr
After files are imported into Lidarr, send a RenameFiles command so Lidarr applies its configured naming convention (also fires Lidarr's “on rename” connections).
AcoustID
Fingerprint downloaded tracks and look up MusicBrainz recording IDs via AcoustID.
Get a free key at acoustid.org.
Search & matching
How YouTube is searched and which results are accepted.
YouTube search
Number of tracks downloaded simultaneously per album. Higher values speed up downloads but increase the risk of being rate-limited or banned by YouTube. Recommended: 2.
Which artist to use when building the YouTube search query for a track. “Lidarr Album Artist” is instant but shows “Various Artists” for compilations, so those tracks often can't be found. The other options resolve the real per-track artist via MusicBrainz and/or iTunes before falling back to the album artist — more accurate, but adds up to ~1s per track (MusicBrainz rate limit) to the search step.
Allowed difference between track duration and YouTube video length, in seconds (1–60). Recommended: 5–15 seconds.
Minimum YouTube match score (0.0–1.0) required to accept a track when AcoustID verification is unavailable. Recommended: 0.8.
Forbidden words
YouTube results whose title contains a selected word are skipped.
Add your own words to filter out (e.g. “slowed and reverb”). Matched against the YouTube title using the same rules as the built-in list.
YouTube access
The download engine, and what to do when YouTube asks you to sign in or prove you're not a bot.
yt-dlp engine
Installed version: …
Bot protection
Optional. Helps with “Sign in to confirm you're not a bot” / format-unavailable errors. Paste one or more po_token values (comma-separated) from yt-dlp. Leave empty unless you hit those errors.
Optional, recommended over a manual token: URL of a bgutil PO token provider run as a sidecar (e.g. http://bgutil-provider:4416). yt-dlp fetches tokens automatically when needed. See the bundled docker-compose.
Cookies
Absolute path inside the container to a Netscape-format cookies.txt. Required when YouTube asks for sign-in or returns 403. Uploading below writes it to /config/cookies.txt automatically.
Pick a Netscape-format cookies.txt exported from your browser (e.g. the “Get cookies.txt LOCALLY” extension). It is saved to /config/cookies.txt and the path above is set automatically.
Notifications
Get told about downloads on Telegram, Discord or Ntfy. A channel is enabled once its token, webhook or topic is filled in.
Telegram
Your Telegram Bot API token from @BotFather.
The chat ID where notifications will be sent.
Choose which log types to receive via Telegram.
Verify your bot token and chat ID by sending a test message right now.
Discord
Your Discord channel webhook URL (Server Settings › Integrations › Webhooks).
Choose which events to receive via Discord.
Verify your webhook URL by posting a test message right now.
Ntfy
Your Ntfy topic name (e.g. lidarr-music).
Ntfy server URL (default: https://ntfy.sh, or your self-hosted instance).
Bearer token if your Ntfy topic requires authentication.
Default notification priority.
Choose which events to receive via Ntfy.
Verify your Ntfy setup by sending a test notification right now.
Lidarr download client
Let Lidarr search, grab and import through this app on its own.
Bridge
Turn on the Newznab + SABnzbd endpoints so Lidarr can use this app.
Use this same key for both the Newznab indexer and the SABnzbd client in Lidarr.
SABnzbd category Lidarr should target (must match the category set on the Lidarr download client).
How many albums grabbed by Lidarr download simultaneously. Higher values finish a batch faster but multiply the load on YouTube (each album also downloads its tracks in parallel per “Concurrent track downloads”). Recommended: 1.
Paths to enter in Lidarr (host and port are this app's).
Newznab indexer → API Path: /api/newznab/api SABnzbd client → URL Base: /api/sabnzbd/
Paths
Where downloads land and where Lidarr's library lives, as seen inside the container.
Folders
Temporary folder for downloads (e.g. /downloads).
Set via the DOWNLOAD_PATH environment variable — change it there.
Lidarr's music library folder — leave empty to use the download path (e.g. /music).
Backup & restore
Move your configuration and download history between installs.
Configuration
Download your current configuration as a JSON file.
Upload a previously exported config.json to restore settings.
Database
Download a full backup of the app database — download history, logs, queue, banned URLs and playlist imports. Keep it safe to restore after a reset or on a new install. (Your config.json is exported separately, above.)
Upload a previously downloaded backup to replace the current database. The app restarts to apply it. Not available while a download is running.