The Best Lyrics Experience for Spotify & Apple Music on macOS. It Just Works.
Download here.
Screenshots
Features
- Automatic Lyric Playback on Menubar
- Fullscreen Mode (Modeled after Apple Music’s fullscreen view)
- Karaoke Mode (Lyric popup that stays on screen)
- Lyric Translation (using Apple’s on device APIs)
- Offline caching! Lyrics are automatically stored offline efficiently using CoreData
- Play some music on the Spotify / Apple Music app and watch the lyrics play on the menu bar automatically.
- Lyrics fetched from Spotify, and LRCLIB as a backup lyric provider
YouTube Promo Vid:
- macOS Ventura or higher (Sonoma required for fullscreen, Sequoia required for translation)
- Spotify Desktop Client (if using Spotify)
- UI is built using SwiftUI.
- The lyrics are updated and fetched using Swift Concurrency and Swift Tasks
- The lyrics are stored into disk using CoreData.
- I interface with Spotify & Apple Music using their AppleScript methods as well as by subscribing to their playback state change notifications.
- I interface with Spotify and Apple Music's AppleScript methods by using Apple's provided ScriptingBridge interface.
- I additionally use private APIs to get the currently playing Apple Music song's iTunes ID, and use MusicKit to map that to an ISRC code
- I map Apple Music songs to equivalent Spotify ID using ISRC to display Lyrics fetched from Spotify for either platform
- Lyrics are fetched from LRCLIB as a backup when Spotify fails
- I fetch the song “background color” with each lyric, and the color is used for the karaoke mode window background
- The fullscreen view uses a custom mesh gradient (I have lost the source for the code, cannot attribute it) and extracts colors from the album art using ColorKit
- Spiritual successor to LyricsX (95% more efficient, 0.1% CPU usage of Lyric Fever vs 3% of LyricsX)
- Technical write-up coming soon
- lcandy2 For their pull request
- Sparkle: For app updates
- Amplitude: For app analytics
- Spotify: The music platform this project depends on! (for playback, for lyrics)
- Apple MusicKit: Apple Music API
- Apple Music: Another platform that this project depends on
- ColorKit-macOS: My port of ColorKit for macOS
- Cindori for their blog post on writing an NSPanel view for SwiftUI
- tranxuanthang for LRCLIB, an open source Lyric library. Used when Spotify fails.
- Unknown author for the mesh gradient view. I have lost the source.