All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Update to okhttp
5.3.2 - Requiring Java 21
- Remove implicit grant flow (see blog post from Spotify)
- Add JSpecify nullness annotations
- Remove
followersproperty fromPlaylistUserobject - Bump jackson to
2.18.3
- Add deprecation notice to some endpoints (see this blog post from Spotify)
- Fix search type will be transferred incorrectly #326
- Bump jackson to
2.18.2
UsersApi#checkIfUserFollowsPlaylistremoveidsargument as only the current use can be checked- Adjust type of
artistsproperty inTrackobject fromArtisttoSimplifiedArtist - Bump jackson to
2.18.1
- Remove no longer supported
countryquery parameter - Fix generation for 64bit integers #262
- Bump jackson to
2.16.1
- Introduce
ArtistDiscographyAlbumas response for get Artist's Albums request - Rename model
DevicesintoManyDevices - Remove unused
PlayerErrorandTuneableTrackmodels - Bump jackson to
2.16.0 - Bump okhttp to
4.12.0
- Update links to Spotify documentation
- Adjust the categories of some endpoints to match with the official Spotify Web API Reference. No endpoint have been removed, they just got moved to other categories.
- Added
CategoriesApiandGenresApicategory - Removed
BrowseApe,LibraryApiandPersonalizationApi - Renamed
UsersProfileApitoUsersApi
- Added
- Add "Get an Audiobook's Chapters" endpoint
- Add "Get User's Saved Audiobooks" endpoint
- Add "Save Audiobooks for Current User" endpoint
- Add "Remove User's Saved Audiobooks" endpoint
- Add "Check User's Saved Audiobooks" endpoint
- Fix type of
shuffleStateinCurrentlyPlayingContexttoboolean - Fix return type of "Get Category's Playlists request" from
PagedPlayliststoPagingFeaturedPlaylist - Fix return type of "Get Featured Playlists request" from
PagedPlaylistsAndMessagetoPagingFeaturedPlaylist - Fix type of
narratorsfield inAudiobookBasefromNarratortoList<Narrator> - Bump jackson to
2.15.2 - Bump okhttp to
4.11.0
- Change the API of the recommendations request. All
seed*parameters are now considered optional because not all of them are always required. It must be at least oneseed*parameter present. - Add player's get queue request
- Add audiobooks and chapters API
- Bump jackson to
2.13.4
- Fix type of artists property of Album to SimplifiedArtist
- Bump jackson-databind from 2.13.2 to 2.13.2.2
The Java wrapper generator has been completely rewritten and uses now OpenAPI definition of the Spotify Web API as source. The OpenAPI definition contains fixes and improvements from my spotify-web-api repository. Therefore, some model class names have changed and many fixes are included.
- The library now also requires Java 17
- Update to jackson
2.13.2and jackson-databind to2.13.2.1to fix CVE-2020-36518 - Update to okhttp
4.9.3
- Update to spotify-web-api-core
2021.10.17- Mark
marketparameter in "Get Artist's Top Tracks" endpoint as optional - Mark
marketparameter in "Get User's Currently Playing Track" endpoint as optional
- Mark
- Update to okhttp
4.9.2 - Update to jackson
2.12.5
- Update to spotify-web-api-core
2021.8.23- Fix
tracksproperty inRecommendations - Mark
marketparameter in "Get Playlist's Items" endpoint as optional - Make "Upload a Custom Playlist Cover Image" endpoint actually usable
- Make type of
tracksparameter in "Remove Items from a Playlist" endpoint more accurate
- Fix
- Update to jackson
2.12.4
- Update to spotify-web-api-core
2021.6.18- Fix response type of
ReplacePlaylistsTracksRequestfromVoidtoSnapshotId.
- Fix response type of
- Add a module-info file, so the library is usable with the Java module system.
- Update to spotify-web-api-core
2021.5.1- The
idsparameter in theRemoveShowsUserRequestandSaveShowsUserRequestis now passed in the body - Add
htmlDescriptionandrestrictionsfields toEpisodeandSimplifiedEpisode - Fix
SearchResponseobject
- The
Complete rewrite of the library. The models and endpoints are generated from output of my spotify-web-api-parser which generates a machine-readable format of the Spotify Web API Reference. This results in a lot of breaking changes around naming of objects, properties, endpoints and parameters.
Other notable changes:
- Renamed the maven groupId from
de.jsone-studiostode.sonallux.spotify - Renamed package from
de.jsone_studios.wrapper.spotifytode.sonallux.spotify.api - Removed
SpotifyApiinterface in favour of an updatedSpotifyWebApiclass SpotifyWebApiuses the builder pattern to create an instance- Replaced retrofit with a custom wrapper around OkHttp
- Requests are now created with a builder style api for optional parameters. For example:
ApiCall<?> call1 = spotifyWebApi.getXApi().getX("requiredParam").build();
ApiCall<?> call2 = spotifyWebApi.getXApi().getX("requiredParam").optionalParam1("Y").build();- Removed
SpotifyApi.callApi()in favour of anexecuteCall()method on the newApiCallclass - Removed
SpotifyApi.callApiAndReturnBody()in favour of anexecute()method on the newApiCallclass - Added support for all authorization flows. See here for more details.
- Bump minimum required Java version to Java 11
The changelog of the 1.x.x version of the spotify-web-api-java can be found on the 1.x branch.