• 2.25.2 b5be7fba6a

    2.25.2 Stable

    kerem released this 2025-11-26 23:16:13 +03:00 | 6 commits to master since this release

    📅 Originally published on GitHub: Wed, 26 Nov 2025 20:22:32 GMT
    🏷️ Git tag created: Wed, 26 Nov 2025 20:16:13 GMT

    Security

    • CVE-2025-66040HTML for OAuth flow now sanitized: prevents potential XSS attacks (by @yueyueL)
    • Upgrade if you run spotipy with the default OAuth flow (uses a local HTTP server as a callback method)

    Added

    • Adds additional_types parameter to retrieve currently playing episode
    • Add deprecation warnings to documentation

    Fixed

    • Fixed dead link in README.md
    • Corrected Spotify/Spotipy typo in documentation
    Downloads
  • 2.25.1 103d6873fa

    2.25.1 Stable

    kerem released this 2025-02-27 10:30:09 +03:00 | 19 commits to master since this release

    📅 Originally published on GitHub: Thu, 27 Feb 2025 07:46:36 GMT
    🏷️ Git tag created: Thu, 27 Feb 2025 07:30:09 GMT

    Security

    • CVE-2025-27154Cache file permissions tightened: now 600 (user read/write only) instead of 644, preventing unauthorized local access to auth tokens (by @alichtman)
      • Upgrade if you run spotipy in a multi-user environment, manage multiple users' auth tokens, or need better protection against local unauthorized access; not required if you're the only user and your home directory is private.

    Added

    • Added examples for audiobooks, shows and episodes methods to examples directory

    Fixed

    • Fixed scripts in examples directory that didn't run correctly
    • Updated documentation for Client.current_user_top_artists to indicate maximum number of artists limit

    Changed

    • Updated get_cached_token and save_token_to_cache methods to utilize Python's Context Management Protocol
    • Added except clause to get_cached_token method to handle json decode errors
    • Added warnings and updated docs due to Spotify's deprecation of HTTP and "localhost" redirect URIs
    • Use newer string formatters (https://pyformat.info)
    • Marked recommendation_genre_seeds as deprecated
    Downloads
  • 2.25.0 645ed6da56

    2.25.0 Stable

    kerem released this 2025-01-03 15:30:08 +03:00 | 36 commits to master since this release

    📅 Originally published on GitHub: Fri, 03 Jan 2025 12:33:37 GMT
    🏷️ Git tag created: Fri, 03 Jan 2025 12:30:08 GMT

    Added

    • Added unit tests for queue functions
    • Added detailed function docstrings to 'util.py', including descriptions and special sections that lists arguments, returns, and raises.
    • Updated order of instructions for Python and pip package manager installation in TUTORIAL.md
    • Updated TUTORIAL.md instructions to match current layout of Spotify Developer Dashboard
    • Added test_artist_id, test_artist_url, and test_artists_mixed_ids to non_user_endpoints test.py
    • Added rate/request limit to FAQ
    • Added custom urllib3.Retry class for printing a warning when a rate/request limit is reached.
    • Added personalized_playlist.py, track_recommendations.py, and audio_features_analysis.py to /examples.
    • Discord badge in README
    • Added SpotifyBaseException and moved all exceptions to exceptions.py
    • Marked the following methods as deprecated:
      • artist_related_artists
      • recommendations
      • audio_features
      • audio_analysis
      • featured_playlists
      • category_playlists
    • Added FAQ entry for inaccessible playlists

    Fixed

    • Audiobook integration tests
    • Edited docstrings for certain functions in client.py for functions that are no longer in use and have been replaced.
    • current_user_unfollow_playlist() now supports playlist IDs, URLs, and URIs rather than previously where it only supported playlist IDs.

    Removed

    • mock no longer listed as a test dependency. Only built-in unittest.mock is actually used.

    Full Changelog: https://github.com/spotipy-dev/spotipy/compare/2.24.0...2.25.0

    Downloads
  • 2.24.0 8a40e038b9

    2.24.0 Stable

    kerem released this 2024-05-31 00:06:13 +03:00 | 58 commits to master since this release

    📅 Originally published on GitHub: Thu, 30 May 2024 21:17:56 GMT
    🏷️ Git tag created: Thu, 30 May 2024 21:06:13 GMT

    Added

    • Added MemcacheCacheHandler, a cache handler that stores the token info using pymemcache.
    • Added support for audiobook endpoints: get_audiobook, get_audiobooks, and get_audiobook_chapters.
    • Added integration tests for audiobook endpoints.
    • Added update field to current_user_follow_playlist.

    Changed

    • Fixed error obfuscation when Spotify class is being inherited and an error is raised in the Child's __init__
    • Replaced artist_albums(album_type=...) with artist_albums(include_groups=...) due to an API change.
    • Updated _regex_spotify_url to ignore /intl-<countrycode> in Spotify links
    • Improved README, docs and examples

    Fixed

    • Readthedocs build
    • Split test_current_user_save_and_save_tracks unit test

    Full Changelog: https://github.com/spotipy-dev/spotipy/compare/2.23.0...2.24.0

    Downloads
  • 2.23.0 796c03338f

    2.23.0 Stable

    kerem released this 2023-04-07 20:36:17 +03:00 | 100 commits to master since this release

    📅 Originally published on GitHub: Fri, 07 Apr 2023 17:46:10 GMT
    🏷️ Git tag created: Fri, 07 Apr 2023 17:36:17 GMT

    Added

    Fixed

    Downloads
  • 2.22.1 c53511bbbe

    2.22.1 Stable

    kerem released this 2023-01-23 22:00:55 +03:00 | 108 commits to master since this release

    📅 Originally published on GitHub: Mon, 23 Jan 2023 19:39:44 GMT
    🏷️ Git tag created: Mon, 23 Jan 2023 19:00:55 GMT

    Fixed

    • CVE-2023-23608: fixed path traversal vulnerability that may lead to type confusion in URI handling code. Can prevent a potential XSS attack.
      • Upgrade if your app is user-facing and it allows user inputs for any type of Spotify IDs/URIs/URLs that may be forwarded to the Spotify API. Thanks to @Shaderbug for finding and fixing this bug github.com/spotipy-dev/spotipy@b1db0b63d9

    Changed

    • Modified docstring for deprecated playlist_add_items() to accept "only URIs or URLs", with intended fix for IDs in v3.
      • The bug still exists for developers dealing with episodes IDs rather than just track IDs. However it is recommended to use the new playlist_add_tracks() or playlist_add_episodes() if dealing with episodes or simply to avoid confusion. See https://github.com/spotipy-dev/spotipy/pull/919 by @oliveraw for context
    Downloads
  • 2.22.0 1e840b6526

    2.22.0 Stable

    kerem released this 2022-12-10 18:31:47 +03:00 | 119 commits to master since this release

    📅 Originally published on GitHub: Sat, 10 Dec 2022 16:03:08 GMT
    🏷️ Git tag created: Sat, 10 Dec 2022 15:31:47 GMT

    Added

    • Integration tests via GHA (non-user endpoints)
    • Unit tests for new releases, passing limit parameter with minimum and maximum values of 1 and 50
    • Unit tests for categories, omitting country code to test global releases
    • Added CODE_OF_CONDUCT.md

    Fixed

    • Incorrect category_id input for test_category
    • Assertion value for test_categories_limit_low and test_categories_limit_high
    • Pin Github Actions Runner to Ubuntu 20 for Py27
    • Fixed potential error where found variable in test_artist_related_artists is undefined if for loop never evaluates to true
    • Fixed false positive test test_new_releases which looks up the wrong property of the JSON response object and always evaluates to true
    Downloads
  • 2.21.0 5a7e5c5a43

    2.21.0 Stable

    kerem released this 2022-10-27 01:03:42 +03:00 | 133 commits to master since this release

    📅 Originally published on GitHub: Sat, 29 Oct 2022 11:56:58 GMT
    🏷️ Git tag created: Wed, 26 Oct 2022 22:03:42 GMT

    Added

    • Added market parameter to album and albums to address #753 by @ivyadam
    • Added 'show_featured_artists.py' to 'examples'.
    • Expanded contribution and license sections of the documentation.
    • Added FlaskSessionCacheHandler, a cache handler that stores the token info in a flask session.
    • Added Python 3.10 in GitHub Actions

    Fixed

    Downloads
  • 2.20.0 c1a85f1469

    2.20.0 Stable

    kerem released this 2022-06-19 00:59:37 +03:00 | 151 commits to master since this release

    📅 Originally published on GitHub: Sat, 18 Jun 2022 22:12:42 GMT
    🏷️ Git tag created: Sat, 18 Jun 2022 21:59:37 GMT

    Added

    • Added RedisCacheHandler, a cache handler that stores the token info in Redis.
    • Changed URI handling in client.Spotify._get_id() to remove qureies if provided by error.
    • Added a new parameter to RedisCacheHandler to allow custom keys (instead of the default token_info key)
    • Simplify check for existing token in RedisCacheHandler

    Changed

    • Removed Python 3.5 and added Python 3.9 in Github Action
    Downloads
  • 2.19.0 48d04f343b

    2.19.0 Stable

    kerem released this 2021-08-12 13:27:26 +03:00 | 160 commits to master since this release

    📅 Originally published on GitHub: Thu, 12 Aug 2021 10:29:45 GMT
    🏷️ Git tag created: Thu, 12 Aug 2021 10:27:26 GMT

    Added

    • Added MemoryCacheHandler, a cache handler that simply stores the token info in memory as an instance attribute of this class.
    • If a network request returns an error status code but the response body cannot be decoded into JSON, then fall back on decoding the body into a string.
    • Added DjangoSessionCacheHandler, a cache handler that stores the token in the session framework provided by Django. Web apps using spotipy with Django can directly use this for cache handling.

    Fixed

    • Fixed a bug in CacheFileHandler.__init__: The documentation says that the username will be retrieved from the environment, but it wasn't.
    • Fixed a bug in the initializers for the auth managers that produced a spurious warning message if you provide a cache handler and you set a value for the "SPOTIPY_CLIENT_USERNAME" environment variable.
    • Use generated MIT license and fix license type in pip show
    Downloads