- Removed deprecated
get_severalandget_top_tracksoperations from the Artists service to match Spotify's February 2026 Web API removals, which removedGET /artistsandGET /artists/{id}/top-tracks. (#71) - Removed deprecated
get_several,get_new_releases, andcheck_savedoperations from the Albums service to match Spotify's February 2026 Web API removals. UseGET /me/library/containswith Spotify URIs instead of album IDs when replacingcheck_saved. (#71) - Removed deprecated
audiobooks.get_several()andchapters.get_several()operations to match Spotify's February 2026 Web API removals, which removedGET /audiobooksandGET /chapters. (#71) - Removed deprecated
get_severalfrom the Tracks service to match Spotify's February 2026 Web API removals, which removedGET /tracks. (#71) - Updated the Playlists service to match Spotify's February 2026 Web API removals: removed user-specific playlist creation and listing, switched playlist item operations from
/tracksto/items, and updated playlist item parsing for the new/itemsresponse shape. (#73) - Removed deprecated follow, unfollow, and follow-status operations from the Users service to match Spotify's February 2026 Web API removals. Migrate to the generic library endpoints (
PUT /me/library,DELETE /me/library, andGET /me/library/contains), which use Spotify URIs instead of resource IDs. (#71)
- Added
audiobooks.get_saved()for Spotify's saved audiobooks endpoint (GET /me/audiobooks), with typed saved-audiobook models in both async and sync clients. (#71) - Added
tracks.get_saved()for Spotify's saved tracks endpoint (GET /me/tracks), with typed saved-track models in both async and sync clients. (#71) - Add player service support for playback state, device control, queue management, and recently played endpoints in both async and sync clients, with typed playback models and reference docs. (#69)
- Fixed type checking for
FileTokenCachewhen used with sync auth providers exported fromspotify_sdk.auth. (#70)
- Add
sniffioas a runtime dependency. (#66)
- Added
authorize_local()instance methods onAuthorizationCodeandAsyncAuthorizationCodeinspotify_sdk.authso local loopback auth can be started directly from the auth object (auth.authorize_local()/await auth.authorize_local()) while keeping function helpers for backward compatibility. (#63) - Added full playlist mutation API support (
create,change_details,reorder_or_replace_items,add_items,remove_items, andupload_cover_image). (#60)
- Add
AsyncShowService/ShowServicewithget,get_episodes, andget_saveoperations; add show/episode models, wireclient.shows, and include async/sync test coverage. (#52) - Add
AsyncEpisodeService/EpisodeServicewithgetandget_savedoperations; addSavedEpisodemodel support, wireclient.episodes, and include async/sync unit + integration coverage. (#53) - Add
AsyncSearchService/SearchServicewith typed catalog search support across albums, artists, playlists, tracks, shows, episodes, and audiobooks. (#55)
- Added support for user saved album library endpoints with
albums.get_saved(...)andalbums.check_saved(...), now enabled by authorization code flow with scopes. Also introduced theSavedAlbummodel and documented the new album APIs. (#48) - Add
AsyncLibraryService/LibraryServicefor URI-based user library save/remove/contains operations, with client wiring, docs, and unit/integration test coverage. (#50)
- Add Authorization Code + refresh-token auth with local loopback helpers, file token cache, and async helper loop-safety fixes; update auth docs/design for consistent setup and usage guidance. (#43)
- Add
AsyncUserService/UserServicewith user APIs for current profile, top artists/tracks, playlist follow/unfollow, followed artists, artist/user follow/unfollow, and follow-status checks. (#44)
- Update docs for the new users service (quickstart + reference pages). (#44)
- Add audiobook models and services (sync + async), including chapter pagination support and tests. (#38)
- Add chapter support with new Chapter model and chapter service methods for getting a chapter and fetching multiple chapters. (#39)
- Add documentation for the new audiobooks service. (#38)
- Add documentation for the new chapters service. (#39)
- Add support for Spotify's Client Credentials Flow with public auth helpers, token caching, and env var support. (#36)
- Document client credentials usage, auth helpers, env vars, and limitations across quickstart, client reference, and a new auth reference page. (#36)
- Renamed
album_idandtrack_idparameters toid, andalbum_idsandtrack_idstoidsinAlbumServiceandTrackServicemethods for consistency with the Spotify API. (#30)
- Added
ArtistService(sync) andAsyncArtistService(async) with methods for fetching an artist by ID, fetching multiple artists (up to 50), listing an artist's albums, and getting their top tracks. (#25) - Add
PlaylistService(sync) andAsyncPlaylistService(async) with methods for fetching a playlist by ID, getting playlist items, listing the current user's playlists, listing a user's playlists, and getting playlist cover images. (#31)
- Expose package version via
spotify_sdk.__version__. - Enable pydocstyle linting with Google convention for consistent docstring formatting. (#32)
- Replace dual-mode
SpotifyClientwith separateAsyncSpotifyClientandSpotifyClientclasses; async methods no longer use_asyncsuffix. (#21)
- Async client now supports trio in addition to asyncio as a backend. (#21)
- Add
get_new_releasesandget_new_releases_asyncmethods toAlbumServicefor retrieving new album releases from Spotify's Browse API (#13). - Add
TrackServicewithget,get_several, and async variants for retrieving tracks from the Spotify API (#14).
- Add
ArtistandSimplifiedArtistmodels with common models (Image,ExternalUrls,Followers) and forward-compatible baseSpotifyModel(#3). - Add
Album,SimplifiedAlbum,Track,SimplifiedTrackmodels withPage[T]generic for pagination and additional common models (ExternalIds,Copyright,LinkedFrom,Restriction) (#7). - Add
SpotifyClientwith dual sync/async HTTP support,AlbumServicewith full CRUD operations (get,get_several,get_tracks), comprehensive exception hierarchy (SpotifyError,AuthenticationError,BadRequestError,ForbiddenError,NotFoundError,RateLimitError,ServerError), automatic retry with exponential backoff for rate limits (429) and server errors (5xx), and input validation (#8).
- Initial version of spotify-sdk.