A GTK lyrics companion for Spotify with synced, Spotify-style lyrics.
Report Bug
·
Request Feature
Spotiverse is a fork of verse, a small Linux desktop app that fetches lyrics for the song currently playing on Spotify.
This fork reshapes the experience around a Spotify-like lyric display:
- Synced lyrics when timestamped LRC lyrics are available
- Explicit lyrics visibility toggle for tracks marked explicit
- Automatic updates when the current Spotify track changes
- Spotify Web API or MPRIS playback source detection
- Playback-aware lyric highlighting and centered active lines
- Dark, full-window lyric presentation
- Keyboard zoom with
Ctrl++andCtrl+- - Local
.envsupport for Spotify and Genius credentials - Configurable Spotify callback port with
SPOTIFY_REDIRECT_URI
These instructions set up a local development build.
On Debian, Ubuntu, Mint, or similar:
sudo apt install meson ninja-build python3-pip python3-setuptools libgtk-4-dev libadwaita-1-dev libwebkitgtk-6.0-dev libsecret-1-devInstall Python dependencies:
python3 -m pip install --user -r requirements.txtSome distributions protect the system Python environment. If pip reports an externally managed environment, use a virtual environment or your distribution packages instead.
Clone the fork:
git clone https://github.com/wispdevon/Spotiverse.git
cd SpotiverseCreate your local environment file:
cp .env.example .envBuild and install into a local prefix:
meson setup _build --prefix "$PWD/_install"
meson compile -C _build
meson install -C _buildRun the local build:
GSETTINGS_SCHEMA_DIR="$PWD/_install/share/glib-2.0/schemas" "$PWD/_install/bin/spotiverse"You can also build through GNOME Builder or install through Flatpak Builder:
flatpak-builder --force-clean _flatpak/ io.github.wispdevon.Spotiverse.json --user --install
flatpak run io.github.wispdevon.SpotiverseSpotiverse needs Spotify API credentials and a Genius access token.
Add these values to .env:
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
SPOTIFY_REDIRECT_URI=http://127.0.0.1:53682
GENIUS_TOKEN=In the Spotify Developer Dashboard, add the exact redirect URI from SPOTIFY_REDIRECT_URI.
For more detail, see wiki/README.md.
After the app starts, open Preferences with Ctrl+O and generate the Spotify refresh token.
If you prefer to detect tracks from a local media player, open Preferences and switch Playback Source to MPRIS player. You can leave the player on Automatic or choose a specific MPRIS-enabled player.
- Start Spotify and play a track.
- Launch Spotiverse.
- If credentials are not configured yet, press
Ctrl+Oto open Preferences. - Generate the Spotify refresh token.
- Return to the lyrics window.
Useful shortcuts:
Ctrl+O: Open PreferencesCtrl+R: Refresh the current trackCtrl++: Increase lyric font sizeCtrl+-: Decrease lyric font sizeCtrl+Q: Quit
If synced lyrics are found, the active line follows the current Spotify playback position. If no synced lyrics are available, Spotiverse falls back to regular Genius lyrics.
Use the Show explicit lyrics preference to choose whether lyrics appear for tracks Spotify marks as explicit.
- Improve synced lyric provider matching and fallbacks
- Add a small in-window control surface for refresh, preferences, and zoom
- Persist lyric zoom preferences
- Add screenshots for the synced lyrics view
- Package the fork under its own app ID
See the open issues for proposed features and known issues.
Contributions are welcome.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a pull request
Distributed under the Apache-2.0 License. See COPYING for more information.
Project Link: https://github.com/wispdevon/Spotiverse
Upstream Project: https://github.com/TanmayPatil105/verse
- Tanmay Patil for the original verse project
- Spotify Web API
- Genius API
- LRCLIB
- Best-README-Template