Open source Spotify clients and development frameworks
Posted in News on February 11th, 2010 by noah – CommentsIt’s been almost a year since Despotify was first released so we figured it was time for an update on what third party, open source apps are out there.
This list is merely an overview and it’s by no means complete. If your open source Spotify project is not listed here, feel free to mention it in the comments thread!
NOTE: All third party applications and development libraries require a Spotify premium subscription to work!
Third party Spotify clients
despotify-simple
The despotify-simple client is a pure textmode client that’s built on top of the libdespotify-simple library.
Features:
- Playlists (list tracks, play tracks, rename, set/unset collaboration)
- Display information about a Spotify URI
- Play an album
- Searching for tracks/album/artists
- Platforms: Linux, Mac OS X
- Author: Björn Stenberg
- URL: http://despotify.se/source-code/

Screenshot of the despotify simple client
despotify
The despotify client is an ncurses based client that’s built on top libdespotify-simple. It’s been written by dstien.
Features:
- Searching
- Playback of tracks found in a search
- Playlists are not supported
- Platforms: Linux, Mac OS X
- Author: Daniel Stein
- URL: http://despotify.se/source-code/

The splash screen in despotify

View of a search result
polspot
Polspot is basically the same as the above despotify client, only it’s using the Spotify client library API.
Features:
- Searching
- Playback of tracks found in a search
- Playlists are not supported
- Works with either libspotify or libopenspotify
- Platforms: Linux, Mac OS X (Mac OS X requires libopenspotify)
- Author: Daniel Stien
- URL: http://github.com/dstien/polspot
jotify
Jotify is a clone of the official Spotify client, written in pure Java.
Features:
- Familiar GUI
- Playlists
- Track queueing
- Searching
- Cross-platform
- Platform: Java 1.6
- Author: Felix Bruns
- URL: http://jotify.felixbruns.de/
qtify
Qtify is a GUI client that’s written in Qt (C++) that was primarily written to bring Spotify to the Nokia N900 platform (Maemo). It also works on Linux, and with Qt being a crossplatform development framework, adding support for other OSes such as Mac OS X or Windows merely requires the audio part to be ported.
Features
- Playlists
- Searching for tracks, artists and albums
- Playback (play, pause, resume)
- Qt 4.6 based minimalistic GUI
- Uses libspotify
- Platforms: Linux
- Author: Robin Nilsson
- URL: https://garage.maemo.org/projects/qtify/

The login screen in Qtify

The main view in Qtify, with a playlist listing and a search box
HTS Showtime
From its homepage: “Linux based Media player for usage on HTPCs — Listen to Music, watch Photos, play DVD and Movies, watch TV, all from within the same spiffy application.
Easy to setup, no configuration files. All configuration is tuned from inside the program itself.”
Features:
- Uses libspotify
- Platforms: Linux
- Author: Andreas Öman and others
- URL: http://lonelycoder.com/hts/

HTS Showtime main view
GSpot
GSpot is a GTK-based GUI Spotify client for Linux.
Features:
- GTK-based GUI
- Uses libspotify
- Platforms: Linux
- Author: Henrik Friedrischsen
- URL: http://github.com/hrkfdn/gspot
Junpier
Juniper is a Qt-based GUI Spotify client.
Features:
- Qt-based GUI
- Uses libspotify
- Platform: Linux
- Author: Pål Driveklepp
- URL: http://github.com/jalla2000/Juniper
SpotyXBMC
Spotyxbmc is a project to bring support for Spotify to the popular Xbox Media Center platform.
Features:
- Integrates with XBMC
- Supports playlists
- Searching
- Album, artist and toplists browsing
- Uses libopenspotify (due to GPL licensing issues with libspotify)
- Platforms: Linux, Mac OS X, Windows
- Author: David Erenger
- URL: http://spotyxbmc.tumblr.com

An early view of a Spotify search in XBMC
Third party Spotify client libraries
On April 7th, 2009 Spotify released libspotify, a client library that can be used to build applications around Spotify’s music streaming platform. Initially only 32-bit Linux was supported but as of January 15th, 2010 it also sports support for Linux on 64-bit platforms. Hopefully we’ll see support for even more platforms in the future.
libspotify is a closed source library and probably needs to stay that way. Reasons for this likely include both a requirement on their part to protect the raw audio feed aswell as preventing abuse of the system that keeps track of what songs have been played so artists can get paid properly.
Since the release of despotify three different open source client libraries have been created. Their main benefits include not being dependant on what hardware platforms Spotify can actively support aswell as having permissive software licenses.
NOTE: Just as with libspotify, you need a premium subscription to be able to talk to Spotify’s platform with third party client libraries.
libdespotify-simple
Written mainly by Björn Stenberg this is a simple-to-use library for accessing Spotify. The library is synchronous in its operations and hides the complexity behind Spotify’s multiplexing protocol.
Features:
- Playlist retrieving
- Playlist modifications (renaming, controlling collaboration flag)
- Searching
- Cover art
- Audio playback
- Simple to use
- Language: C
- Platforms: Linux, FreeBSD, Mac OS X, Solaris
- Author: Björn Stenberg and others
- URL: http://despotify.se/source-code/
jotify
Written from scratch in pure Java, Jotify is often first to support new features found in Spotify.
Features:
- Supports most operations that libspotify does
- Language: Java
- Platforms: JRE 1.6
- Author: Felix Bruns
- URL: http://github.com/fxb/jotify
libopenspotify
libopenspotify aims to be a API compatible, cross-platform drop-in replacement for libspotify, free of licesing issues with its permissive 2-clause BSD license.
Features:
- Most things libspotify supports except playlist modification
- API compatible with libspotify 0.0.3
- Permissive 2-clause BSD license
- Language: C
- Platforms: Linux, Mac OS X, Windows
- Author: Noah Williamsson
- URL: http://github.com/noahwilliamsson/openspotify
Bindings for Spotify client libraries
Jørgen P. Tjernø has written spytify, Python bindings for libdespotify-simple.
Jesper Särnesjö has written greenstripes, MIT-licensed Ruby bindings for libspotify.
GitHub user jptix started writing Rubi-FFI bindings for libspotify with spotifyrb.
Doug Winter has written pyspotify, Python bindings for libspotify.
Jonas Larsson has written libspotify-sharp, C# bindings for libspotify.
During Music Hack Day in Stockholm, Rasmus Andersson started spotifycocoa, a project to bring Cocoa style bindings for libspotify.
GitHub user romnes has written libqspotify, Qt bindings for libspotify.

