Skip to content

Appearance

The accent colour and the aurora glowing behind every page. Saved on the server, so every device and browser uses them.

Colours

Accent colourInstant

Buttons, progress bars, the active menu item and the default aurora. Text in this colour is kept readable whatever you pick.

AuroraInstant

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

Instant

Enable automatic periodic checks for missing albums.

Scheduler off

Instant

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.

Audio conversion · ffmpeg
Checking audio conversion…

Format

Audio formatInstant

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.

Audio quality (kbps)

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

Instant

Generate XML metadata files alongside audio files (useful for Lidarr integration).

Instant

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

Instant

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

Instant

Fingerprint downloaded tracks and look up MusicBrainz recording IDs via AcoustID.

Get a free key at acoustid.org.

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

yt-dlp

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.

Upload cookies.txt

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.

Notify me about

Choose which log types to receive via Telegram.

Send test message

Verify your bot token and chat ID by sending a test message right now.

Discord

Your Discord channel webhook URL (Server Settings › Integrations › Webhooks).

Notify me about

Choose which events to receive via Discord.

Send test message

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.

Notify me about

Choose which events to receive via Ntfy.

Send test message

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.

Newznab indexer + SABnzbd download client
Expose this app to Lidarr as a native Newznab indexer and SABnzbd download client; Lidarr then searches, grabs and imports automatically — no need to push from here. In Lidarr add a Newznab indexer and a SABnzbd download client, both pointing at this app's host and port, using the API key below, and enable Completed Download Handling.

Bridge

Instant

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.

Connection details

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.

Restart required
Changes to these paths require an application restart to take full effect.

Folders

Temporary folder for downloads (e.g. /downloads).

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

Export settings

Download your current configuration as a JSON file.

Import settings

Upload a previously exported config.json to restore settings.

Database

Back up 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.)

Restore database

Upload a previously downloaded backup to replace the current database. The app restarts to apply it. Not available while a download is running.