From fd761cb1e6c3d0f4d9c52495c7ff7f7bc13498a4 Mon Sep 17 00:00:00 2001 From: Dominik Schrempf Date: Sat, 18 Dec 2021 16:21:25 +0100 Subject: [PATCH] fix spotify pagination Basically, keep fetching tracks until there are no more available for the specified album. Fixes #4180. --- beetsplug/spotify.py | 9 ++++++++- docs/changelog.rst | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/beetsplug/spotify.py b/beetsplug/spotify.py index 2529160dd..931078d28 100644 --- a/beetsplug/spotify.py +++ b/beetsplug/spotify.py @@ -194,9 +194,16 @@ class SpotifyPlugin(MetadataSourcePlugin, BeetsPlugin): ) ) + tracks_data = album_data['tracks'] + tracks_items = tracks_data['items'] + while tracks_data['next']: + tracks_data = self._handle_response(requests.get, + tracks_data['next']) + tracks_items.extend(tracks_data['items']) + tracks = [] medium_totals = collections.defaultdict(int) - for i, track_data in enumerate(album_data['tracks']['items'], start=1): + for i, track_data in enumerate(tracks_items, start=1): track = self._get_track(track_data) track.index = i medium_totals[track.medium] += 1 diff --git a/docs/changelog.rst b/docs/changelog.rst index 4d27107ab..3283fc712 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -13,6 +13,8 @@ New features: Bug fixes: +* :doc:`/plugins/spotify`: Fix auto tagger pagination issues (fetch beyond the + first 50 tracks of a release). * :doc:`/plugins/lyrics`: Fix Genius search by using query params instead of body. * :doc:`/plugins/unimported`: The new ``ignore_subdirectories`` configuration option added in 1.6.0 now has a default value if it hasn't been set.