Songify 1.7.0.1 – Official Release Notes
Please read the patch notes thoroughly and make sure you understand them before making support requests.
Important: Please log out and back into Twitch to refresh your permissions.
Important: You have to reconfigure your commands manually.
Important: If you encounter issues with Spotify's new API changes, please change the drop down in Settings -> Spotify to "127.0.0.1"
What’s New
- WebSocket Command Support
Control Songify externally with a powerful WebSocket API.
View WebSocket Documentation- "Ignore and Continue" Offline Mode
Start Songify without an internet connection using a new option in the startup dialog.- Time-to-Play Estimation ({ttp})
The {ttp} placeholder shows an estimated time until a requested song will play (in mm:ss format).- Redesigned Command System (Breaking Change)
The Commands, Responses, and Rewardssections have been completely redesigned for easier management.
- All command settings are now stored in TwitchCommands.yaml
- You will need to reconfigure your commands manually after updating
- YouTube Music Desktop & Browser Extension Support
- Full integration with YouTube Music Desktop App
- A guide can be found here
- Initial support for the upcoming Songify Browser Extension (awaiting approval from Chrome Web Store)
- ️ Requester Profile Picture Storage
Saves the current requester’s profile image as requester.png- Viewer List Window
Displays all active Twitch chat users along with their SR status, user level, and sub tier. Refreshes every 30 seconds.- Expanded User Level Handling
Supports Twitch subscriber tiers (1, 2, 3).
Requires re-linking your Twitch account due to updated scopes.- Single Instance Handling
Launching a second instance will now bring the existing window to the foreground if minimized or hidden.Full Changelog
New Features
WebSocket Command Support
Supports external commands:
queue_add, vol_set, skip, next, play, pause, play_pause, send_to_chat, block_song, block_artist, block_all_artists, block_user, stop_sr_reward, vol_up, vol_down
- Default requester is set to "" if not provided.
“Ignore and Continue” Button
Use Songify offline by skipping the internet check on startup.
Time-to-Play ({ttp})
- Estimate displayed in song request replies.
- Reflects the current queue length and playback status.
Redesigned Command System
- New UI for Commands, Responses, and Rewards
- Commands now stored in TwitchCommands.yaml
- You must recreate your command setup manually
Requester Profile Picture
- Automatically saves a requester.png file for the current song requester.
Viewer List
- View all Twitch chat users, including their roles and request statuses.
Smart Instance Behavior
- Prevents multiple Songify instances from running simultaneously.
- Automatically brings the original window into focus.
Improvements
Song Request Logic
- Improved handling of blocked songs, explicit content, and duplicates.
- More reliable fallback logic when the queue window is closed.
Output File Behavior
- Output files are now cleared when using the “Clear Pause” option.
Async & Error Handling
- Improved async methods for better performance and stability.
- Refactored error handling to reduce app crashes and provide better debug output.
Spotify Auth Redirects
- Updated internal redirect URI to http://127.0.0.1 per Spotify’s latest requirements. Read more
Bug Fixes
- Prevented crash when currSong was null
- Fixed a rare crash during song requests
- Fixed issue where Songify starts minimized or off-screen
- Resolved Twitch reward sync UI display issues
- Fixed translation formatting and accuracy across languages
- Fixed Twitch command crashes caused by outdated scopes
- Resolved crashes related to Windows notifications
- Fixed display issues with token expiration time
- Logout and re-login now work without needing to restart the app
- Added refresh button to Twitch settings
- Token expiration is now shown for both main and bot accounts
Additional Enhancements
- Spotify Credentials Now Required
You must use your own Spotify API credentials. Setup Guide- Improved Internet & Stream Checks
- Internet check is now non-blocking — Songify stays open and retries automatically
- Stream status check now refreshes every 5 seconds
- UI Upgrades
- “Get Beta Updates” option moved to Settings → System
- Removed outdated “Hide user info” setting
Language Support
- Polished translations across all supported languages
- Language switching now works without requiring a restart
v1.6.4.6
Bug Fix:
- Resolved an issue where song requests would crash for users in Russia due to sanctions causing the Spotify API to return "Spotify is unavailable in this country." Now, the song will be added to the queue with a hardcoded response of "Track has been added to the queue."
- Corrected the problem of songs being posted to the chat when the settings window is opened.
v1.6.4.5
Bug Fix:
- Fixed !pause and !play command crashing
v1.6.4.4
Additions:
Changes:
- Added single_artist as output and response parameter. This will only contain the main artist of the track.
Bug Fix:
- Added the current playing song to the top of the queue window and also made it colored differently
- Fixed Ignore Broadcaster / Moderator on !vol command not working properly
v1.6.4.3
Bug Fix:
- Append Spaces now works correctly (#105)
- Removed Levenshtein Distance algorithm which was implemented to have more accurate song requests based on a scoring system. (#104)
v1.6.4.2
Bug Fix:
- Cover deletion and Custom Pause Text are now properly working
v1.6.2
Bug Fix:
- Fixed an issue where Songify would crash on startup
v1.6.1
Bug Fix:
- Fixed !ssr text-casing to be still weird
Improvements:
- Implemented translations based on https://translate.songify.rocks/projects/songify/songify/
v1.6.0
New Features:
- Added a Ko-Fi donation reminder on app start.
- Although I dislike having it, I believe it's necessary. However, it can be disabled in the settings.
- Added caching of Spotify playlists, this prevents playlists from vanishing from Spotify settings. You have to manually refresh the playlists using the button next to the dropdown.
- Added volume control commands (!vol), use !vol to display the current volume and !vol [0-100] to set a specific level (Moderator and Broadcaster only).
- Added backup configurations before updating, the app now stores configurations in a "Backup" folder with subfolder for each version.
- Added an option to use the system default web browser instead of defaulting to Edge (Settings -> System).
- Added explicit song filtering allowing users to block all explicit songs (Settings -> SongRequests).
- Added WebSockets for interprocess communication for devices like the Elgato Streamdeck. (Maybe I will write a plugin, maybe not, it's tedious though)
- to connect to the websocket simply connect to
ws://127.0.0.1:{port}
where port is the one you set in Settings -> Webserver- Available websocket commands are:
block_artist
,block_all_artists
,block_song
,block_user
,skip
,next
,play_pause
,pause
,play
,stop_sr_reward
,vol_up
,vol_down
,vol_set_[0-100]
.- Added Spotify queue querying to prevent songs from getting stuck and to display Spotify's queue directly in the queue window.
- Added the option to have multiple Rewards for song requests. For example: Have one "cheap" reward but it's time limited (cooldown), and an expensive one that has no limit to it. This way loyal viewers can request songs even though the cheap reward is on cooldown.
- Added new responses for
!remove
,explicit songs
,command on cooldown
andno track found
.- Added a better way to login with Twitch when the automatic login-method is not working. For that click the "doesn't work?" button and follow the instructions over there.
Improvements:
- Changed all commands to ignore text casing.
- Implemented a task queue during song requests which helps with stability and fixes potential crashes.
- Language Support: Added support for Polish, Portuguese, and Italian via machine translation. (If you want to help translate Songify, feel free to visit https://translate.songify.rocks/projects/songify/songify/ and help us make the translations better!)
- !remove now accepts the queue-id as an optional parameter, this allows moderators to remove specific songs from the queue. The queue id can be found on the queue page.
Bug Fix:
- Rewards Loading: Implemented a potential fix for issues with rewards not loading properly in Settings -> Rewards.
- Fixed userlevels not working properly. (mod, vip, sub etc.)
- Fixed the issue where only a few playlists were fetched from Spotify.
- Various minor fixes and improvements.
The development of this update was quite extensive and time-intensive. If you'd like to support my efforts, consider making a donation on Ko-Fi. Your contribution would be greatly appreciated, helping to cover monthly server costs and demonstrating the value of my small tool.
![]()
Changes:
- Fixed song requests not working. This was caused by Spotify rolling out changes to their API which caused major issues.
- Fixed the Upload Song Info copy button
- Twitch credentials are now hidden by default in Settings -> Twitch
Final Update Announcement
This is the last scheduled update for this project. We are excited to announce that there will be a successor in the pipeline. Please note that although no new features will be introduced going forward, we will continue to address and fix any critical bugs that may arise.
New Features:
Improvements:
- Introduced a Requester.txt file in the output directory when "Split Artist and Title" is enabled.
- Enabled the webserver to be accessed by other devices on the local network. Admin rights are required for the app.
- Added a "New Line" option in the output context menu.
- Implemented custom responses for both the !remove command and when a requested song isn't found in the permitted playlist.
- Enhanced the output text file to recognize tab (\t), newline (\n), and carriage return (\r) characters.
Bug Fixes:
- If the webserver fails to start, a response is now generated and logged in both the log file and console window.
- Improved the URL copying function from the "upload song info" button.
- Removed the 10-space limit for the "append spaces" option.
- Added support for short-form Spotify URLs.
- Updated various translations for accuracy.
- Fixed an issue where the !play/!pause command status appeared as disabled incorrectly.
- Rectified a problem where songs could be requested without choosing a reward under Settings -> Rewards.
Changes:
Bug Fixes and Corrections:
• Modified the queue check to prevent items from getting stuck, though this ongoing issue may not be completely resolved.
• Fixed !song command causing a crash sometimes.
• Corrected a configuration mistake where VIP and subscriber settings were switched.
• Resolved a problem with the check live status functionality not operating correctly.
• Resolved a bug causing the widget cover image to malfunction when accessing the settings window.
• Removed saving/reading from the registry since it caused an issue where every time the app starts it would generate a new ID. This caused trouble with the widget not working since the ID was changed. This means all your generated links from Songify (Queue / Widget / History) are now static again!
• Songify should now remember to minimize and start in the tray
Command and API-Related Changes:
• Implemented checks for certain commands to ensure they only function with the Spotify API.
• Introduced the song_id attribute to the song endpoint, allowing the online queue to remain synchronized with the local queue in Songify, even when the latter fails.
• Incorporated a verification step to the history saving (local file) to prevent the currently playing song from being saved twice if it matches the last saved song.
UI and Console Updates:
• Performed UI clean-up, including the removal of pubsub and refunds completely.
• Included Stream Up/Down alerts in the console.
New Features:
• Added a feature to restrict song requests to a designated playlist. To enable, select the playlist and check the box next to it. The feature will search the selected playlist for the track using the trackId from the Spotify API. If a match is found, the song will be added; otherwise, it won't. Be cautious, as this may fail for songs that appear more than once on Spotify, requiring the exact same version.
v1.4.7
Changes:
v1.4.6
- Added support for new Spotify links that contain /intl-XX/
- Fixed a crash when trying to add a song to the sr playlist
- Changed the !ssr command trigger to only trigger when there is a space after it. This enables the trigger without text to be used as a guide on how sr works
Changes:
- Potential fix for the crashes introduced in 1.4.5
Please check your AV Software if it's interfering with Songify. Norton and Kaspersky is known to cause issues with the app!
v1.4.5
Changes:
- Made VIPs higher in rank than subscribers. This should fix unexpected behavior on song requests
- The current playlist is now added to the local web server
- Fixed an issue where Songify would stop the playback of Spotify in some scenarios
- Fixed an issue that made the option 'Enable SR (Channel Rewards)' in Settings -> SongRequests not work
Changes:
- Added an option to add all song requests to the selected "liked songs" playlist.
- Fixed broadcasters not being able to request songs on their own channel.
- Fixed an issue that prevented the loading of playlists.
- Improved stability and error handling.
- Added functionality to populate the local queue even when the web queue is unavailable.
- Implemented a workaround to handle scenarios where the web queue is not available.
- Improved error handling by adding support for HTTP status codes 500 and 503.
- Changed all API calls to point to the new server.
- Added functionality to populate the local queue even when the web queue is unavailable.
- Implemented a workaround to handle scenarios where the web queue is not available.
- Improved error handling by adding support for HTTP status codes 500 and 503.
- Decreased the frequency at which the app compares the queue with the website since it caused throttling.
Please take the time to read the patch notes. There are some important changes in this update.
* If you want to use chat announcements you have to re-login to Twitch for this to work because of changed scopes.
* If you want to use the !songlike command you have to relink your Spotify account for this to work.
Additions:
* Added Twitch Login for Bot Account.
* Added a !song response. This will get used for the !song command, the auto announce in chat and replaces the "Output Format Twitch" option from Settings -> Output. The Settings can be found in Bot Responses
* Added the ability to have chat responses appear as Announcements in chat. To do so the response has to start with "[announce color]". Color can be "orange", "purple", "blue", "green" and "primary". Primary is the color that you can select in your channel brand settings. Example: [code single][announce orange]This is an announcement[/code] (You have to re-login to Twitch for this to work because of changed scopes)
* Added a response for refunds. Leave empty for no added response [1]
* Changed the Window-Type of the Queue Window to a regular window instead of ToolWindow. This allows it to be captured by OBS and therefore can be used as a Source Dock.
* Added a song blocklist. You can now block individual songs in addition to artists and users.
* Added the queue to the webserver response body so that it can be used in OBS as a custom browser source.
* Added QueueCount to the webserver JSON response.
* Added IsInLikedPlaylist to the webserver JSON response.
* Added beta patch notes to the patch notes window
* Created a new API for the queue. This will allow for more features in the future.
* This API also cleans up the queue and removes songs that are no longer in the app's queue. Before it happened that the queue on the website was different from the queue in the app, which was not intended. With the API the app checks continuously if the queue on the website matches the queue in the app. If not it will update the queue on the website to match the app's queue.
* Added !remove command to the command list. This will remove the latest song request of the user that sent the command. (It will start playing for 1-2 seconds and then get skipped as soon as Songify detects the song)
* Added !songlike command to the command list. This will add the current playing song to a pre-selected playlist. The playlist is selected in Spotify settings. It also checks if the current song is already in the playlist and if so it will not add it again. [2]
* Added !play and !pause commands to the command list. This will allow you to control the playback of Spotify. The command is only available for the broadcaster and mods.
* Added a response for when the new short URL is used. Unfortunately, the short URL is not working yet and Spotify has no way to get the full URL from the short URL. I will keep trying to find a way to get the full URL from the short URL.
* Added separate permissions for song request command and reward. The old UserLevel will be parsed to the new options which are under Settings -> Twitch -> SongRequests
Changes:
* Temporarily disabled PubSub due to a third-party library issue, resorting to IRC chat for channel reward redemptions until the issue is fixed. Rewards that do not require input are currently non-functional. More information at https://github.com/TwitchLib/TwitchLib.Communication/pull/17.
* The following features are not working right now because of this:
* Song Skip Reward
* Refunds
* Redesigned the Settings Window
* Removed the BotConfig Window. The Bot config is now located in the Settings Window as well.
* The UUID will now be stored in the registry as well as the config file. That way if you ever reset the app your UUID is still there and won't mess with the online services.
* Update Spanish translation
* Bot responses can now be empty. This will prevent the bot from sending a response.
Bugfixes:
* Fixed some settings getting unchecked / reverted to standard
* Fixed a bug where the !next command would crash on some occasions
* Fixed a crash when not connected to Twitch Chat but still tried to send current song info
* Fixed a crash that could occur while connecting to the API
* Fixed songs getting stuck in the queue
* Fixed the notification that the app has been minimized even though it has been shut down
[1] Since PubSub is not working right now, this option is not working either. I still want to make clear that this feature is implemented and will work as soon as PubSub is working again.
[2] You have to relink your Spotify account for this to work. This is because of a change in scopes that are required for this feature.
---
Contribute:
We're still looking for translators! If you want to help us out and contribute to the success of Songify, please contact us on Discord or Twitter!
What's Changed
- Added error handling on the new chat response if the stream is down. For some reason, it doesn't create the option on some occurrences resulting in crashes. This should prevent this, otherwise, go to Settings -> Twitch and enable these options once and turn them off after (if you don't want to use them)
![]()
- Removed the patch notes from the main window after an app update. It now opens the patch notes window