From 3e2e8ed0fb76f6606839ced94659e8a1a82e2bf4 Mon Sep 17 00:00:00 2001 From: Ritiek Malhotra Date: Mon, 13 Jan 2020 20:24:53 +0530 Subject: [PATCH] Trim '?' when extracting ID from HTTP URLs If this excess part isn't trimmed from the ID, it can cause unexpected results when calling some API methods. For example; this code now correctly returns all albums for an artist: ``` artist = 'https://open.spotify.com/artist/7oPftvlwr6VrsViSDV7fJY?si=M3PrzRC4TBOZu8YyLYc-tA' artist_albums = sp.artist_albums(artist) ``` Previously, this code mimicked same behaviour as calling `spotify.artist`, but now will return albums as expected with this commit. Fixes #365 and #323. --- spotipy/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spotipy/client.py b/spotipy/client.py index 6e215f0..86ee137 100644 --- a/spotipy/client.py +++ b/spotipy/client.py @@ -1128,7 +1128,7 @@ class Spotify(object): if type != itype: self._warn('expected id of type %s but found type %s %s' % (type, itype, id)) - return fields[-1] + return fields[-1].split('?')[0] return id def _get_uri(self, type, id):