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.3] - 2026-06-28
✨ New Features
Save YouTube playlist imports to your library — new Save YouTube Playlist Imports to Library setting (env PLAYLIST_TO_LIBRARY, default off). When on, a "Playlist creation from YouTube" import is written into your Lidarr music path (LIDARR_PATH) instead of only the download folder, and a path-based Lidarr scan (DownloadedAlbumsScan) is requested when it finishes — so the tracks show up in Jellyfin (after its scan) and Lidarr imports whatever it can match. Off keeps the previous download-folder-only behavior. (#79)
🧹 Improved
Retry without leaving the Downloads page — the Retry button now opens the search / paste-a-link overlay in place on the Downloads page instead of bouncing you to the home page, so you can retry one failed album after another without losing your spot. (#78)
Smarter Cookies "Test" — the verdict now mirrors yt-dlp's own login check (LOGIN_INFOand a SAPISID-family cookie). A rotated/invalidated session (account cookies present but LOGIN_INFO cleared — which yt-dlp writes back to the file after each run) gets its own clear message telling you to re-export from a private window, instead of generic advice.
Background download-client jobs are visible on the dashboard when the foreground is idle, and the skip-track button acts on the download you're actually looking at.
No more head-of-line blocking in the queue — a manual/scheduler album waiting for the foreground slot no longer holds back download-client albums (with free concurrency slots) queued behind it.
Lighter Lidarr-polled endpoints — the Newznab/SABnzbd handlers read the config once per request, the SABnzbd queue progress is a cheap status tally instead of a deep copy under the lock, and the retry-cooldown window comes from one shared helper across the scheduler, feed exclusion and grab refusal.
🐛 Bug Fixes
Manual / playlist / retry downloads no longer fail with "Requested format is not available" — every single-URL path (manual track download, the failed-track retry, and YouTube playlist import) now uses the same multi-client / multi-selector fallback as the automatic album download (trying web/ios/etc. and looser selectors) instead of one bestaudio attempt on the configured android client. Cookies, PO tokens and the format override apply to these paths too. (#80)
yt-dlp updater now offers the "Restart App" step after installing a new version — the button was being reset by its own handler, so the freshly-installed yt-dlp was never applied.
Cookies "Test" no longer reports real exports as logged out — it parses the file with yt-dlp's own cookie jar, which understands the #HttpOnly_ line prefix browsers and yt-dlp use for the (HttpOnly) LOGIN_INFO cookie.
The yt-dlp Format Override now actually delivers premium formats on the manual path(thanks @Gazz1e) — the manual download honored the override but stayed pinned to the android client, which never exposes formats like 141; web-family clients are now tried first when an override is set, and the override rides a slash-fallback (141/bestaudio/...) so a video without it still downloads.
Stopping a download no longer discards a manual album's finished tracks — the "drop everything" stop behavior now applies only to Lidarr download-client grabs; manual/scheduler downloads still import and log the tracks that completed, and a stop is reported consistently so a stopped grab can't be blocklisted as a failure.
Concurrent Album Downloads values outside 1–5 are clamped on load, so an out-of-range value can't blank the Settings dropdown and silently save back 1.
Download-client API-key check no longer 500s on a non-ASCII key (the timing-safe comparison now runs on bytes).
Settings UI polish — the "List formats" result wraps long text and scrolls (no more invisible clipping on mobile), format-ID chips use a calm style, the button is disabled while a lookup is in flight, Enter submits the URL field, and that diagnostic field no longer marks settings as unsaved.