Important notice: libspotify is no longer available for download. If you have installed, then sconsify should be working. Unfortunately, we don't know for how long.
A very early stage of a spotify console application.
Requirements: Libspotify SDK & PortAudio & Spotify user subscribed to the Premium tier of the Spotify Service (Libspotify SDK terms of use).
-
Download current version 0.5.0
-
Install dependencies:
Archlinux
$ pacman -S portaudio
$ yaourt -S libspotify
Ubuntu
& debian
$ curl http://apt.mopidy.com/mopidy.gpg | sudo apt-key add - && sudo curl -o /etc/apt/sources.list.d/mopidy.list http://apt.mopidy.com/mopidy.list
$ sudo apt-get update && sudo apt-get install -y libportaudio2 libspotify12 --no-install-recommends
Fedora Workstation
Install libspotify-devel from rpmfusion-nonfree. Install instructions
$ sudo dnf install libspotify portaudio
OSX
Install brew, the missing package manager for OS X and
$ brew tap homebrew/binary
$ brew install portaudio
Then, download libspotify
12.1.51 for Mac OS X/Darwin
Uncompress the file and copy libspotify.framework to /Library/Frameworks (optional)
$ wget https://developer.spotify.com/download/libspotify/libspotify-12.1.51-Darwin-universal.zip
$ sudo cp -R ./libspotify-12.1.51-Darwin-universal/libspotify.framework /Library/Frameworks
sconsify will load libspotify from /usr/local/opt/libspotify/lib/libspotify
. User should create a symbolic link to /usr/local/opt/libspotify/lib/libspotify
$ mkdir -p /usr/local/opt/libspotify/lib
$ ln -s /Library/Frameworks/libspotify.framework/libspotify /usr/local/opt/libspotify/lib
- Run
./sconsify
There are 2 modes:
-
Console user interface
mode: it presents a text user interface with playlists and tracks. -
No user interface
mode: it doesn't present user interface and just shuffle tracks.
-
-username=""
: Spotify username. If not present username will be asked. -
Password will be asked. To not be asked you can set an environment variable with your password
export SCONSIFY_PASSWORD=password
. Be aware your password will be exposed as plain text. -
-ui=true/false
: Run Sconsify with Console User Interface. If false then no User Interface will be presented and it'll only shuffle tracks. -
-playlists=""
: Select just some playlists to play. Comma separated list.
-
-noui-repeat-on=true/false
: Play your playlist and repeat it after the last track. -
-noui-silent=true/false
: Silent mode when no UI is used. -
-noui-shuffle=true/false
: Shuffle tracks or follow playlist order.
-
← ↓ ↑ → for navigation.
-
space
orenter
: play selected track. -
>
: play next track. -
p
: pause. -
/
: open a search field.
Search fields: album, artist or track
.
album:help
artist:the beatles
track:let it be
Aliases al
= album
, ar
= artist
, tr
= track
:
al:help
ar:the beatles
tr:let it be
-
s
: shuffle tracks from current playlist. Press again to go back to normal mode. -
S
: shuffle tracks from all playlists. Press again to go back to normal mode. -
u
: queue selected track to play next. -
r
: repeat the playing track. -
dd
: delete selected element (playlist, track) from the UI (it doesn't save the change to spotify playlist). -
D
: delete all tracks from the queue if the focus is on the queue. -
PageUp
PageDown
Home
End
. -
Control C
orq
: exit.
Vi navigation style:
-
h
j
k
l
for navigation. -
Nj
andNk
where N is a number: repeat the command N times. -
gg
: go to first element. -
G
: go to last element. -
Ngg
andNG
where N is a number: go to element at position N. -
Temporary playlist. Type
c
in the queue view, type a name and then a temporary playlist will appear containing all songs in the queue view.
-
>
: play next track. -
Control C
: exit.
Sconsify starts a server for interprocess commands using sconsify -command <command>
. Available commands: replay, play_pause, next, pause
.
i3 bindings for multimedia keys:
bindsym XF86AudioPrev exec sconsify -command replay
bindsym XF86AudioPlay exec sconsify -command play_pause
bindsym XF86AudioNext exec sconsify -command next
# pause when locking computer with i3lock
bindsym Control+Mod1+l exec "i3lock -c 000000 && sconsify -command pause"
macOS
: create a new service in Automator
. Then pick Library > Utilities > Run Shell Script
. Drag it to the workflow. Pick no input
and then add to the script /path/to/sconsify -command replay
, save it. Go to Keyboard Shortcuts > Services
in System Settings, find the service you've just saved and type the desired shortcut. Repeat for each command (replay, play_pause, next, pause
).
If you prefer doing this within tmux, you can put the following lines to your .tmux.conf
file:
bind-key F7 run-shell 'sconsify -command replay'
bind-key F8 run-shell 'sconsify -command play_pause'
bind-key F9 run-shell 'sconsify -command next'
Similar to .ackrc you can define default parameters in ~/.sconsify/sconsifyrc
:
-username=your-username
-noui-silent=true
-noui-repeat-on=false
Install go (same version from Dockerfile), glide and get a Spotify application key and copy as a byte array to /sconsify/spotify/spotify_key_array.key
.
var key = []byte{
0x02, 0xA2, ...
...
0xA1}
-
osx only:
brew install pkgconfig
-
make build
When building for OSX you may face an issue where it doesn't get your application key. Just retry the build that eventually it will get the key.