Skip to content
Control Spotify App through Emacs
Branch: master
Clone or download
lautaro Refactor to use native dbus support
Instead of calling dbus via a shell command, now it's using
`dbus-call-method`. Thanks @sarg!
Latest commit f484e6e Apr 6, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.

Counsel Spotify

Little Emacs package to control Spotify app through an Ivy interface.

If I have seen further it is by standing on the shoulders of giants. Isaac Newton

This package is basically a port of helm-spotify and helm-spotify-plus with an Ivy interface. Many thanks to the authors of those for their amazing work!



Notes on Spotify Web API authentication

You'll need to register an application in Spotify in order to obtain a client id and a client secret. Then, you'll have to set the variables counsel-spotify-client-id and counsel-spotify-client-secret variables with your credentials to start using the search feature

How to use it

This package exposes these search functions:

  • counsel-spotify-search-track
  • counsel-spotify-search-album
  • counsel-spotify-search-artist (not working entirely at the moment, see this issue)
  • counsel-spotify-seach-tracks-by-album
  • counsel-spotify-search-tracks-by-artist

The options are fetched from Spotify REST API. Hitting RET while selecting an option will start playing that track or album (depending on what the search were). Also, hitting M-o will prompt a tiny menu with some more actions to choose from (for example, choosing to play the entire album a song belongs to)


There are defined some basic controllers for the Spotify App

Action Function
Play counsel-spotify-play
Toggle play/pause counsel-spotify-toggle-play-pause
Next song counsel-spotify-next
Previous song counsel-spotify-previous
You can’t perform that action at this time.