Command Line Spotify Lyrics with Album Cover
Project description
Yet Another Spotify Command Line Lyrics
Requirements
- Linux
- Python >= 3.6
- ueberzug
- dbus-python
- requests
- beautifulsoup4
- lxml
Install
From PyPI
pip3 install yet-another-spotify-lyrics --user
From Source
git clone https://github.com/goktug97/yet-another-spotify-lyrics
cd yet-another-spotify-lyrics
python setup.py install --user
Usage
spotify-lyrics
Keybindings
Action | Keybinding |
---|---|
Scroll Up | k |
Scroll Down | j |
Beginning of Lyrics | gg |
End of Lyrics | G |
Edit Lyrics | e |
Refresh | r |
Toggle | t |
Next | n |
Prev | p |
Update Lyrics | d |
Toggle Album Cover | i |
Help | h |
Quit Program | q |
- Edit Lyrics: Open lyrics in
$EDITOR
. - Refresh: Refresh lyrics and song metadata.
- Toggle: Play or Pause currently playing song.
- Next: Play next song.
- Prev: Play previous song.
- Update Lyrics: Deletes cached lyrics and fetches lyrics from the internet.
- Help: Show keybindings 5 seconds.
DBUS
The lyrics can be scrolled via dbus. Scroll the lyrics without changing the focus.
Python Example
import dbus
bus = dbus.SessionBus()
lyrics = bus.get_object('com.spotify_lyrics.line', '/com/spotify_lyrics')
lyrics.move(1) # Scroll Down
lyrics.move(-1) # Scroll Up
Bash Example
#!/usr/bin/env bash
dbus-send --print-reply --dest="com.spotify_lyrics.line"\
"/com/spotify_lyrics"\
"com.spotify_lyrics.line.move"\
int32:$1 > /dev/null
I call this bash script from my i3 config. See below.
Example Use Case (i3wm)
bindsym $mod+Shift+Home exec st -n Lyrics -e spotify-lyrics
for_window [instance="Lyrics"] floating enable; [instance="Lyrics"] move position center
for_window [instance="Lyrics"] resize set 644 388
bindsym $mod+Control+k exec lyrics-move -1
bindsym $mod+Control+j exec lyrics-move 1
Example Use Case (Emacs)
Open the lyrics in a buffer.
(defun spotify-lyrics ()
(interactive)
(let ((string (shell-command-to-string "spotify-lyrics-once")))
(get-buffer-create "lyrics-buffer")
(switch-to-buffer-other-window "lyrics-buffer")
(with-current-buffer "lyrics-buffer"
(goto-char (point-max))
(erase-buffer)
(insert string)
(goto-line 1))))
Example Use Case (Conky)
You can use spotify-lyrics-once to output the lyrics to the stdout and exit. If you have program that utilizes stdin, you can use this version. An example for such program is Conky.
#!/usr/bin/lua
conky.config = {
alignment = 'tl',
background = true,
color2 = '2ECC71',
cpu_avg_samples = 2,
default_color = 'FFFFFF',
double_buffer = true,
font = 'Bitstream Vera Sans:size=10',
gap_x = 30,
gap_y = 50,
minimum_width = 200,
no_buffers = true,
own_window = true,
own_window_type = 'override',
own_window_transparent = true,
own_window_argb_visual = true,
-- own_window_type = 'desktop',
update_interval = 3,
use_xft = true,
}
conky.text = [[
${voffset 8}$color2${font Bitstream Vera Sans:size=16}${time %A}$font\
${voffset -8}$alignr$color${font Bitstream Vera Sans:size=38}${time %e}$font
$color${voffset -30}$color${font Bitstream Vera Sans:size=18}${time %b}$font\
${voffset -3} $color${font Bitstream Vera Sans:size=20}${time %Y}$font$color2$hr
${execi 5 spotify-lyrics-once}
]]
License
yet-another-spotify-lyrics is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file yet-another-spotify-lyrics-2.4.6.tar.gz
.
File metadata
- Download URL: yet-another-spotify-lyrics-2.4.6.tar.gz
- Upload date:
- Size: 15.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.11.3 pkginfo/1.7.1 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a91dd1964d26482796506370394e014bcf76135a15fd19b13bfceb8f453ce6c3 |
|
MD5 | 26895180eaea25282d9d9a3ee706b070 |
|
BLAKE2b-256 | 7f15d2a03639c23f403ea281c3003a544c1e6fdc716fce9e1b340e7bfaeb57db |