Adapt to Spotify API February 2026 changes#344
Adapt to Spotify API February 2026 changes#344redslime wants to merge 10 commits intoadamint:mainfrom
Conversation
|
Looks like the tests are failing here, I'm assuming the client credentials are outdated for this repo. I've verified both App API and Client API tests as successful over in my own repo: https://github.com/redslime/spotify-web-api-kotlin/actions. |
|
Well good news, Spotify listened to feedback and decided to postpone "restricted API access to a reduced set of supported endpoints" until further notice. There is now a March 2026 changelog.
Anyway, considering most changes in this PR are now out of scope, I will close this PR. Once the dust settles and it becomes clear which parts of the originally announced changes are going through, I intend to make new PR(s) adapting to them. |
|
I swear to god the communication on Spotify's side is a joke. First a 1 month's notice with major changes and then, on the day the changes are supposed to go live and others probably already tried to adjust to the announced changes, they just turn around. |
This PR addresses all announced February 2026 changes to the Spotify API. All relevant functions and fields affected as detailed below have not been removed, but instead annotated with
@SpotifyExtendedQuotasince they remain functional if using client credentials with extended quota mode.Restricted endpoints:
GET /albums,/artists,/browse/categories,/episodes,/shows,/tracksGET /browse/new-releases,/browse/categories,/browse/categories/{id}GET /marketsGET /artists/{id}/top-tracksGET /users/{id}/playlists,/users/{id}(Audiobook & chapter APIs were restricted as well but are not reflected in this API at the moment)
Restricted fields:
album_group,available_markets,external_ids,label,popularityfollowers,popularityavailable_markets,publisheravailable_markets,external_ids,linked_from,popularitycountry,email,explicit_content,followers,productUnified
/me/libraryendpoint:/me/{albums|episodes|shows|tracks|albums}migrated to/me/library/me/followingmigrated to/me/libraryPlaylist changes:
tracksfields have been renamed toitems. The old field names were kept but marked as deprecated for legacy accessibilitytracksendpoints have also migrated toitemsPOST /users/{user_id}/playliststoPOST /me/playlistsOlder changes (2024):
In 2024, some endpoints were restricted to extended quota mode already, see announcement.
Relevant endpoint functions have also been annotated with
@SpotifyExtendedQuotaaccordingly:GET /artists/{id}/related-artistsGET /recommendationsGET /audio-features/{id},/audio-analysis/{id}GET /browse/featured-playlists,/browse/categories/{category_id}/playlistsOlder changes (2025):
Updated tests
@Ignored