Skip to content

Releases: spotipy-dev/spotipy

2.16.1: Automatic retries bugfixes

24 Oct 13:46
Compare
Choose a tag to compare

Fixed

  • playlist_tracks example code no longer prints extra characters on final loop iteration
  • SpotifyException now thrown when a request fails & has no response (#571, #581)
  • Added scope, playlist-read-private, to examples that access user playlists using the spotipy api: current_user_playlists() (#591)
  • Enable retries for POST, DELETE, PUT (#577)

Changed

  • both inline and starting import lists are sorted using isort module
  • changed Max Retries exception code from 599 to 429

2.16: Headless mode

16 Sep 16:27
Compare
Choose a tag to compare

Added

  • open_browser can be passed to the constructors of SpotifyOAuth and SpotifyPKCE to make it easier to authorize in browserless environments

2.15: Optional cache_path or username

08 Sep 10:10
Compare
Choose a tag to compare

Added

  • SpotifyPKCE.parse_auth_response_url, mirroring that method in
    SpotifyOAuth

Changed

  • Specifying a cache_path or username is now optional

Fixed

  • Using SpotifyPKCE.get_authorization_url will now generate a code
    challenge if needed

2.14: PKCE Auth Flow

29 Aug 12:06
c927f02
Compare
Choose a tag to compare

Added

  • (experimental) Support to search multiple/all markets at once.
  • Support to test whether the current user is following certain
    users or artists
  • Proper replacements for all deprecated playlist endpoints
    (See https://developer.spotify.com/community/news/2018/06/12/changes-to-playlist-uris/ and below)
  • Allow for OAuth 2.0 authorization by instructing the user to open the URL in a browser instead of opening the browser.
  • Reason for 403 error in SpotifyException
  • Support for the PKCE Auth Flow
  • Support to advertise different language to Spotify
  • Added 'collaborative' parameter to user_playlist_create method.
  • Enforce CHANGELOG update on PR
  • Adds additional_types parameter to retrieve currently playing podcast episode
  • Support to get info about a single category

Deprecated

  • user_playlist_change_details in favor of playlist_change_details
  • user_playlist_unfollow in favor of current_user_unfollow_playlist
  • user_playlist_add_tracks in favor of playlist_add_items
  • user_playlist_replace_tracks in favor of playlist_replace_items
  • user_playlist_reorder_tracks in favor of playlist_reorder_items
  • user_playlist_remove_all_occurrences_of_tracks in favor of
    playlist_remove_all_occurrences_of_items
  • user_playlist_remove_specific_occurrences_of_tracks in favor of
    playlist_remove_specific_occurrences_of_items
  • user_playlist_follow_playlist in favor of
    current_user_follow_playlist
  • user_playlist_is_following in favor of playlist_is_following
  • playlist_tracks in favor of playlist_items

Fixed

  • fixed issue where episode URIs were being converted to track URIs in playlist calls

2.13: Implicit Grant Flow

25 Jun 21:09
Compare
Choose a tag to compare

Added

  • Added SpotifyImplicitGrant as an auth manager option. It provides
    user authentication without a client secret but sacrifices the ability
    to refresh the token without user input. (However, read the class
    docstring for security advisory.)
  • Added built-in verification of the state query parameter
  • Added two new attributes: error and error_description to SpotifyOauthError exception class to show
    authorization/authentication web api errors details.
  • Added SpotifyStateError subclass of SpotifyOauthError
  • Allow extending SpotifyClientCredentials and SpotifyOAuth
  • Added the market parameter to album_tracks

2.12: Update auth token method

26 Apr 22:59
Compare
Choose a tag to compare

Added

  • Added a method to update the auth token.

Fixed

  • Logging regression due to the addition of logging.basicConfig() which was unneeded.

2.11.2: Best to use a redirect URI with a port

19 Apr 21:51
Compare
Choose a tag to compare

Changed

  • Updated the documentation to give more details on the authorization process and reflect
    2020 Spotify Application jargon and practices.
  • The local webserver is only started for localhost redirect_uri which specify a port,
    i.e. it is started for http://localhost:8080 or http://127.0.0.1:8080, not for http://localhost.

Fixed

  • Issue where using http://localhost as redirect_uri would cause the authorization process to hang.

2.11.1: Quick URL parsing fix

11 Apr 16:45
Compare
Choose a tag to compare

Fixed

  • Fixed miscellaneous issues with parsing of callback URL

2.11: Podcasts, shows and episodes

11 Apr 12:45
Compare
Choose a tag to compare

Added

  • Support for shows/podcasts and episodes
  • Added CONTRIBUTING.md

Changed

  • Client retry logic has changed as it now uses urllib3's Retry in conjunction with requests Session
  • The session is customizable as it allows for:
    • status_forcelist
    • retries
    • status_retries
    • backoff_factor
  • Spin up a local webserver to auto-fill authentication URL
  • Use session in SpotifyAuthBase
  • Logging used instead of print statements

Fixed

  • Close session when Spotipy object is unloaded
  • Propagate refresh token error

2.10: Add to queue

18 Mar 20:42
Compare
Choose a tag to compare

Added

  • Support for add_to_queue
    • Parameters:
      • track uri, id, or url
      • device id. If None, then the active device is used.
  • Add CHANGELOG and LICENSE to released package