spotipy - get track ids from track names

  • Last Update :
  • Techknowledgy :

Spotipy.search() is what you are looking for.

import spotipy
sp = spotipy.Spotify()

artist = 'Moses Sumney'
track = 'Lonely World'

track_id = sp.search(q = 'artist:' + artist + ' track:' + track, type = 'track')

Suggestion : 2

Get audio features for one or multiple tracks based upon their Spotify IDs Parameters:,tracks - a list of track URIs, URLs or IDs, maximum: 100 ids,Get audio analysis for a track based upon its Spotify ID Parameters:,tracks - a list of spotify URIs, URLs or IDs. Maximum: 50 IDs.

import spotipy
from spotipy.oauth2
import SpotifyClientCredentials

birdy_uri = 'spotify:artist:2WX2uTcsvV5OnS0inACecP'
spotify = spotipy.Spotify(client_credentials_manager = SpotifyClientCredentials())

results = spotify.artist_albums(birdy_uri, album_type = 'album')
albums = results['items']
while results['next']:
   results = spotify.next(results)
albums.extend(results['items'])

for album in albums:
   print(album['name'])
import spotipy
from spotipy.oauth2
import SpotifyClientCredentials

lz_uri = 'spotify:artist:36QJpDe2go2KgaRleHCDTp'

spotify = spotipy.Spotify(client_credentials_manager = SpotifyClientCredentials())
results = spotify.artist_top_tracks(lz_uri)

for track in results['tracks'][: 10]:
   print('track    : ' + track['name'])
print('audio    : ' + track['preview_url'])
print('cover art: ' + track['album']['images'][0]['url'])
print()
import spotipy
import sys
from spotipy.oauth2
import SpotifyClientCredentials

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

if len(sys.argv) > 1:
   name = ' '.join(sys.argv[1: ])
else:
   name = 'Radiohead'

results = spotify.search(q = 'artist:' + name, type = 'artist')
items = results['artists']['items']
if len(items) > 0:
   artist = items[0]
print(artist['name'], artist['images'][0]['url'])
pip install spotipy--upgrade
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'])
export SPOTIPY_CLIENT_ID = 'your-spotify-client-id'
export SPOTIPY_CLIENT_SECRET = 'your-spotify-client-secret'
export SPOTIPY_REDIRECT_URI = 'your-app-redirect-url'

Suggestion : 3

References References iFrame API oEmbed API , API Reference ,Get Recently Played Tracks

API Reference Get Track
Endpoint https://api.spotify.com/v1/tracks/{id}
HTTP Method GET
OAuth Required
  GET https: //api.spotify.com/v1/tracks/{id}

Suggestion : 4

To import and connect to spotipy; go to jupyter lab and copy and paste:,This blog will assume you already have Anaconda and JupyterLab installed.,Replacing X and Y with the strings just obtained from https://developer.spotify.com/.,and pop in the user_id and playlist_id we found in step 6.

  1. To import and connect to spotipy; go to jupyter lab and copy and paste:
import spotipy
from spotipy.oauth2
import SpotifyClientCredentials
import pandas as pd
CLIENT_ID = “X”
CLIENT_SECRET = “Y”
sp = spotipy.Spotify(auth_manager = SpotifyClientCredentials(client_id = "CLIENT_ID", client_secret = "CLIENT_SECRET"))

def analyze_playlist(user_id, playlist_id):

# Create empty dataframe
playlist_features_list = ["artist", "album", "track_name", "track_id", "danceability", "energy", "key", "loudness", "mode", "speechiness", "instrumentalness", "liveness", "valence", "tempo", "duration_ms", "time_signature"]

playlist_df = pd.DataFrame(columns = playlist_features_list)

# Loop through every track in the playlist, extract features and append the features to the playlist df

playlist = sp.user_playlist_tracks(creator, playlist_id)["tracks"]["items"]
for track in playlist:
   # Create empty dict
playlist_features = {}
# Get metadata
playlist_features["artist"] = track["track"]["album"]["artists"][0]["name"]
playlist_features["album"] = track["track"]["album"]["name"]
playlist_features["track_name"] = track["track"]["name"]
playlist_features["track_id"] = track["track"]["id"]

# Get audio features
audio_features = sp.audio_features(playlist_features["track_id"])[0]
for feature in playlist_features_list[4: ]:
   playlist_features[feature] = audio_features[feature]

# Concat the dfs
track_df = pd.DataFrame(playlist_features, index = [0])
playlist_df = pd.concat([playlist_df, track_df], ignore_index = True)

return playlist_df