MCPcopy
hub / github.com/spotipy-dev/spotipy

github.com/spotipy-dev/spotipy @2.26.0 sqlite

repository ↗ · DeepWiki ↗ · release 2.26.0 ↗
409 symbols 1,319 edges 17 files 164 documented · 40%
README

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.

Integration tests Documentation Status Discord server

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:

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. Don’t 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

Core symbols most depended-on inside this repo

_get
called by 64
spotipy/client.py
_get_id
called by 37
spotipy/client.py
_get_uri
called by 26
spotipy/client.py
get_cached_token
called by 20
spotipy/oauth2.py
_put
called by 18
spotipy/client.py
save_token_to_cache
called by 13
spotipy/cache_handler.py
_delete
called by 10
spotipy/client.py
search
called by 10
spotipy/client.py

Shape

Method 349
Class 37
Function 14
Route 9

Languages

Python100%

Modules by API surface

spotipy/client.py124 symbols
spotipy/oauth2.py71 symbols
tests/integration/user_endpoints/test.py64 symbols
tests/unit/test_oauth.py59 symbols
tests/integration/non_user_endpoints/test.py49 symbols
spotipy/cache_handler.py27 symbols
spotipy/exceptions.py8 symbols
spotipy/util.py5 symbols
tests/helpers.py2 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

Sphinx8.1.3 · 1×
redis3.5.3 · 1×
sphinx-rtd-theme3.1.0 · 1×

For agents

$ claude mcp add spotipy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact