------------------------------------------------------------------- Thu Oct 29 09:29:48 UTC 2020 - Antonio Larrosa - Update to 2.16.1: * 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() + 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 - Update to 2.16.0: * Added + open_browser can be passed to the constructors of SpotifyOAuth and SpotifyPKCE to make it easier to authorize in browserless environments - Update to 2.15.0: * 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 - Update to 2.14.0: * 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 ------------------------------------------------------------------- Tue Jul 7 06:56:38 UTC 2020 - Steve Kowalik - Update to 2.13.0: * 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 paramter to `album_tracks` + Added a method to update the auth token. + Support for shows/podcasts and episodes + Added CONTRIBUTING.md * Deprecated + Deprecated `util.prompt_for_user_token` in favor of `spotipy.Spotify(auth_manager=SpotifyOAuth())` * Fixed + Logging regression due to the addition of `logging.basicConfig()` which was unneeded. + Issue where using `http://localhost` as redirect_uri would cause the authorization process to hang. + Fixed miscellaneous issues with parsing of callback URL + Close session when Spotipy object is unloaded + Propagate refresh token error * 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`. + 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 - Skip one test that requires external internet access ------------------------------------------------------------------- Thu Mar 26 14:45:02 UTC 2020 - Marketa Calabkova - update to 2.10.0 * Support for add_to_queue * Add CHANGELOG and LICENSE to released package ------------------------------------------------------------------- Tue Mar 17 13:57:10 UTC 2020 - pgajdos@suse.com - version update to 2.9.0 * Support `position_ms` optional parameter in `start_playback` * Add `requests_timeout` parameter to authentication methods * Make cache optional in `get_access_token` * Support for `playlist_cover_image` * Support `after` and `before` parameter in `current_user_recently_played` * CI for unit tests * Automatic `token` refresh * `auth_manager` and `oauth_manager` optional parameters added to `Spotify`'s init. * Optional `username` parameter to be passed to `SpotifyOAuth`, to infer a `cache_path` automatically * Optional `as_dict` parameter to control `SpotifyOAuth`'s `get_access_token` output type. However, this is going to be deprecated in the future, and the method will always return a token string * Optional `show_dialog` parameter to be passed to `SpotifyOAuth` * Both `SpotifyClientCredentials` and `SpotifyOAuth` inherit from a common `SpotifyAuthBase` which handles common parameters and logics. * Support for `playlist_tracks` * Support for `playlist_upload_cover_image` * `user_playlist_tracks` doesn't require a user anymore (accepts `None`) * Deprecated `user_playlist` and `user_playlist_tracks` * Fixed broken examples in README, examples and doc * Allow session keepalive * Bump requests to 2.20.0 * Fixed inconsistent behaviour with some API methods when a full HTTP URL is passed. * Fixed invalid calls to logging warn method * Support for `playlist` to get a playlist without specifying a user * Support for `current_user_saved_albums_delete` * Support for `current_user_saved_albums_contains` * Support for `user_unfollow_artists` * Support for `user_unfollow_users` * Added follow and player endpoints ------------------------------------------------------------------- Wed Dec 19 16:22:44 UTC 2018 - Jan Engelhardt - Trim filler wording from descriptions. ------------------------------------------------------------------- Wed Dec 19 13:08:00 UTC 2018 - Matej Cepl - Fix description and summary ------------------------------------------------------------------- Wed Oct 17 05:28:28 UTC 2018 - Thomas Bechtold - Initial packaging (version 2.4.4)