Meld v0.2.0 — Release Notes
Highlights
This release marks a major overhaul of the Spotify integration. The app no longer requires a Spotify Developer account or Client ID — just log in with your Spotify credentials directly in the app and you're ready to go.
New Features
Simplified Spotify Login
No more Client ID, redirect URIs, or developer dashboard. Log in directly via the in-app browser using your Spotify account. Authentication is handled transparently through cookie extraction and TOTP-based token generation.
Spotify-Only Mode
New toggle in Settings > Integrations > Spotify that hides all YouTube Music content from the home screen, giving you a pure Spotify-driven experience.
Spotify Album Screen
Dedicated album view for Spotify albums with full tracklist, metadata, and one-tap playback.
Smart Profile Caching
A 3-tier hybrid cache (GraphQL → REST → local storage) for your top tracks and artists, with automatic background refresh. Eliminates repeated API calls and dramatically speeds up home screen loading.
Recommendation Engine
Personalized queue building based on your Spotify listening profile, combining:
- Artist affinity
- Genre overlap
- Recency
- Popularity
Includes diversification logic to avoid monotony and repetitive playback.
Improvements
Faster Playback Start
Timeout guards on REST calls (3s) and recommendation engine (4s) ensure tracks start playing immediately, falling back gracefully to artist top tracks when the engine is slow.
GraphQL-First API Architecture
Switched the Spotify backend from public REST-only to internal GraphQL as the primary data source, with REST as a fallback. This provides richer data and avoids most rate-limiting issues.
Resilient Rate Limit Handling
REST 429 responses now trigger a 5-minute cooldown, preventing repeated failed requests. GraphQL endpoints are unaffected by REST rate limits.
Thumbnail Fallback Chain
Player artwork now uses a 3-level fallback:
- Spotify album art
- YouTube match thumbnail
- YouTube video thumbnail
This ensures cover art is always displayed.
WebView Cipher Improvements
Improved error handling and timer management in the cipher WebView, reducing JavaScript errors during signature deobfuscation.
Technical Changes
- Removed SPOTIFY_CLIENT_ID build config and all OAuth2/PKCE authentication code
- Added SpotifyProfileCache.kt for persistent profile data management
- Added SpotifyAlbumScreen.kt and SpotifyAlbumViewModel.kt
- Refactored Spotify.kt with GraphQL support and JSON navigation helpers
- Refactored SpotifyAuth.kt for cookie-based + TOTP authentication
- Updated 25 files across the app and spotify modules