From 51515bc8a14ca39b393f571f1acd397340b6facf Mon Sep 17 00:00:00 2001 From: Broque Thomas Date: Sun, 15 Feb 2026 11:46:19 -0800 Subject: [PATCH] update spotify api in response to their bullshit --- core/spotify_client.py | 12 +++++++----- web_server.py | 7 ++++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/core/spotify_client.py b/core/spotify_client.py index 432938e7..f362830e 100644 --- a/core/spotify_client.py +++ b/core/spotify_client.py @@ -162,7 +162,7 @@ class Playlist: public=playlist_data['public'], collaborative=playlist_data['collaborative'], tracks=tracks, - total_tracks=playlist_data['tracks']['total'] + total_tracks=(playlist_data.get('tracks') or playlist_data.get('items') or {}).get('total', 0) ) class SpotifyClient: @@ -438,12 +438,14 @@ class SpotifyClient: tracks = [] try: - results = self.sp.playlist_tracks(playlist_id, limit=100) - + results = self.sp.playlist_items(playlist_id, limit=100) + while results: for item in results['items']: - if item['track'] and item['track']['id']: - track = Track.from_spotify_track(item['track']) + # Handle both old API ('track') and new Feb 2026 API ('item') field names + track_data = item.get('track') or item.get('item') + if track_data and track_data.get('id'): + track = Track.from_spotify_track(track_data) tracks.append(track) results = self.sp.next(results) if results['next'] else None diff --git a/web_server.py b/web_server.py index d1be25c9..9b78e94f 100644 --- a/web_server.py +++ b/web_server.py @@ -15359,12 +15359,13 @@ def get_playlist_tracks(playlist_id): # Fetch all tracks with full album data tracks = [] - results = spotify_client.sp.playlist_tracks(playlist_id, limit=100) + results = spotify_client.sp.playlist_items(playlist_id, limit=100) while results: for item in results['items']: - if item['track'] and item['track']['id']: - track_data = item['track'] + # Handle both old API ('track') and new Feb 2026 API ('item') field names + track_data = item.get('track') or item.get('item') + if track_data and track_data.get('id'): tracks.append({ 'id': track_data['id'], 'name': track_data['name'],