[ Library ]
local cache
- A local snapshot of your YouTube Music playlists, stored as
app/data/library.json - Used for deduplication — tracks already in your playlists are never recommended
- Auto-synced before Standard, Personalised, and AI Themed runs if the cache is older than 24 hours
- The sync reads every playlist on your YouTube account except the active Discovery playlist
- Use [ Resync Library ] on the main page to force a fresh pull at any time
Source: YouTube Data API v3 — playlistItems.list (no quota cost for reads)
[ Standard ]
ListenBrainz
- Enter a seed artist — no track name needed
- Resolves the artist via MusicBrainz, then pulls similar artists from ListenBrainz
- Fetches real track titles for each similar artist from MusicBrainz
- Deduplicates against your library and recommendation history before presenting results
Data: MusicBrainz + ListenBrainz similar-artists API
[ DJ Mix ]
YouTube
- Enter a seed DJ — finds similar DJs and artists via ListenBrainz
- Searches YouTube for long-form sets and mixes, not music videos
- Video IDs are resolved during discovery, so pushing costs zero YouTube search quota
- Seed DJ is always included as the first result
Data: MusicBrainz + ListenBrainz + YouTube search
[ AI Themed ]
Gemini
- Describe any mood, era, genre, or concept — Gemini generates a matching track list
- Mix of well-known and deeper cuts; no covers or remixes unless the theme calls for it
- Quality scales with theme specificity — "late night Detroit techno" beats "electronic"
- Requires a Google Gemini API key with billing enabled
Data: Google Gemini 2.5 Flash
[ New Releases ]
LAB
- Discovers releases from the last 12 months via MusicBrainz
- Filter by genre tag (e.g. techno, ambient, drum and bass) for broad discovery
- Or enter a seed artist to check that specific artist's recent output
- Leave both blank to scan new releases across your Current Favs library
Data: MusicBrainz catalog
[ Personalised ]
LAB
- Pulls recommendations from ListenBrainz Collaborative Filtering
- Based entirely on your personal listening history — no seed required
- Requires a ListenBrainz account with username and token set in config
- The more you listen and submit scrobbles, the better the results become
Data: ListenBrainz CF personalised recommendations