Broque Thomas
e6fdefec1f
Update recent updates with HiFi, Spotify Link, and latest fixes
2026-03-15 22:56:40 -07:00
Broque Thomas
ec389c5ae8
Add HiFi as free lossless download source via public hifi-api instances
...
New download mode alongside Soulseek, YouTube, Tidal, and Qobuz. Uses
community-run REST API instances (no auth required) that serve Tidal CDN
FLAC streams. Features quality fallback chain (hires→lossless→high→low),
automatic instance rotation on failure, and full hybrid mode support.
Also fixes 6 missing streaming source checks for HiFi and Qobuz in the
frontend that were blocking playback with "format not supported" errors.
2026-03-15 22:53:34 -07:00
Broque Thomas
483e45cbc0
Add Spotify Link tab for public playlist/album scraping without API credentials
...
Scrapes Spotify's embed endpoint to extract track data from any public
playlist or album URL. Full discovery flow with Deezer parity: parse →
card → discovery modal → live progress → sync → download missing.
- New scraper: core/spotify_public_scraper.py (embed endpoint parsing)
- 12 API endpoints mirroring Deezer's discovery/sync/download flow
- WebSocket live discovery updates via spotify_public_discovery_states
- Green-branded tab, cards, and input styling (#1DB954)
- Album vs playlist detection with distinct card icons (💿 /🎵 )
- Download persistence: card click reopens download modal after close
- Card phase reset on cancel/completion (closeDownloadMissingModal)
- Backend download linking for spotify_public_ and deezer_ prefixes
- Completion handlers (V2 + no-missing-tracks) for both platforms
- Source URLs stored on mirrored playlists for future auto-refresh
2026-03-15 21:25:05 -07:00
Broque Thomas
0742cc45e6
Add hemisphere setting for seasonal playlists on Discover page
...
Southern hemisphere users now see correct seasons (e.g. March = Autumn,
December = Summer). Holidays (Halloween, Christmas, Valentine's) stay
calendar-fixed regardless of hemisphere.
- Hemisphere dropdown in Discovery Pool Settings
- GET/POST /api/discovery/hemisphere endpoints
- Season detection offsets months by 6 for southern hemisphere
- Stored in metadata table, defaults to northern
2026-03-15 18:49:51 -07:00
Broque Thomas
219f453b74
update recent updates
2026-03-15 14:41:32 -07:00
Broque Thomas
ab21855af3
Enrich repair findings with album art, artist images & live job progress
...
- All 9 repair jobs now emit report_progress() for real-time card updates
(phase, log lines, per-item activity) via WebSocket repair:progress events
- Enrich finding details with album/artist thumb URLs across all repair jobs
(dead_file, duplicate, metadata_gap, album_completeness, missing_cover_art,
acoustid_scanner, track_number_repair, fake_lossless, orphan_file)
- Track number repair: return match_score from fuzzy matching, add suffix-based
DB lookup for album/artist art (handles cross-environment path mismatches)
- Fix Plex/Jellyfin relative thumb URLs in findings endpoint via fix_artist_image_url
- Labeled media cards in finding detail panels (album title + artist name under images)
- Dashboard tooltip shows current job name + per-job progress instead of stale stats
2026-03-15 14:08:26 -07:00
Broque Thomas
7a706e8c11
Add fix actions for maintenance findings (dead files, orphans, duplicates, etc.)
...
- New fix_finding() dispatcher in repair_worker with per-type handlers:
dead_file (remove DB entry), orphan_file (delete from disk),
track_number_mismatch (update DB), missing_cover_art (apply artwork URL),
metadata_gap (apply found fields), duplicate_tracks (keep best quality)
- New POST /api/repair/findings/<id>/fix endpoint
- Frontend: contextual fix buttons per finding type, bulk "Fix Selected"
- Removed path_mismatch from fixable types (dry-run preview only)
2026-03-15 12:51:18 -07:00
Broque Thomas
dab94ce65d
update soulsync repair worker with new jobs
2026-03-15 10:18:50 -07:00
Broque Thomas
6fa3b490ea
Fix Windows path mangling for artist names with trailing dots (e.g. Fred again..)
2026-03-14 23:11:18 -07:00
Broque Thomas
cae2bd0c62
Add granular post-processing toggles for metadata services, cover art, and lyrics
2026-03-14 22:45:50 -07:00
Broque Thomas
5f72fe79a6
Embed Tidal, Qobuz, Last.fm, and Genius metadata into file tags during post-processing
2026-03-14 22:28:22 -07:00
Broque Thomas
264e696fe3
Fix per-profile ListenBrainz playlist cache scoping and stale data recovery
2026-03-14 21:11:59 -07:00
Broque Thomas
8f0b9518bc
Add per-profile ListenBrainz support with personal settings modal
2026-03-14 20:12:19 -07:00
Broque Thomas
9a22c49a0e
Add FLAC bit depth fallback option to quality profile
2026-03-14 19:24:25 -07:00
Broque Thomas
7e19e66ef3
Add quality enhance button to upgrade existing library tracks & Add iTunes fallback to Quality Enhance endpoint for full metadata source parity
2026-03-14 17:09:08 -07:00
Broque Thomas
0b8bfa1e6b
Scope automation-triggered watchlist scans to the calling profile & Fix watchlist scan silently skipping all albums due to metadata cache returning incomplete data
2026-03-14 13:23:03 -07:00
Broque Thomas
3bbbfb125e
Add $albumtype template variable with smart EP/Single/Album detection
2026-03-14 12:40:25 -07:00
Broque Thomas
a512d6ae70
Fix discover hero/modal to strictly filter similar artists by active source
2026-03-14 10:20:25 -07:00
Broque Thomas
945f86c643
Library Repair Worker: multi-job background maintenance daemon with 10 jobs, findings system, and management modal
2026-03-14 09:09:18 -07:00
Broque Thomas
6de3ab7cef
Add universal metadata cache for Spotify & iTunes API responses with browsable dashboard tool
2026-03-14 01:26:45 -07:00
Broque Thomas
c54e52e18d
Add Spotify Library discovery section, instrumental filter, custom exclusion terms & album download modal fixes
2026-03-14 00:21:44 -07:00
Broque Thomas
a5e72cff05
Add instrumental filter & custom exclusion terms to watchlist content filters
2026-03-13 23:09:12 -07:00
Broque Thomas
9856ec6772
update recent updates
2026-03-13 22:49:35 -07:00
Broque Thomas
e3fdb12d78
Preserve watchlist scan timestamps for UI display instead of wiping on lookback changes
2026-03-13 22:46:41 -07:00
Broque Thomas
32f1cc946c
Improve watchlist cross-provider matching accuracy and add manual artist linking UI
2026-03-13 22:28:13 -07:00
Broque Thomas
e1a5bf678a
Add library issue reporting system with actionable detail modal
2026-03-13 21:14:57 -07:00
Broque Thomas
57a8bdd107
Add album file reorganization to Enhanced Library Manager
2026-03-13 18:43:54 -07:00
Broque Thomas
d4d1b8c7a0
Update web_server.py
2026-03-13 16:34:29 -07:00
Broque Thomas
9261d1f182
update latest updates
2026-03-13 16:06:56 -07:00
Broque Thomas
02c1da76ba
update recent updates and fix spotify worker rate limit button
2026-03-13 14:08:30 -07:00
Broque Thomas
de2cc6db7a
Detect rate limits in methods that swallow 429 exceptions so the modal appears
2026-03-13 14:00:23 -07:00
Broque Thomas
7da7f3b112
Cache similar artist metadata at scan time to eliminate redundant Spotify API calls
2026-03-13 13:35:54 -07:00
Broque Thomas
ae6fb929bf
Cache hero slider artist metadata to eliminate Spotify API calls on every page load
2026-03-13 13:13:31 -07:00
Broque Thomas
5ee9390c05
Add album art to discovery pool by extracting image URLs from match data
2026-03-13 12:40:30 -07:00
Broque Thomas
55186c6a51
Add Deezer playlist sync tab with discovery, fix modal, and cache persistence
2026-03-13 12:29:49 -07:00
Broque Thomas
f9d80606e3
Expand debug info with library stats, service status, config, and configurable log output
2026-03-13 08:47:04 -07:00
Broque Thomas
603ed06465
Improve album download analysis with album-scoped track matching
2026-03-12 21:38:02 -07:00
Broque Thomas
7b83959c30
Add Navidrome ReportRealPath guidance when library files can't be found
2026-03-12 19:16:19 -07:00
Broque Thomas
e8df863205
enhanced library write all modal and confirmation dialog
2026-03-12 16:57:38 -07:00
Broque Thomas
ded906bef4
Fix false positive track matching & tag writing visibility for library files
2026-03-12 16:08:44 -07:00
Broque Thomas
a3bf858558
Seamless Spotify rate limit UX — replace intrusive modal with ambient indicators
2026-03-12 12:45:59 -07:00
Broque Thomas
8d059b2e65
Extend race guard verification to all download source monitors
2026-03-12 11:28:56 -07:00
Broque Thomas
dc9a8a3845
Fix wrong track downloads when album name matches a track title in hybrid mode
2026-03-12 10:40:33 -07:00
Broque Thomas
ef43e4b5a6
Add album pre-flight search to find complete album folders before track-by-track downloading
2026-03-12 10:23:29 -07:00
Broque Thomas
4d2487db81
Guard all direct Spotify API calls against rate limit ban
2026-03-12 10:00:06 -07:00
Broque Thomas
9557e6bdd3
Fix sync stuck at 80% — serialize datetime in SyncResult for WebSocket emit
2026-03-12 08:52:08 -07:00
Broque Thomas
691e026208
Fix Tidal API search — correct endpoint casing, JSON:API Accept header, and best-match selection
2026-03-11 22:51:51 -07:00
Broque Thomas
ac2c710a1e
Tidal & Qobuz Background Enrichment Workers
2026-03-11 21:26:20 -07:00
Broque Thomas
fb04d0f4bc
Full qobuz support
2026-03-11 17:43:27 -07:00
Broque Thomas
f4d8280642
css & error notification fixes
2026-03-11 14:56:45 -07:00
Broque Thomas
d329dd4fe8
Fix Tidal playlist endpoints redundantly re-fetching all playlists — use direct single-playlist fetch
2026-03-11 13:50:53 -07:00
Broque Thomas
e42f373f80
Isolate service client initialization so one failure doesn't break the entire app
2026-03-11 11:25:15 -07:00
Broque Thomas
bde2be1cfa
Spotify rate limit re-trigger loop caused by periodic auth probes
2026-03-11 08:28:36 -07:00
Broque Thomas
0aa8950436
fix build a playlist functionality and update the ui
2026-03-11 07:52:58 -07:00
Broque Thomas
e5450d9f89
Help Docs Overhaul & Settings Fixes
2026-03-10 23:50:21 -07:00
Broque Thomas
c06fd044a1
Profile Permissions & Page Access Control
2026-03-10 23:23:43 -07:00
Broque Thomas
a159ac3fd6
Fix activity feed blinking and show live relative timestamps
2026-03-10 20:34:57 -07:00
Broque Thomas
b75f115a85
update latest updates
2026-03-10 15:50:31 -07:00
Broque Thomas
58a2f1ac4a
Fix iTunes country setting not persisting on save
2026-03-10 13:27:30 -07:00
Broque Thomas
08cc10c909
update latest updates
2026-03-10 12:59:13 -07:00
Broque Thomas
7138125b9e
Fix post-processing race condition logging errors on already-moved files
2026-03-10 11:30:55 -07:00
Broque Thomas
dbe0ce4db4
Fix playlist folder mode race condition where second thread deletes successfully moved file
2026-03-10 10:01:39 -07:00
Broque Thomas
6506c2f163
update latest updates
2026-03-10 09:28:55 -07:00
Broque Thomas
dc7140c459
Add Last.fm and Genius to on-demand enrichment, settings reload, and enrich dropdown parity
2026-03-10 09:12:36 -07:00
Broque Thomas
f8d23ec37c
Add Last.fm and Genius API clients with settings integration
2026-03-09 22:35:10 -07:00
Broque Thomas
aa93458ed3
Configurable ListenBrainz API endpoint for self-hosted instances
2026-03-09 20:52:33 -07:00
Broque Thomas
bbccd3524f
Explicit content filter with configurable toggle to skip explicit tracks during downloads
2026-03-09 20:39:40 -07:00
Broque Thomas
16e01f6039
Pause enrichment workers during discovery to prioritize user-initiated API calls
2026-03-09 19:42:48 -07:00
Broque Thomas
d1890c768c
cleanup staging folder same as download folder
2026-03-09 17:10:35 -07:00
Broque Thomas
07a79e7af6
Full Cleanup automation: combined housekeeping sweep for quarantine, downloads, staging, and search history
2026-03-09 16:39:29 -07:00
Broque Thomas
6e16596b9d
update recent updates
2026-03-09 16:07:43 -07:00
Broque Thomas
eac97a6c2b
Smart Spotify rate limit detection with global ban, auto-suppression, and frontend modal
2026-03-09 16:05:33 -07:00
Broque Thomas
1ea262c749
fix cover images not appearing in music player modal
2026-03-09 14:55:23 -07:00
Broque Thomas
cc4502e5f8
Add server sync option to enhanced library write-tags flow
2026-03-09 14:17:56 -07:00
Broque Thomas
7411bd1eab
Clarify update notification for Docker users that image will follow
2026-03-09 13:15:03 -07:00
Broque Thomas
b3d607752b
Add version tracking to database backup manager & Fix radio mode next track closing modal and losing playback state
2026-03-09 13:10:25 -07:00
Broque Thomas
abec2965ac
Fix playlist folder downloads marked as failed despite successful processing
2026-03-09 12:04:57 -07:00
Broque Thomas
aebaa900c9
recent updates updated
2026-03-09 11:53:23 -07:00
Broque Thomas
8d46d3746b
Fix Docker upgrade crashes from stale volume mounts and partial DB migrations
2026-03-09 11:44:00 -07:00
Broque Thomas
ea1441d09d
"Write Tags to File" in the Enhanced Library Manager
2026-03-09 11:17:01 -07:00
Broque Thomas
5f58432ca4
Redesigned media player with expanded Now Playing modal and smart radio
2026-03-09 10:13:42 -07:00
Broque Thomas
acc88441c2
update latest updates.
2026-03-08 23:39:40 -07:00
Broque Thomas
7c50f350c0
Add a library management interface to the artist detail page with inline metadata editing, per-service manual matching, bulk operations, and full track/album management.
2026-03-08 23:37:02 -07:00
Broque Thomas
5f94352b40
Add cancellation support to all discovery workers
2026-03-08 18:12:37 -07:00
Broque Thomas
3f4770a735
Fix quality scanner stop button, rate limiting, and redundant Spotify client
2026-03-08 12:58:14 -07:00
Broque Thomas
b0761a6e62
update version modal
2026-03-08 12:33:41 -07:00
Broque Thomas
5daa8c0596
Add rich stats to automation run history
2026-03-08 12:20:50 -07:00
Broque Thomas
266d044797
Add Backup Manager dashboard tool card with list, download, restore & delete
2026-03-08 10:46:03 -07:00
Broque Thomas
b1cb9f9964
Add scheduled database backup system automation
2026-03-08 08:24:49 -07:00
Broque Thomas
2ef0c75a25
Fix sync completion not reaching UI after WebSocket reconnect
2026-03-07 22:53:15 -08:00
Broque Thomas
8b3b82702a
Add deep library scan automation for enrichment-safe sync
2026-03-07 18:39:45 -08:00
Broque Thomas
ddd7f2d9b5
Persist mirrored playlist discovery results & retry failed
2026-03-07 17:28:17 -08:00
Broque Thomas
e11ee8622e
Fix discovery modal persistence, artist dict handling, and rate limiter scope
2026-03-07 13:05:49 -08:00
Broque Thomas
d97b3d1846
Fix automation timezone bug
2026-03-07 11:42:44 -08:00
Broque Thomas
dbe9745794
Add new automations for refreshing beatport, cleaning download folder and cleaning search history.
2026-03-07 11:11:43 -08:00
Broque Thomas
93a83f0417
Guard against string album values in wishlist spotify_data to prevent AttributeError
2026-03-07 10:17:06 -08:00
Broque Thomas
b34e348937
keep a history of automation runs
2026-03-07 09:39:08 -08:00
Broque Thomas
ba6aea5435
Add rich progress tracking to all automation cards with stall detection and timeout handling
2026-03-07 00:57:03 -08:00
Broque Thomas
41e895d254
Batch watchlist status checks to eliminate rate limit errors
2026-03-06 23:41:01 -08:00
Broque Thomas
cdcaa245d1
Add post-scan phase progress to watchlist automation card
2026-03-06 23:15:30 -08:00