Spotify Search
SearchSpotify is a complete wrapper for the Search API provided by Spotify written in Python.
It has built-in classes that helps you access the data returned by Spotify, alongside with useful methods for exporting data.
Check the documentation for more information on classes and methods.
What you can do
- Get Spotify catalog information about albums, artists or tracks that match a keyword string.
- Easily access the information provided by Spotify using specific class attributes and methods, such as name, id, url and many more.
- Access and export audio and image files, such as album covers for example.
Installation
SearchSpotify depends on requests. You can easily install it by using PIP
python -m pip install requests
Then, you can safely install SearchSpotify using the following command:
python -m pip install searchspotify
Testing your installation
You can test your installation using python interactive shell
>>> import searchspotify
Getting access to the API
To get access to Spotify Search API, you need to have a Spotify account to get an access token, which is required by the API itself.
You can register an account if you don't have one.
Then, you need to login into your account in Spotify for Developers.
Once you have successfully logged in, go to your Dashboard, and create a new application.
You should see something like this:
Once you've created your application, you'll receive a client ID and a client secret. These are your credentials, you should store them in a safe environment.
IMPORTANT: You should not store your credentials inside of your code if you're planning to publish it. You should use Environment Variables instead. Check this section to learn how to keep your credentials safe.
Making your first call
So now that you have your credentials, you can start making your calls to the API.
Open your editor and run the following code:
from searchspotify import Client
myclient = Client("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
results = myclient.search("Never gonna give you up")
tracks = results.get_tracks()
track = tracks[0]
print(track.name, "-", track.artists[0].name)
print(track.url)
playlist = myclient.search("https://open.spotify.com/playlist/37i9dQZEVXbmHwm9TPg9pf?si=fUjIaGonRlW3GfkZ9kuxFg")
p(f"Playlist title: {playlist.playlist_name}")
p(f"total tracks: {playlist.total_tracks}")
p(f"description: {playlist.description}")
p(f"total duration: {playlist.total_duration()}")
for track in playlist.tracks:
print("Track Name:", track.track_name)
print("Track URL:", track.spotify_url)
print("Duration:", track.get_string_duration())
album = myclient.search("https://open.spotify.com/album/5nUuEb92id5CtdQCtOs7a1")
print("Album Name:", album.album_name)
print("Album Label:", album.label)
print("Album popularity:", album.popularity)
print("Album Thumb:", album.thumbnail_url)
print("Artists:", album.artists)
print("Release Date:", album.release_date)
print("Total Tracks:", album.total_tracks)
print("Total Duration:", album.total_duration_string())
for track in album.tracks:
print("Track Name:", track.track_name)
print("Track Number:", track.track_number)
print("Track URL:", track.spotify_url)
print("Duration:", track.get_string_duration())
This should be your result:
Never Gonna Give You Up - Rick Astley
https://open.spotify.com/track/4cOdK2wGLETKBW3PvgPWqT
That seems to be a lot of code, but you can simplify it a lot, like so:
from searchspotify.client import Client
myclient = Client("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
track = myclient.search("Never gonna give you up").get_tracks()[0]
print(track.name, "-", track.artists[0].name)
In a few lines of code, we got access to the API, retrieved some useful information of the first track in our results and displayed it.
There are a lot of class attributes and methods that you can use to retrieve the information you need, you can check them out in the documentation.
Keeping your credentials safe
As mentioned before, you should not store your credentials inside of your code. Specially if you are planning to publish it.
A safer way to store them is by using Environment Variables.
Here's a complete tutorial on how to define and access environment variables using Python.
License
This project is under the terms of the MIT license.