Skip to content

Ultimate Spotify & Apple Music Lyrics experience for macOS (spiritual successor to LyricsX)

License

Notifications You must be signed in to change notification settings

aviwad/LyricFever

Repository files navigation

Lyric Fever

Logo

The Best Lyrics Experience for Spotify & Apple Music on macOS. It Just Works.

Downloads

Download here.

Screenshots

First Screenshot

Screenshot 1 Screenshot 2

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:

LyricFever Promo Vid

Requirements

  • macOS Ventura or higher (Sonoma required for fullscreen, Sequoia required for translation)
  • Spotify Desktop Client (if using Spotify)

Technical Details

  • 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

Other Contributors

Acknowledgements / Special Thanks

  • 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.