Summary
Release v0.8 adds Subsonic authentication enforcement, explicit content filtering, auto-sync for external playlists, and numerous bug fixes for downloads, playlists, and multi-disc albums.
What's New in v0.8
Security: Subsonic Authentication
- Authentication Enforcement: All Subsonic API requests now require valid credentials. Previously, external endpoints could be accessed without authentication.
- Credential Caching: Validated credentials are cached for 5 minutes to reduce upstream server load.
Explicit Content Filter
- Content Filtering: New
ExplicitFiltersetting to prioritize clean or explicit versions of tracks (All,PreferClean,PreferExplicit,CleanOnly,ExplicitOnly).
External Playlists Auto-Sync
- Automatic Updates: External playlists are now automatically synced with the source provider when accessed, keeping track lists up to date.
Download Improvements
- Move Cached to Permanent on Star: Starring a cached song now moves it to permanent storage instead of re-downloading.
- Playlist ID Resolution: External song IDs in
updatePlaylistrequests are resolved to local IDs after download completes. - External ID Resolution in Star/Unstar: External song IDs are resolved to local IDs for proper scrobbling and library management.
Bug Fixes
- Fix Deezer playlist pagination (was limited to 400 tracks)
- Fix multi-disc album track ordering (sort by disc number first, then track)
- Fix proxy request body preservation for binary/multipart uploads
- Fix Qobuz album cover art propagation to tracks
- Fix folder template variable in Docker
- Fix album art embedding in downloaded files
- Fix duplicate album folder structure
- Fix partial/broken files when client times out
- Fix playlist track ordering for SquidWTF and Deezer
Refactoring
- Refactored
BaseDownloadServicewithHttpResponseStreamfor cleaner resource management - Extracted download path decision logic from providers to base service
Contributors
- @m8tec: Playlist ID resolution, track ordering fixes, Deezer pagination, proxy body preservation, star/unstar external ID resolution
- @kamaeff: BaseDownloadService refactoring
- @AmineDjeghri: Docker folder template fix