A light weight Python library for the Spotify Web API
Go to file
DJSdev c425102659
Adding Initial PKCE Auth Flow Support (#542)
* Added base funtionality for PKCE Authorization - i538

* fixed a mistake with the auth code

* fixed more misunderstandings. fixed grant_access_token to now call authorization if needed

* added comments and references to code verifier and code challenge

* removed debug print statement

* updated unit tests for new PKCE flow

* cleaned up username issues - added doc strings to class

* fixed import issue, added user endpoint tests

* forgot to commit this file

* linted

* clarified comment

* no longer generates code verifier or challenge in constructor, only when needed

* fixed flake8 complaints, added forgotten unit tests

* fixed linting with unit tests

* anotha one

* added python3.5 support

* linting

* added to CHANGELOG

* removed as_dict option from get_access_token()

Co-authored-by: tomCLANCC <26153156+tomCLANCC@users.noreply.github.com>
2020-07-21 17:08:09 +01:00
.github Update issue templates 2020-06-15 21:22:08 +01:00
docs Deprecate util.prompt_for_user_token() 2020-06-14 18:01:14 +01:00
examples Update Playlist Endpoints and Add Following Endpoints (#531) 2020-07-11 11:23:18 +01:00
spotipy Adding Initial PKCE Auth Flow Support (#542) 2020-07-21 17:08:09 +01:00
tests Adding Initial PKCE Auth Flow Support (#542) 2020-07-21 17:08:09 +01:00
.gitignore Update recommendations doc, fixes #290 2020-02-22 13:08:26 +00:00
CHANGELOG.md Adding Initial PKCE Auth Flow Support (#542) 2020-07-21 17:08:09 +01:00
CONTRIBUTING.md Update contributing 2020-04-11 13:43:54 +01:00
FAQ.md Deprecate util.prompt_for_user_token() 2020-06-14 18:01:14 +01:00
LICENSE.md Bump to 2.6.0 2020-01-12 14:42:52 +00:00
MANIFEST.in Release with CHANGELOG + LICENSE, solves #454 2020-03-18 20:34:22 +00:00
README.md Update Issues section 2020-06-15 21:28:13 +01:00
setup.py Bump to 2.13.0 2020-06-25 22:04:44 +01:00
tox.ini Linting of core subpackage + clean up imports (#437) 2020-02-09 12:59:20 +00:00

Spotipy

A light weight Python library for the Spotify Web API

Tests Documentation Status

Documentation

Spotipy's full documentation is online at Spotipy Documentation.

Installation

pip install spotipy

or upgrade

pip install spotipy --upgrade

Quick Start

A full set of examples can be found in the online documentation and in the Spotipy examples directory.

To get started, install spotipy and create an app on https://developers.spotify.com/. Add your new ID and SECRET to your environment:

Without user authentication

export SPOTIPY_CLIENT_ID=client_id_here
export SPOTIPY_CLIENT_SECRET=client_secret_here

// on Windows, use `SET` instead of `export`
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials

sp = spotipy.Spotify(auth_manager=SpotifyClientCredentials())

results = sp.search(q='weezer', limit=20)
for idx, track in enumerate(results['tracks']['items']):
    print(idx, track['name'])

With user authentication

export SPOTIPY_CLIENT_ID=client_id_here
export SPOTIPY_CLIENT_SECRET=client_secret_here
export SPOTIPY_REDIRECT_URI=redirect_uri_here

// on Windows, use `SET` instead of `export`
import spotipy
from spotipy.oauth2 import SpotifyOAuth

scope = "user-library-read"

sp = spotipy.Spotify(auth_manager=SpotifyOAuth(scope=scope))

results = sp.current_user_saved_tracks()
for idx, item in enumerate(results['items']):
    track = item['track']
    print(idx, track['artists'][0]['name'], "  ", track['name'])

Reporting Issues

For common questions please check our FAQ.

You can ask questions about Spotipy on Stack Overflow. Dont forget to add the Spotipy tag, and any other relevant tags as well, before posting.

If you have suggestions, bugs or other issues specific to this library, file them here. Or just send a pull request.