• v2.9 00e0b09814

    v2.9 Stable

    kerem released this 2026-02-23 03:27:13 +03:00 | 7 commits to main since this release

    📅 Originally published on GitHub: Mon, 23 Feb 2026 00:34:33 GMT
    🏷️ Git tag created: Mon, 23 Feb 2026 00:27:13 GMT

    Features and Improvements:

    • NEW: Added configuration option SPOTIFY_SUFFIX to allow a custom string after Spotify-curated public playlists (thanks @tomballgithub)
    • NEW: Added debug mode with DEBUG_MODE config option and --debug CLI flag for technical troubleshooting output

    Bug fixes:

    • BUGFIX: Capped server-provided Retry-After for HTTP 429 responses to avoid long hangs
    • BUGFIX: Fixed fetching of TOTP secrets so it happens before retries
    Downloads
  • v2.8 488f8dca5f

    v2.8 Stable

    kerem released this 2026-02-07 20:38:15 +03:00 | 23 commits to main since this release

    📅 Originally published on GitHub: Sat, 07 Feb 2026 17:56:11 GMT
    🏷️ Git tag created: Sat, 07 Feb 2026 17:38:15 GMT

    Features and Improvements:

    • IMPROVE: Migrated deprecated GET /browse/categories and GET /users/{id} endpoints to handle Spotify API changes scheduled for February 11, 2026; used GET /tracks/{id} for oauth_app token validation and spclient internal API for user status checks
    • IMPROVE: Enhanced --generate-config to support writing directly to a file (e.g. spotify_monitor --generate-config spotify_monitor.conf). This avoids UTF-16 encoding issues on Windows PowerShell
    • IMPROVE: Expanded tabs to spaces in output log files to ensure consistent alignment across different viewers
    • IMPROVE: Enhanced error handling for empty or malformed secret files
    • IMPROVE: Added spotify_monitor_secret_grabber and spotify_monitor_totp_test as pip-installed console scripts
    Downloads
  • v2.7 005d6ba02b

    v2.7 Stable

    kerem released this 2025-12-27 03:37:01 +03:00 | 50 commits to main since this release

    📅 Originally published on GitHub: Sat, 27 Dec 2025 00:50:04 GMT
    🏷️ Git tag created: Sat, 27 Dec 2025 00:37:01 GMT

    Features and Improvements:

    • NEW: Implemented hybrid authentication approach to support two auth methods: cookie/client for friend activity monitoring and oauth_app (Client Credentials OAuth Flow) for track API calls to address restrictions introduced by Spotify on 22 Dec 2025 (thanks @tomballgithub and @0xXiHan, fixes #27)
    • NEW: Added configuration options (SP_APP_CLIENT_ID, SP_APP_CLIENT_SECRET) and -r / --oauth-app-creds flag for Client Credentials OAuth Flow (oauth_app)
    • NEW: Added OAuth app token caching via SP_APP_TOKENS_FILE configuration option
    • NEW: Added Spotipy dependency (required since v2.7 due to new Spotify restrictions)
    • IMPROVE: Enhanced email notification formatting

    Bug fixes:

    • BUGFIX: Removed spotify_get_playlist_info function to overcome Spotify's client credentials flow limitations and streamline playlist handling (fixes #31)
    • BUGFIX: Removed old TOTP versions from SECRET_CIPHER_DICT (fixes #28)
    • BUGFIX: Updated TOTP version handling in refresh_access_token_from_sp_dc function to ensure compatibility with varying TOTP versions (fixes #32)
    • BUGFIX: Added missing OAuth app support for user removal check and improved error handling in is_user_removed function (fixes #30)

    Breaking changes:

    • BREAKING: Removed token owner display at startup due to /v1/me endpoint limitations introduced by Spotify on 22 Dec 2025
    • BREAKING: OAuth app credentials are now required for track information retrieval when using either cookie or client token source methods
    Downloads
  • v2.6 af2b569e25

    v2.6 Stable

    kerem released this 2025-11-11 06:44:30 +03:00 | 68 commits to main since this release

    📅 Originally published on GitHub: Tue, 11 Nov 2025 03:59:01 GMT
    🏷️ Git tag created: Tue, 11 Nov 2025 03:44:30 GMT

    Features and Improvements:

    • NEW: Added support for Amazon Music, Deezer and Tidal URLs in console and email outputs
    • NEW: Added support for AZLyrics, Tekstowo.pl, Musixmatch and Lyrics.com lyrics services
    • NEW: Added detection and annotation for crossfaded songs during playback with configurable thresholds (see DETECT_CROSSFADED_SONGS, CROSSFADE_DETECTION_MIN and CROSSFADE_DETECTION_MAX config options)
    • NEW: Added configuration options to enable/disable music service URLs in console and email outputs (see ENABLE_APPLE_MUSIC_URL, ENABLE_YOUTUBE_MUSIC_URL, ENABLE_AMAZON_MUSIC_URL, ENABLE_DEEZER_URL and ENABLE_TIDAL_URL config options)
    • NEW: Added configuration options to enable/disable lyrics service URLs in console and email outputs (see ENABLE_GENIUS_LYRICS_URL, ENABLE_AZLYRICS_URL, ENABLE_TEKSTOWO_URL, ENABLE_MUSIXMATCH_URL and ENABLE_LYRICS_COM_URL config options)
    • NEW: Added recent songs tracking in session with inclusion in inactivity emails, including skipped track status (see INACTIVE_EMAIL_RECENT_SONGS_COUNT config option)
    • IMPROVE: Introduced tolerance for "Played for" display to account for playback duration discrepancies (see PLAYED_FOR_DURATION_TOLERANCE config option)
    • IMPROVE: Token owner info is now displayed at startup before the monitoring loop

    Bug fixes:

    • BUGFIX: Fixed "Played for" display when songs are played longer than track duration
    • BUGFIX: Prevented duplicate emails when songs on loop also match track/song alerts
    Downloads
  • v2.5 48456f45d7

    v2.5 Stable

    kerem released this 2025-10-12 19:48:03 +03:00 | 90 commits to main since this release

    📅 Originally published on GitHub: Sun, 12 Oct 2025 17:47:22 GMT
    🏷️ Git tag created: Sun, 12 Oct 2025 16:48:03 GMT

    Features and Improvements:

    • IMPROVE: Added support for loading TOTP secrets from local files via file:// URLs
    • IMPROVE: Updated remote URL in SECRET_CIPHER_DICT_URL
    • IMPROVE: Updated spotify_monitor_secret_grabber to dump secrets in different formats. Choose what you need with the --secret, --secretbytes and --secretdict CLI flags, or go all out with the --all mode to write all secret formats to files like secrets.json, secretBytes.json and secretDict.json (thanks @tomballgithub)
    • IMPROVE: Added multi-arch Docker image build and compose support for spotify_monitor_secret_grabber - more info at 🐳 Secret Key Extraction via Docker
    • IMPROVE: Added deletion of flag_file at launch if specified via .conf file. Previously only done when flag_file was specified on command line
    • IMPROVE: Added info to console output when TOTP secrets are fetched from a remote URL or local file

    Bug fixes:

    • BUGFIX: Removed walrus operator to support min python version 3.6 (fixes #20, thanks @tomballgithub)
    Downloads
  • v2.4 de18b1c8f5

    v2.4 Stable

    kerem released this 2025-07-14 03:41:11 +03:00 | 105 commits to main since this release

    📅 Originally published on GitHub: Mon, 14 Jul 2025 00:55:17 GMT
    🏷️ Git tag created: Mon, 14 Jul 2025 00:41:11 GMT

    Features and Improvements:

    • IMPROVE: Added automatic fetching of secrets used by web-player access token endpoint (cookie mode) while generating TOTP; it avoids manual updates since Spotify started rotating them every two days

    Bug fixes:

    • BUGFIX: Fixed bugs in retry logic and error handling in spotify_get_access_token_from_sp_dc()
    Downloads
  • v2.3.1 1c5d665bc8

    v2.3.1 Stable

    kerem released this 2025-07-10 04:23:42 +03:00 | 118 commits to main since this release

    📅 Originally published on GitHub: Thu, 10 Jul 2025 01:43:19 GMT
    🏷️ Git tag created: Thu, 10 Jul 2025 01:23:42 GMT

    Features and Improvements:

    • IMPROVE: Updated secret cipher bytes used by web-player access token endpoint (cookie mode) to v11 & v12
    • IMPROVE: Moved secret cipher bytes for web-player endpoint to configuration section
    • IMPROVE: Implemented auto-selection of highest cipher version when TOTP_VER is set to 0
    • NEW: Added tool to extract secret keys used for TOTP generation in Spotify Web Player JavaScript bundles (see Debugging Tools for more info)

    Bug fixes:

    • BUGFIX: Fixed truncation code to handle emojis with an actual width greater than one character (thanks @tomballgithub)
    Downloads
  • v2.3 15273d2c75

    v2.3 Stable

    kerem released this 2025-07-07 05:47:37 +03:00 | 131 commits to main since this release

    📅 Originally published on GitHub: Mon, 07 Jul 2025 03:03:11 GMT
    🏷️ Git tag created: Mon, 07 Jul 2025 02:47:37 GMT

    Features and Improvements:

    • NEW: Added new config option (FLAG_FILE) and flag (--flag-file) to create a file when the user is active and delete it when inactive; useful for external tools to detect streaming status (thanks @tomballgithub)
    • NEW: Added new config option (TRUNCATE_CHARS) and flag (--truncate) to limit screen line length; set to 999 to auto-detect terminal width (thanks @tomballgithub)
    • IMPROVE: Updated secret cipher bytes used by web-player access token endpoint (cookie mode) to v9 & v10 (thanks @Thereallo1026 for reverse engineering the current secrets)
    • IMPROVE: Added number of songs played and elapsed time to session events (thanks @tomballgithub)

    Bug fixes:

    • BUGFIX: Fixed missing asterisk on startup screen (thanks @tomballgithub)
    Downloads
  • v2.2.1 e6f4f92e48

    v2.2.1 Stable

    kerem released this 2025-07-02 04:19:55 +03:00 | 154 commits to main since this release

    📅 Originally published on GitHub: Wed, 02 Jul 2025 01:32:11 GMT
    🏷️ Git tag created: Wed, 02 Jul 2025 01:19:55 GMT

    Bug fixes:

    • BUGFIX: Fixed web-player access token retrieval via sp_dc cookie by updating secret cipher bytes (thanks @WurdahMekanik and @matthewcamilizer, fixes #11)
    • BUGFIX: Delayed removal/reappearance alerts; see new REMOVED_DISAPPEARED_COUNTER config option (fixes #10)
    • BUGFIX: Fixed missing email alerts for failed token requests when using sp_dc cookie method
    Downloads
  • v2.2 c940fbbe16

    v2.2 Stable

    kerem released this 2025-06-18 03:28:25 +03:00 | 161 commits to main since this release

    📅 Originally published on GitHub: Wed, 18 Jun 2025 01:38:20 GMT
    🏷️ Git tag created: Wed, 18 Jun 2025 00:28:25 GMT

    Features and Improvements:

    • NEW: Added new config option (USER_AGENT) and flag (--user-agent) to set Spotify user agent string
    • NEW: Ensured all Spotify requests now include the appropriate user agent, if not specified - it is randomly generated per session for specific type of token source
    • IMPROVE: Improved detection when a Spotify user has been removed
    • IMPROVE: HTTPAdapter now honors the Retry-After header on 429 responses for better Spotify API rate limit handling
    • IMPROVE: Updated captions shown for Apple and YouTube Music links
    • IMPROVE: Added more descriptive error messages and covered additional corner cases
    • IMPROVE: Suppressed -z / --clienttoken-request-body-file from help output to reduce confusion (flag remains functional, but hidden)
    • IMPROVE: Clarifications in inline comments explaining how to configure Spotify Desktop client method

    Bug fixes:

    • BUGFIX: Fixed issue with incorrectly reported songs played on loop
    Downloads