Releases: misiektoja/spotify_profile_monitor
Releases · misiektoja/spotify_profile_monitor
v1.7
Features and Improvements:
- NEW: The tool now provides information about collaborators on playlists (if applicable) and adds details about collaborators when new tracks are added. This applies to both monitoring mode (including email notifications) and listing mode (-i, -l).
Keep in mind: the tool displays the actual number of collaborators. That means it only counts users who have actually contributed to the playlist. If someone's name is visible in Spotify client, but they haven't added a single track, they don't make the cut (sorry, but the point is Spotify doesn't have an official API for that, so the tool gets its hands dirty by analyzing all the tracks in the playlist).
Bug fixes:
- BUGFIX: Hopefully fixed a rare bug where the tool would report a changed profile picture even though the timestamp remained the same
v1.6
Features and Improvements:
- NEW: Detection of Spotify username changes
- NEW: Support for YouTube Music search URLs
- IMPROVE: Displaying last update date of user's profile pic when using -i parameter
- IMPROVE: Added info to email notifications for playlists with errors
Bug fixes:
- BUGFIX: Fixed bug with wrong number of user owned public playlists if there are none
v1.5
Features and Improvements:
- NEW: Possibility to disable detection of changes in user's public playlists (new -q / --do_not_monitor_playlists parameter)
- NEW: Possibility to disable email notifications for changed followers/followings (new -g / --disable_followers_followings_notification parameter)
- IMPROVE: Recently played artists limit increased from 15 to 50 + info about the limit in the output
- IMPROVE: Indentation + linting fixes
Bug fixes:
- BUGFIX: Fixed issue with missed playlists changes notifications in case of intermittent Spotify API issues
- BUGFIX: Fixed bug with wrong CSV file event entry name
- BUGFIX: Fixed issue with Spotify API sometimes returning wrong info that all user's playlists have been removed
v1.4
Features and Improvements:
- NEW: Added new parameter (-z / --send_test_email_notification) which allows to send test email notification to verify SMTP settings defined in the script
- IMPROVE: Better handling of newly created / empty playlists
- IMPROVE: Better handling of situations when user removes all public playlists
- IMPROVE: Showing how much time passed since last playlist update in case all tracks are removed
- IMPROVE: Possibility to define email sending timeout (default set to 15 secs)
Bug fixes:
- BUGFIX: Fixed an issue of the tool crashing when user had no playlists and created a new one
- BUGFIX: Fixed "SyntaxError: f-string: unmatched (" issue in older Python versions
- BUGFIX: Fixed "SyntaxError: f-string expression part cannot include a backslash" issue in older Python versions
v1.3
Features and Improvements:
- NEW: Support for honoring last-modified timestamp for saved profile pics (it turned out it reflects timestamp when the picture has been actually added by the user); if you used previous version of the tool, remove the profile pic for the user and let the new version of the tool to re-download it with original modification time which will reflect the time when user actually changed the profile picture
- IMPROVE: File suffix (-y) honored for JSON and profile picture JPEG file names as well
- IMPROVE: get_short_date_from_ts() rewritten to display year if show_year == True and current year is different, also can omit displaying hour and minutes if show_hours == False; new version of function is used when number of tracks changes for the playlist (which might happen after a year, can't it ? 😉)
- IMPROVE: Support for float type of timestamps added in date/time related functions
Bug fixes:
- BUGFIX: Fix to handle situations when user removes track from playlist, but it is not the last track
- BUGFIX: Escaping of exception error string fixed
v1.2
Features and Improvements:
- NEW: Feature allowing for detection of changed profile pictures; since Spotify user's profile picture URL seems to change from time to time, the tool detects changed profile picture by doing binary comparison of saved jpeg files; initially it saves the profile pic to spotify_{user_uri_id}_profile_pic.jpeg file after the tool is started (in monitoring mode); then during every check the new picture is fetched and the tool does binary comparison if it has changed or not; in case of changes the old profile picture is moved to spotify_{user_uri_id}_profile_pic_old.jpeg file and the new one is saved to spotify_{user_uri_id}_profile_pic.jpeg and also to file named spotify_{user_uri_id}_profile_pic_YYmmdd_HHMM.jpeg (so we can have history of all profile pictures); in order to control the feature there is a new DETECT_CHANGED_PROFILE_PIC variable set to True by default; the feature can be disabled by setting it to False or by enabling -j / --do_not_detect_changed_profile_pic parameter
- NEW: Feature attaching changed profile pics directly in email notifications (when -p parameter is used)
- NEW: Feature allowing to display the profile picture right in your terminal (if you have imgcat installed); put path to your imgcat binary in IMGCAT_PATH variable (or leave it empty to disable this functionality)
- IMPROVE: Improved detection of tracks changed for the playlist; previously if the number of added and removed tracks was the same it went unnoticed by the tool; currently the tool also compares last update timestamp of the playlist to cover such use cases
- IMPROVE: The tool now shows the time which passed since the previous time new track has been added to the playlist (console + email notifications)
- NEW: Possibility to define output log file name suffix (-y / --log_file_suffix)
- IMPROVE: Information about log file name visible in the start screen
- IMPROVE: Rewritten get_date_from_ts(), get_short_date_from_ts(), get_hour_min_from_ts() and get_range_of_dates_from_tss() functions to automatically detect if time object is timestamp or datetime
- IMPROVE: Detection of wrong Spotify user URI ID + unneeded while loop removed
Bug fixes:
- BUGFIX: Fixed stupid bug with the tool crashing when user had no public playlists at all
- BUGFIX: Fixed issues with sporadic broken links in HTML emails (vars with special characters are now escaped properly)
v1.1
Features and Improvements:
- IMPROVE: Improvements for running the code in Python under Windows
- NEW: Automatic detection of local timezone if you set LOCAL_TIMEZONE variable to 'Auto' (it is default now); requires tzlocal pip module
- IMPROVE: Information about time zone is displayed in the start screen now
- IMPROVE: Better checking for wrong command line arguments
- IMPROVE: pep8 style convention corrections
Bug fixes:
- BUGFIX: Improved exception handling while processing JSON files
v1.0
Initial spotify_profile_monitor v1.0 release. Features:
- Real-time monitoring of Spotify user profile changes:
- added/removed followings and followers
- added/removed public playlists
- added/removed tracks in playlists
- playlists name and description changes
- number of likes for playlists
- Email notifications for different events (added/removed followings, followers, public playlists and its tracks, playlists name and description changes, number of likes for playlists, errors)
- Additional functionalities on top of the monitoring mode allowing to display detailed info about the user, list of followers & followings, recently played artists and possibility to search user names for user URI ID
- Saving all profile changes with timestamps to the CSV file
- Clickable Spotify, Apple Music and Genius Lyrics search URLs printed in the console & included in email notifications
- Possibility to control the running copy of the script via signals
RELEASE NOTES:
Features and Improvements:
- NEW: Feature to search for user names (-s) to get user URI ID
- NEW: Possibility to define SP_DC_COOKIE via command line argument (-u / --spotify_dc_cookie)
- IMPROVE: Fetching only public playlists owned by the user (ignoring playlists of other users added to user's profile)
- IMPROVE: Showing delta info (+N or -N) when informing about changed number of followers/followings/playlists/tracks
- IMPROVE: Information about user's profile URL put in different parts of the code
- IMPROVE: Possibility to configure limits for list of playlists (PLAYLISTS_LIMIT) and recently played artists (RECENTLY_PLAYED_ARTISTS_LIMIT) fetched from user's profile
- IMPROVE: Additional search/replace strings to sanitize tracks for Genius Lyrics URLs
- IMPROVE: Email sending function send_email() has been rewritten to detect invalid SMTP settings
- IMPROVE: Strings have been converted to f-strings for better code visibility
- IMPROVE: Info about CSV file name in the start screen
- IMPROVE: Small refactoring of functions processing playlists and its tracks to improve performance (it is still quite slow in case of huge number of playlists/tracks)
- IMPROVE: In case of getting an exception in main loop we will send the error email notification only once (until the issue is resolved)
Bug fixes:
- BUGFIX: Handling situations when user changes the playlist's visibility to private (previously the tool crashed)
- BUGFIX: Handling situations when JSON files storing info about followers, followings or playlists get corrupted (previously the tool crashed)