sptlrx icon indicating copy to clipboard operation
sptlrx copied to clipboard

Synchronized lyrics in your terminal

sptlrx

Timesynced lyrics in your terminal

Crystal Castles - Not In Love

Features

  • Compatible with Spotify, MPD, Mopidy and MPRIS.
  • Works well with long lines & Unicode characters.
  • Easy to customize.
  • Allows piping to stdout.
  • Single binary & cross-plaftorm.

Installation

Linux

yay -S sptlrx-bin
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.

Configuration

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
# 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
    undeline: 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
    undeline: 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
    undeline: 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
  # Whether to ignore errors instead of printing to stdout.
  ignoreErrors: true

### 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

Spotify

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

  1. Open your browser.
  2. Press F12, open the Network tab and go to open.spotify.com.
  3. Click on the first request to open.spotify.com.
  4. Scroll down to the Request Headers, right click the cookie field and select Copy value.
  5. Paste it to your config.

You can also set the SPOTIFY_COOKIE enviroment variable or pass the --cookie flag.

MPD

# config.yaml
player: mpd
mpd:
  address: 127.0.0.1:6600
  password: ""

MPD server will be used as a player.

Mopidy

# config.yaml
player: mopidy
mopidy:
  address: 127.0.0.1:6680

Mopidy server will be used as a player.

MPRIS

# config.yaml
player: mpris

Linux only. System player that supports MPRIS protocol will be used.

Information

Source

If you specify your Spotify cookie, the lyrics will be fetched using your account. Otherwise, the API hosted by me will be used.

Piping

Run sptlrx pipe to start printing the current lines to stdout. This can be used in various status bars and other applications.

Flags

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.

License

MIT License, see LICENSE for additional information.