- Compatible with Spotify, MPD, Mopidy, MPRIS and browsers.
- Works well with long lines & Unicode characters.
- Easy to customize.
- Allows piping to stdout.
- Single binary & cross-plaftorm.
Linux
- Arch Linux (@BachoSeven)
yay -S sptlrx-bin
- NixOS (@MoritzBoehme)
nix-env -iA nixos.sptlrx
or if using nixpkgs
nix-env -iA nixpkgs.sptlrx
- Other
curl -sSL instl.sh/raitonoberu/sptlrx/linux | bash
Windows
iwr instl.sh/raitonoberu/sptlrx/windows | iex
macOS
curl -sSL instl.sh/raitonoberu/sptlrx/macos | bash
You can also download the binary from the Releases page or build it yourself.
Config file will be created at the first launch. On Linux it's located in ~/.config/sptlrx/config.yaml
. Run sptlrx -h
to see the full path.
Show config contents (with descriptions)
### Global settings ###
# Your Spotify cookie. Only needed if you are going to use Spotify as a player.
cookie: ""
# Player that will be used. Possible values: spotify, mpd, mopidy, mpris.
player: spotify
# Host of lyrics API to be used in case the cookie is not provided.
host: lyricsapi.vercel.app
# Whether to ignore errors instead of showing them.
ignoreErrors: true
# Interval of the internal timer. Determines how often the terminal will be updated.
timerInterval: 200
# Interval for checking the position. Doesn't really affect the precision.
updateInterval: 2000
### Style settings ###
style:
# Horizontal alignment of lines. Possible values: left, center, right.
hAlignment: center
# Style of the lines before the current one.
before:
# The colors can be either in HEX format, or ANSI 0-255.
background: ""
foreground: ""
bold: true
italic: false
underline: false
strikethrough: false
blink: false
faint: false
# Style of the current line.
current:
# The colors can be either in HEX format, or ANSI 0-255.
background: ""
foreground: ""
bold: true
italic: false
underline: false
strikethrough: false
blink: false
faint: false
# Style of the lines after the current one.
after:
# The colors can be either in HEX format, or ANSI 0-255.
background: ""
foreground: ""
bold: false
italic: false
underline: false
strikethrough: false
blink: false
faint: true
### Pipe settings ###
pipe:
# Maximum line length. 0 - unlimited.
length: 0
# How to handle overflowing strings. Possible values: word, none, ellipsis.
overflow: word
### MPD settings ###
mpd:
# MPD server address with port.
address: 127.0.0.1:6600
# MPD server password (if any).
password: ""
### Mopidy settings ###
mopidy:
# Mopidy server address with port.
address: 127.0.0.1:6680
### MPRIS settings ###
mpris:
# Whitelist of MPRIS players. First available is used if empty.
players: []
### Browser extension settings ###
browser:
# Port on which the server will be started.
port: 8974
### Local lyrics source ###
local:
# Folder for scanning .lrc files. Example: "~/Music".
folder: ""
# config.yaml
cookie: <your cookie>
player: spotify
If you want to use Spotify as your player or lyrics source, you need to specify your cookie.
- Open your browser.
- Press F12, open the
Network
tab and go to open.spotify.com. - Click on the first request to
open.spotify.com
. - Scroll down to the
Request Headers
, right click thecookie
field and selectCopy value
. - Paste it to your config.
You can also set the SPOTIFY_COOKIE
environment variable or pass the --cookie
flag.
TREAT YOUR COOKIE LIKE A PASSWORD AND NEVER SHARE IT
# config.yaml
player: mpd
mpd:
address: 127.0.0.1:6600
password: ""
MPD server will be used as a player.
# config.yaml
player: mopidy
mopidy:
address: 127.0.0.1:6680
Mopidy server will be used as a player.
# config.yaml
player: mpris
mpris:
players: []
Linux only. System player that supports MPRIS protocol will be used. You can also specify a whitelist of players to use, example: players: [rhythmbox, spotifyd, ncspot]
. Run playerctl -l
to get the names.
# config.yaml
player: browser
browser:
port: 8974
You need to install a browser extension. If you don't change the default port, no further configuration is required. Otherwise, create a custom adapter in the extension settings. You can only run one instance on one port.
# config.yaml
local:
folder: ""
If you want to use your local collection of .lrc
files to display lyrics, specify the folder to scan. The application will use files with the most similar name. All other lyrics sources will be disabled.
If you specify your Spotify cookie, the lyrics will be fetched using your account. Otherwise, the API hosted by me will be used. It is also possible to host your own API or use local .lrc
files.
Run sptlrx pipe
to start printing the current lines to stdout. This can be used in various status bars and other applications.
You can pass flags to override the style parameters defined in the config. Example:
sptlrx --current "bold,#FFDFD3,#957DAD" --before "104,faint,italic" --after "104,faint"
List of allowed styles: bold
, italic
, underline
, strikethrough
, blink
, faint
. The colors can be either in HEX format, or ANSI 0-255. The first color represents the foreground, the second represents the background.
Run sptlrx --help
to see all the flags.
MIT License, see LICENSE for additional information.