You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changelog
[1.8.2] - 2026-06-09
✨ New Features
yt-dlp Format Override — force a specific yt-dlp format selector (e.g. 141 = 256 kbps AAC with a YouTube Premium account) via Settings → yt-dlp Format Override, the ytdlp_format config key, or the YTDLP_FORMAT env var. The built-in selectors stay as a fallback when the requested format isn't available for a video. (integrates and extends @Gazz1e's supportformat141 fork)
"List formats" tester — next to the override field: paste a YouTube video URL/ID and see that video's available audio format IDs (codec, bitrate, audio-only vs audio+video, size); click an ID to drop it into the override.
Concurrent album downloads in Download Client mode — new Concurrent Album Downloads setting (1–5, default 1; env DOWNLOAD_CLIENT_CONCURRENT_ALBUMS). Each job tracks its own per-track state and the SABnzbd queue still reports per-album progress.
🧹 Improved
Automatic library refresh — when Lidarr RSS-syncs or searches the Newznab indexer (which happens right after a new artist or album is added), a background missing-albums sync is triggered (debounced, and only when Lidarr is configured), so newly-added albums show up in the app and the indexer feed without waiting for the periodic sync loop.
🐛 Bug Fixes
Robust, case-insensitive Forbidden Words — built-in and custom words are now merged, normalized (trimmed + lower-cased) and de-duplicated through a single helper; previously only the custom words were normalized, so a built-in/API/env word with stray casing or whitespace filtered nothing. Also fixed a possible crash on a null value. The default list is consolidated and aligned with the Settings UI (added "reaction").
"List formats" no longer errors — no more "Requested format is not available" or "No audio formats found": it now mirrors yt-dlp -F (yt-dlp's default clients first, full processing with ignore_no_formats_error, falling back to specific clients). music.youtube.com URLs are passed through unchanged.
Security (SSRF) — the format-listing endpoint now validates input against the YouTube allowlist (_validate_youtube_url) before handing it to yt-dlp, so it can't be used to probe internal services.