Sconsify

A spotify console application
Alternatives To Sconsify
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Spotify Tui15,380
a month ago24August 24, 2021278mitRust
Spotify for the terminal written in Rust 🚀
Spicetify Cli15,057
7 hours ago47April 06, 20229lgpl-2.1JavaScript
Command-line tool to customize Spotify client. Supports Windows, MacOS, and Linux.
Awesome Cli Apps12,176
5 days ago48Shell
🖥 📊 🕹 🛠 A curated list of command line apps
Ytmdl2,847
a month ago58March 15, 202214mitPython
A simple app to get songs from YouTube in mp3 format with artist name, album name etc from sources like iTunes, Spotify, LastFM, Deezer, Gaana etc.
Shpotify1,925
5 months ago1February 27, 201843Shell
A command-line interface to Spotify.
Command1,077
6 years ago19mitJavaScript
:black_nib: Making the web better with Slack-like slash commands.
Pytify738
12 years ago23October 03, 20195mitPython
A CLI application for controlling Spotify
Spotify Player6231a day ago3May 14, 202220mitRust
A Spotify player in the terminal with full feature parity
Sconsify575
2 years ago17November 02, 202047apache-2.0Go
A spotify console application
Spotify Cli Linux555
6 months ago20June 22, 201911gpl-3.0Python
🎶 A command line interface to Spotify on Linux
Alternatives To Sconsify
Select To Compare


Alternative Project Comparisons
Readme

A spotify console app

Join the chat at https://gitter.im/fabiofalci/sconsify

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

Installation

  • 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

alt tag

Modes

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.

Parameters

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

No UI Parameters

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

UI mode keyboard

  • ← ↓ ↑ → for navigation.

  • space or enter: 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 or q: exit.

Vi navigation style:

  • h j k l for navigation.

  • Nj and Nk where N is a number: repeat the command N times.

  • gg: go to first element.

  • G: go to last element.

  • Ngg and NG 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.

No UI mode keyboard

  • >: play next track.

  • Control C: exit.

Interprocess commands

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'

sconsifyrc

Similar to .ackrc you can define default parameters in ~/.sconsify/sconsifyrc:

-username=your-username
-noui-silent=true 
-noui-repeat-on=false

How to build

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.

Popular Spotify Projects
Popular Command Line Projects
Popular Media Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Go
Golang
Command Line
Play
Console Application
Spotify
Playlist