How paturrr/spolyrics works
SpoLyrics is a Windows desktop lyrics miniplayer. Its central workflow reads the active media session’s track and timing data, looks up synchronized lyrics, matches candidates by duration and title, and displays them in a transparent overlay. Tray controls, mouse gestures, persistent settings, Windows startup, and update checking are supporting capabilities. Most runtime behavior resides in one module; the excerpts do not show all internal call sites, so uncertain wiring is omitted.
Main entry points: __main__.py App Runtime
Components 16
Playback and Lyrics
- App Runtime
spolyrics/__main__.py - Session Sync
spolyrics/__main__.py - Lyrics Lookup
spolyrics/__main__.py - Duration Matcher
spolyrics/__main__.py
Window and Controls
- Lyrics Overlay
spolyrics/__main__.py - Mouse Gestures
spolyrics/__main__.py - System Tray
spolyrics/__main__.py - Settings UI
spolyrics/__main__.py
Configuration and Updates
- Saved Config
spolyrics/__main__.py - Windows Startup
spolyrics/__main__.py - Update Checker
spolyrics/__main__.py
Other components
- Listener
- Media Player
- Windows SMTC
- LRCLIB
- PyPI
Connections 19
- Listener → App Runtime: launches
- Media Player → Windows SMTC: publishes session
- Windows SMTC → Session Sync: provides timing
- Session Sync → App Runtime: updates playback
- App Runtime → Lyrics Lookup: requests lyrics
- Lyrics Lookup → LRCLIB: searches tracks
- Lyrics Lookup → Duration Matcher: checks candidates
- Duration Matcher → Lyrics Overlay: supplies lyrics
- App Runtime → Lyrics Overlay: starts window
- Listener → Mouse Gestures: uses gestures
- Mouse Gestures → Lyrics Overlay: controls window
- Listener → System Tray: opens menu
- System Tray → Settings UI: opens settings
- Settings UI → Saved Config: saves options
- App Runtime → Saved Config: loads options
- App Runtime → Windows Startup: sets startup shortcut
- App Runtime → Update Checker: checks version
- Update Checker → PyPI: queries release
- Update Checker → App Runtime: offers update