feat: implement Spotify Web API February 2026 breaking changes#296
feat: implement Spotify Web API February 2026 breaking changes#296janvrska wants to merge 1 commit intozmb3:masterfrom
Conversation
- Remove deleted fields from structs (album, artist, track, user, show) - Rename playlist 'tracks' to 'items' across types, endpoints, and JSON - Remove deleted endpoints (batch gets, follows, categories, new releases) - Replace old library methods with generic URI-based endpoints - Replace CreatePlaylistForUser with CreatePlaylist (POST /me/playlists) - Update search limit documentation (max 10, default 5) - Update all tests and test data to match new API shape
jdcukier
left a comment
There was a problem hiding this comment.
Much more thorough fix than my branch. Thanks for doing this 👍
|
Thanks for providing this. Looking forward to having this merged and ready to use :) |
|
Sorry for "any updates" kind of message, but I'm not quite sure whether this repo is maintained. Is it? If not, are there any alternatives? Is forking the way to go? |
|
For anyone interested in a short term solution, I forked the repo with @janvrska's fixes here: https://github.com/jdcukier/spotify I don't plan on maintaining it long term though |
|
From the official communication from Spotify sent out on March 9:
|
Implements all breaking changes from the Spotify Web API February 2026 update.
Removed Fields
SimpleAlbumAlbumGroup,AvailableMarketsFullAlbumPopularity,ExternalIDsFullArtistPopularity,FollowersSimpleTrackAvailableMarkets,ExternalIDsFullTrackPopularity,LinkedFromUserFollowersPrivateUserCountry,Email,ProductSimpleShowAvailableMarkets,PublisherRemoved types:
TrackExternalIDs,LinkedFromInfo,Category,CategoryPage.Removed Endpoints
GetAlbums,GetArtists,GetTracksFollowUser,FollowArtist,UnfollowUser,UnfollowArtist,CurrentUserFollows,FollowPlaylist,UnfollowPlaylist,UserFollowsPlaylistGetCategory,GetCategories,GetCategoryPlaylists,NewReleasesGetUsersPublicProfile,GetPlaylistsForUser,GetPlaylistTracks,GetArtistsTopTracks,SaveShowsForCurrentUserUserHasTracks,UserHasAlbums,AddTracksToLibrary,RemoveTracksFromLibrary,AddAlbumsToLibrary,RemoveAlbumsFromLibraryRenamed:
tracks→itemsPlaylistTracks→PlaylistItemsSimplePlaylist.Tracks→SimplePlaylist.ItemsFullPlaylist.Tracks→FullPlaylist.ItemsPlaylistItem.Track→PlaylistItem.Item(JSON:"item")PlaylistTrackPage.Tracks→PlaylistTrackPage.Items/playlists/{id}/tracks→/playlists/{id}/items"tracks"→"items"in remove operationsNew Endpoints
CreatePlaylist(ctx, name, description, public, collaborative)— replacesCreatePlaylistForUser, usesPOST /me/playlistsSaveToLibrary(ctx, uris ...URI)—PUT /me/library(generic, URI-based)RemoveFromLibrary(ctx, uris ...URI)—DELETE /me/libraryUserHasSavedItems(ctx, uris ...URI)—GET /me/library/containsOther Changes
category.goandcategory_test.go