FEATURED ARTIST
diff --git a/webui/static/script.js b/webui/static/script.js
index 4e4ae003..55ab1910 100644
--- a/webui/static/script.js
+++ b/webui/static/script.js
@@ -12461,6 +12461,168 @@ const TOOL_HELP_CONTENT = {
Scan workflow
This tool replicates the same scan process that runs automatically after completing a download modal - ensuring your new tracks are immediately available in your library!
`
+ },
+ 'discover-page': {
+ title: 'Discover Page Guide',
+ content: `
+
What is the Discover page?
+
The Discover page is your personalized music discovery hub. It uses your watchlist, library listening history, and MusicMap to surface new music, create curated playlists, and organize your collection in dynamic ways.
+
+
π― Hero Section (Featured Artists)
+
The rotating hero showcases similar artists discovered via MusicMap. These are artists you don't already have in your library but might enjoy based on your watchlist.
+
+ - Auto-rotates every 8 seconds through 10 featured artists
+ - Similar artists sourced from MusicMap and matched to Spotify
+ - Click arrows to navigate manually
+ - Add artists to watchlist or view their full discography
+ - Data refreshed when watchlist scanner runs
+
+
+
π Recent Releases
+
New albums from artists you're watching and their MusicMap similar artists. Cached from Spotify and updated during watchlist scans.
+
+ - Shows up to 20 recent albums
+ - Click any album to view tracks and add to wishlist
+ - Automatically filtered to show albums released in the last 90 days
+ - Includes both watchlist artists and similar artists from MusicMap
+
+
+
π Seasonal Content (Auto-detected)
+
Seasonal albums and playlists that appear automatically based on the current season (Winter, Spring, Summer, Fall).
+
+ - Seasonal Albums: Albums matching the current season's vibe
+ - Seasonal Playlist: Curated playlist that refreshes with each season
+ - Only visible during the matching season
+ - Can download and sync to your media server
+
+
+
π΅ Fresh Tape (Release Radar)
+
Curated playlist of brand new releases from your discovery pool. Focuses on tracks released in the past 30 days.
+
+ - 50 tracks, refreshed weekly by watchlist scanner
+ - Stays consistent until next update (not random)
+ - Download missing tracks or sync to media server
+ - Tracks from watchlist artists and MusicMap similar artists
+
+
+
π The Archives (Discovery Weekly)
+
Curated playlist from your entire discovery pool - a mix of new and catalog tracks from MusicMap discoveries.
+
+ - 50 tracks, refreshed weekly by watchlist scanner
+ - Stays consistent until next update (not random)
+ - Broader selection than Fresh Tape (includes older releases)
+ - Download missing tracks or sync to media server
+
+
+
π Personalized Library Playlists
+
Playlists generated from your existing library using listening statistics:
+
+ - Recently Added: Latest 50 tracks added to your library
+ - Your Top 50: All-time most played tracks (requires play count data)
+ - Forgotten Favorites: Tracks you loved but haven't played recently
+
+
+
π² Discovery Pool Playlists
+
Playlists generated from your discovery pool (tracks from watchlist/similar artists you don't own yet):
+
+ - Popular Picks: High-popularity tracks (Spotify popularity 70+)
+ - Hidden Gems: Underground discoveries (Spotify popularity <40)
+ - Discovery Shuffle: 50 random tracks - different every time you load
+ - Familiar Favorites: Reliable, mid-popularity tracks (40-70)
+
+
+
π¨ Build a Playlist
+
Create custom playlists using MusicMap similar artists from seed artists you select.
+
+ - Search for any artist on Spotify (even if not in your library)
+ - Select 1-5 seed artists
+ - Choose playlist size: 25, 50, 75, or 100 tracks
+ - Uses cached MusicMap similar artists from your database
+ - Pulls albums from those similar artists to build the playlist
+ - Download and sync like any other discover playlist
+
+
+
π§ ListenBrainz Playlists
+
Access playlists from your ListenBrainz account (requires ListenBrainz authentication).
+
+ - Created For You: Playlists generated by ListenBrainz for you
+ - Your Playlists: Playlists you've created on ListenBrainz
+ - Collaborative: Collaborative playlists you're part of
+ - Cached locally for performance - click Refresh to update from ListenBrainz
+ - Click any playlist to view tracks and download/sync
+
+
+
β° Time Machine (Browse by Decade)
+
Explore your discovery pool organized by release decade.
+
+ - Dynamically generated tabs for decades with available content (1950s-2020s)
+ - Each decade shows up to 100 tracks from that era
+ - Great for discovering older catalog releases from your favorite artists
+
+
+
π΅ Browse by Genre
+
Explore your discovery pool filtered by music genre.
+
+ - Shows top genres from your discovery pool
+ - Click any genre tab to see up to 100 tracks in that genre
+ - Genres sourced from Spotify metadata
+
+
+
πΎ What is the Discovery Pool?
+
The discovery pool is a database of tracks from:
+
+ - Artists in your watchlist
+ - Similar artists found via MusicMap
+ - Populated during watchlist scanner runs (scrapes music-map.com, matches to Spotify)
+ - Filtered to exclude tracks already in your library
+ - Used to generate Fresh Tape, The Archives, and discovery pool playlists
+ - Caches up to 50 top similar artists across your watchlist
+
+
+
πΊοΈ How MusicMap Integration Works
+
SoulSync uses MusicMap (music-map.com) instead of Spotify's recommendation API to find similar artists:
+
+ - During watchlist scans, each watchlist artist is looked up on MusicMap
+ - MusicMap's artist similarity graph is scraped to find related artists
+ - Similar artist names are matched to Spotify IDs
+ - Up to 10 similar artists per watchlist artist are cached (refreshed every 30 days)
+ - These cached similar artists power all discovery features
+ - This approach gives you more diverse, community-driven recommendations
+
+
+
β¬οΈ Download & Sync Features
+
Most discover playlists support two actions:
+
+ - Download: Opens modal to match tracks to Soulseek and add to download queue
+ - Sync: Downloads tracks and automatically transfers them to your media server
+ - Sync progress persists - you can close the page and it continues in the background
+ - Sync status shows: β completed, β³ pending, β failed
+
+
+
π When is data refreshed?
+
+ - MusicMap Similar Artists: Fetched during watchlist scans, cached for 30 days
+ - Hero, Recent Releases, Fresh Tape, The Archives: Updated during watchlist scanner runs (Dashboard page)
+ - Discovery Pool: Fully refreshed every 24 hours during watchlist scans (50 top similar artists, 10 albums each)
+ - Seasonal Content: Auto-detected based on current date
+ - Personalized Library Playlists: Generated on-demand from current library data
+ - Discovery Pool Playlists: Generated on-demand from current discovery pool
+ - Build a Playlist: Generated on-demand from cached MusicMap similar artists
+ - ListenBrainz: Cached locally, manually refreshed via Refresh button
+ - Time Machine & Genre: Generated on-demand from current discovery pool
+
+
+
π‘ Pro Tips
+
+ - Curated playlists (Fresh Tape, The Archives) stay consistent until next watchlist scan - great for weekly listening routines
+ - Discovery Shuffle changes every page load - perfect when you want spontaneous recommendations
+ - Use Build a Playlist to explore artists not in your watchlist (if seed artist isn't in watchlist, MusicMap data must be cached first)
+ - The discovery pool only includes tracks you don't own yet - download them to build your collection!
+ - Sync feature is ideal for batch downloading entire playlists to your media server
+ - MusicMap provides more diverse recommendations than Spotify's algorithm - expect deeper cuts and underground artists!
+ - Add more artists to your watchlist to expand your discovery pool with their MusicMap similar artists
+
+ `
}
};
diff --git a/webui/static/style.css b/webui/static/style.css
index 1f41e03c..ec57ba3c 100644
--- a/webui/static/style.css
+++ b/webui/static/style.css
@@ -17298,6 +17298,25 @@ body {
transform: scale(1.1);
}
+.discover-page-help-button {
+ position: absolute;
+ top: 20px;
+ right: 20px;
+ z-index: 10;
+ width: 32px;
+ height: 32px;
+ font-size: 16px;
+ background-color: rgba(0, 0, 0, 0.6);
+ border: 2px solid rgba(255, 255, 255, 0.3);
+ backdrop-filter: blur(10px);
+}
+
+.discover-page-help-button:hover {
+ background-color: #1db954;
+ border-color: #1db954;
+ transform: scale(1.15);
+}
+
.tool-help-modal {
display: none;
position: fixed;