A light weight Python library for the Spotify Web API
Go to file
Brennan Pate d92951b356
Update Directions In TUTORIAL.md; Add Unit Tests To non_user_endpoints test.py (#1136)
* Update navigational directions in Step 1(A)

* Combine directions in Step 1(B) and Step 2(C) and remove Step 2(C)

* Update navigational directions and verbage in Step 1(C)

* Change reference from Step 1(C) to Step 1(B) in Step 2(D)

* Update capitalization in Prerequisites Step 3

* Add directions for installing Spotipy in Prerequisites Step 1(A)

* List updates to TUTORIAL.md file in CHANGELOG.md

* Update docstrings for funcs in lines 340-585

* Add unit tests for artist ID and URL

* Add test_artists_mixed_ids

* Updated CHANGELOG.md and TUTORIAL.md as requested

* Update client.py and test.py

* Fix linting issue

* Remove duplicate line; Change order of prerequisites

* Update local repo

* Add test_artists_mixed_ids

* Add Radiohead ID and URL; Add qotsa URL

* Add test_artist_url

* Comment out three failing tests

* Fix linting errors

* Uncommenting out failed tests

* Add test_artist_id

* List changes in CHANGELOG.md

* Add line breaks at the end of files.

* Remove multiple spaces

Also I've removed a sentence that just doesn't make sense in my eyes, but was added before this PR.

---------

Co-authored-by: Niko <github@dieserniko.link>
2024-06-22 17:35:53 +02:00
.github Remove python2.7 from pypi build 2024-05-30 22:06:13 +01:00
docs Update Directions In TUTORIAL.md; Add Unit Tests To non_user_endpoints test.py (#1136) 2024-06-22 17:35:53 +02:00
examples Corrections to Grammar Errors and Typos in Documentation (#1017) 2024-05-30 19:37:39 +01:00
spotipy Added and revised function docstrings for util.py (#1130) 2024-06-18 10:30:04 +02:00
tests Update Directions In TUTORIAL.md; Add Unit Tests To non_user_endpoints test.py (#1136) 2024-06-22 17:35:53 +02:00
.gitignore Update recommendations doc, fixes #290 2020-02-22 13:08:26 +00:00
.readthedocs.yaml RTD theme fix (#1122) 2024-05-28 09:08:23 +01:00
CHANGELOG.md Update Directions In TUTORIAL.md; Add Unit Tests To non_user_endpoints test.py (#1136) 2024-06-22 17:35:53 +02:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md (#897) 2022-12-10 14:22:45 +00:00
CONTRIBUTING.md Update Directions In TUTORIAL.md; Add Unit Tests To non_user_endpoints test.py (#1136) 2024-06-22 17:35:53 +02:00
FAQ.md Update links in documentation (#969) 2023-05-02 22:26:40 +01:00
LICENSE.md Bump to 2.19.0 2021-08-12 11:27:26 +01:00
MANIFEST.in Release with CHANGELOG + LICENSE, solves #454 2020-03-18 20:34:22 +00:00
README.md Fix TOC in readme 2024-05-31 08:11:58 +01:00
setup.py Remove obsolete mock dependency (#1127) 2024-05-31 08:08:24 +01:00
tox.ini Drop support for EOL Python 3.7 (#1065) 2024-05-21 18:32:01 +02:00
TUTORIAL.md Update Directions In TUTORIAL.md; Add Unit Tests To non_user_endpoints test.py (#1136) 2024-06-22 17:35:53 +02:00

Spotipy

Spotipy is a lightweight Python library for the Spotify Web API. With Spotipy you get full access to all of the music data provided by the Spotify platform.

Tests Documentation Status

Table of Contents

Features

Spotipy supports all of the features of the Spotify Web API including access to all end points, and support for user authorization. For details on the capabilities you are encouraged to review the Spotify Web API documentation.

Installation

pip install spotipy

alternatively, for Windows users

py -m 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, create a new account or log in on https://developers.spotify.com/. Go to the dashboard, create an app and add your new ID and SECRET (ID and SECRET can be found on an app setting) to your environment (step-by-step video):

Example without user authentication

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials

sp = spotipy.Spotify(auth_manager=SpotifyClientCredentials(client_id="YOUR_APP_CLIENT_ID",
                                                           client_secret="YOUR_APP_CLIENT_SECRET"))

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

Expected result:

0 Island In The Sun
1 Say It Ain't So
2 Buddy Holly
.
.
.
18 Troublemaker
19 Feels Like Summer

Example with user authentication

A redirect URI must be added to your application at My Dashboard to access user authenticated features.

import spotipy
from spotipy.oauth2 import SpotifyOAuth

sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id="YOUR_APP_CLIENT_ID",
                                               client_secret="YOUR_APP_CLIENT_SECRET",
                                               redirect_uri="YOUR_APP_REDIRECT_URI",
                                               scope="user-library-read"))

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

Expected result will be the list of music that you liked. For example if you liked Red and Sunflower, the result will be:

0 Post Malone    Sunflower - Spider-Man: Into the Spider-Verse
1 Taylor Swift    Red

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.

Contributing

If you are a developer with Python experience, and you would like to contribute to Spotipy, please be sure to follow the guidelines listed on documentation page

Visit the guideline