/pyspotify

Python bindings for libspotify (no longer working as of May 2022)

Primary LanguagePythonApache License 2.0Apache-2.0

pyspotify

WARNING: This library no longer works

pyspotify is a Python wrapper around the libspotify C library, and thus depends on libspotify for everything it does.

In May 2015, libspotify was deprecated by Spotify and active maintenance stopped. At this point, libspotify had been the main way to integrate with Spotify for six years, and was part of numerous open source projects and commercial applications, including many receivers and even cars. It remained the only API for playback outside Android and iOS.

In February 2016, server side changes to the Spotify API caused the search functionality to stop working, without Spotify ever acknowledging it. Users of pyspotify could work around this by using the Spotify web API for searches and pyspotify for playback.

In April 2022, Spotify announced that they would sunset the libspotify API one month later.

In May 2022, new libspotify connections to Spotify started failing. With libspotify dead, pyspotify was dead too.

After two years in development from May 2013 to May 2015, and seven years of loyal service this project has reached its end.

There will be no further updates to pyspotify.

Hopefully, the pyspotify source code can still serve as a complete example of how to successfully wrap a large C library in Python using CFFI.

Introduction

pyspotify provides a Python interface to Spotify's online music streaming service.

With pyspotify you can access music metadata, search in Spotify's library of 20+ million tracks, manage your Spotify playlists, and play music from Spotify. All from your own Python applications.

pyspotify uses CFFI to make a pure Python wrapper around the official libspotify library. It works on CPython 2.7 and 3.5+, as well as PyPy 2.7 and 3.5+. It is known to work on Linux and macOS. Windows support should be possible, but is awaiting a contributor with the interest and knowledge to maintain it.

Project resources

Latest PyPI version CI build status Read the Docs build status Test coverage