Songify (Spotify / Youtube Now Playing & Song Requests)

Free Songify (Spotify / Youtube Now Playing & Song Requests) v1.8.9.1

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)
    215459198-f5fb8315-ec17-419e-bdfe-6460bb5dcb5a.png
  • Removed the patch notes from the main window after an app update. It now opens the patch notes window

What's Changed 1.3.9​

Songify App​

  • Added Twitch Login through Twitch API as well as PubSub (Twitch Event Listener).
    • In order to Login with twitch click on Twitch -> Twitch Login or Settings -> Twitch -> Login With Twitch (this will redirect you to a webpage where you have to grant access)
    • After you logged in you can check Settings -> Twitch and see your connection
    • This does not replace the Twitch Chat Login with Account Name, OAuth Token and Channel Name. You still have to set that up too! (Logging in with Twitch will fill out those fields for you, but if you want to use a different account you have to change it manually)
    • You can also now refund points if something fails (Twitch -> Rewards -> Refund when...)
      • In order to refund, a new Channel Point Reward has to be made through Songify! To do this head over to Settings -> Twitch -> Rewards -> Create New Reward. This is a limitation on Twitch's end. Make sure you chose a unique name for the reward. After creating the reward your Rewards page will automatically open. You can see if Songify can manage the reward by the pencil icon in the dropdown of the rewards.
      • It's now possible to track whether the stream is live or not. That way it's possible to limit all Twitch actions (sr, chat commands, auto announce etc.) to only work when the stream is up. If Songify has been started while the stream is live, it won't detect it. You can click on Twitch -> Check Online Status.
  • The config file (config.xml) is not being used anymore. On first startup with the config file present the app will now create 4 new config files called AppConfig.yaml, SpotifyCredentials.yaml, TwitchCredentials.yaml and BotConfig.yaml. These will now be the standard config files since I want to split tokens and credentials from other configs.
  • Added a web server that can be configured in Settings -> Web Server.
    • The web server exposes data of the current playing song in JSON. This can be used to make custom song displays in OBS using browser sources.
  • Added a 5 seconds cooldown on !voteskip after a song has been skipped to prevent accidental voting for the new song if the votes came in too fast
  • Added indicators that show if services are connected or not. These are in the bottom left of the main window and show a red triangle if a service is not connected. Services are: Twitch Chat Bot, Twitch API, Twitch PubSubs, Spotify and WebServer
  • Added custom response for !next and !pos
  • Added a console window that can be opened by clicking View -> Console.
    • The console window shows (for now) only a handful of events.
    • The console window can be attached/detached by clicking the icon on the top left of the console window
  • Added a setting to receive beta updates. This can be found in Settings -> Config
  • Added the ability to change the command triggers. You can now rename commands to whatever you want. This can be found in the bot configuration.
  • Added a 5-times retry on adding a song request to the Spotify queue. This is due to Spotify having a lot of 503 issues lately...
  • Added the option to disable the song request limit
  • Added a channel reward option to skip the current song (this is optional)
  • Added back in telemetry. The data is still anonymous and only used for statistics. I do want to know how many people are using the app after all.
  • The Settings window has been redesigned
  • Moved the !ssr command to the bot configuration
  • Removed the progress.txt file since it caused issues. The proper way to do it now is to use the data from the webserver.
  • Fixed Album Cover download crash on certain circumstances (hopefully)
  • Fixed !next command not working properly
  • Fixed an issue that reverted the "use own app" setting after an update
  • Fixed artist blocklist not saving correctly when the result contains more than one artist
  • Fixed user blocklist comparison check. It was case sensitive before, now its case insensitive
  • Fixed VLC not properly fetching
  • Fixed a crash that would occur if the output directory has been set in the app and it got deleted afterward. It now shows a prompt and reverts back to the app directory if the output directory can't be found
  • Fixed settings getting corrupt after a PC crash or power outage
  • The Spanish translation has been improved by @elhertz

Songify Website​

  • Overhauled the website to make it more user friendly
  • The queue page now shows the current song and the queue in a fancier way and also updates in real-time
  • Moved to a new hosting provider. This should make the website faster and more reliable
  • URL changed to songify.overcode.tv the old URL will be redirected. Older versions of Songify won't be able to connect to the website anymore.

Songify Widget​

  • The widget won't work with older versions of Songify since the web server has been changed.

What's Changed 1.3.9.1​

  • Added checks for live stream status on every command trigger. Before it only checked if Songify was running and the stream went live afterward. It will now check before every command execution (!song, !next, channel points, etc.) if the stream is up.
  • Added a new option in Settings -> Twitch -> "Send offline notification to chat"
    • Enabling this will send a message to chat if the stream is offline. The option to limit Twitch activity has to be enabled for this. It just responds with "The stream is not live right now".
  • At the bottom of the main window, it will now tell you if the stream is offline and actions have been canceled
  • Changed the icon for the web server to be gray if the server is offline since it's not crucial for Songify.
  • The port range on the web server settings has been set to 1025 - 66535

1.3.8​

What's Changed

  • Fixed an issue where it would put the wrong value in the error message when the max requests per user are reached. It now will output the correct number and max amount for the user's user level. For example @Username maximum number of songs in queue reached (Vip 3).
  • Fixed an issue where Songify would render as a black window and was unresponsive until opened from the system tray again
  • Fixed an issue where the min required user level would not display correctly in the settings window
  • Fixed an issue where the patchnotes would not show
  • Added the ability to set the amounts of votes for skipping a song
  • Added !voteskip command for regulars, number of votes can be adjusted (Settings -> Integration -> Configure Bot Responses & Commands)
  • Changed phrasing on the Twitch user level from "Everyone" to "Viewer (non vip/sub)" because it caused some confusion
  • Removed the Menu entry "Twitch -> Bot Config -> Configure Bot Responses & Commands" and moved the onClick function to just "Bot Config" MenuItem

1.3.7​

  • Fixed output format for twitch not working with requester info ({{requested by {req}}})

1.3.6​

  • Added a secondary output format just for Twitch chat. This output will get sent to Twitch chat when the !song command is used.
    • Added {url} parameter to the right-click menu for output format (this adds the Spotify link of the current song)
  • Added Song request user level restriction e.g. only subs and above or only VIPs and above can request songs. You can choose between Everyone, VIP, Subscriber, Moderator, and Broadcaster
  • Added a cooldown to the skip command (5 seconds)
  • Added a new window under File -> Patch Notes. It displays the patch notes for the current and all past versions.
  • Added the ability to set the max song request limit for each user based on the user level. For example, you can now set everyone ( regulars ) to be able to only request 1 song at a time, VIPs 3, subs 5, and so on. The broadcaster has been removed entirely from the limit. Go to Settings -> Songify SR.
  • Added an update screen with patch notes after the app updated
  • Fixed an issue with the skip command (requester could skip everything)
  • Fixed an issue where the position of the window wouldn't be saved correctly
  • Moved error handling to App.cs instead of MainWindow.cs. This way logs should get created even when the app fails to start correctly.

1.3.5​

  • Added a !skip command.
    • Broadcaster / Moderators and the person who requested the current song can skip immediately. Regulars will start a vote of 5 to skip the song. Votes will be reset on song change.
    • Added bot responses for the !skip command
  • Added an option to open the queue window on startup
  • Changed the way that the columns are spaced in the queue window
  • Switched old Patreon links to Ko-Fi
  • Bot responses now will be saved
  • Fixed bot response toggles in Settings not being displayed correctly
  • Fixed issues with progress saving
  • Fixed an issue where the config export would open twice
  • Fixed an issue where with foobar it would cut off the output if it has multiple . in it. (#30)
  • Fixed a bug that made it possible to connect to twitch multiple times resulting in duplicate messages and song requests

1.3.4​

  • Added a message box that pops up when the software crashes, it can open the log file directory
  • Fixed Progress.txt file save location & related crash

1.3.3​

  • Fixed an issue with the config being stored in wrong case format
  • Removed desktop notifications for Twitch disconnect

What's Changed​

  • Added progress bar setup guide for obs by @karimawii in #29
  • Fixed crashes related to Twitch Auto reconnect
  • Fixed different time formats in log files
  • Changed the way settings are written and read (The Theme setting will reset to default, which is the light mode, fixed a typo...)
  • Moved Progressbar related files to a new folder called Progress

Checksums:​

Zipfile​

md5: 09823632c855b12c588e9cbdcb3b1344
sha1: 2b3957881a021d56bbabb1c05150d99505a12693
sha256: 06ea6a54daa8bbe269c2625c2ea115fe70b245efa2596b09270b9a49f1ae282f

Songify.exe​

md5: cf06108ed07c3c01a6abe7015bda4a0c
sha1: c4f5a6678eab6398f8b6db7737fc84cac9d62f60
sha256: cfecfbb2d495aa5342be11a6f5baf6a4a03e322c87ce520044c708413997601b

Full Changelog: v1.3.1...v1.3.2
Additions:
- added {url} parameter to the output tab. This only works with Spotify API and adds the song link.
- added a new output file progress.txt in which the percentage of the progress of the current song is stored. This is useful to make your own progress bar using HTML / js. An example progress.html-file is included and can be used (see the style.css for own styling).
- added auto-reconnect when disconnected from twitch by accident

Removals:
Telemetry has been removed entirely.

Fixes:
Bot config is now saved to settings file

Additions:​

  • none

Removals:​

  • none

Fixes:​

  • Fixed YouTube not working properly (YouTube has to be the first tab in the browser)
  • Fixed VLC not working properly

Checksums:​

Zipfile​

md5: 22c2845f38b4a8d9f72d77c201847726
sha1: 213c6af0493536d93cfeebcc78db86c629897314
sha256: 935b6530ee7c7cee69dd5c83437bcf8e4cc07f466072905403b70d18cb5cce94

Songify.exe​

md5: 9f2d6fadc07fdd0ab35384aca24e1094
sha1: 644d91830ae51c53a83e3a13e305d57630b955ef
sha256: f2c585d3a5427bee6f6d0d6eebacfa1b71d961e7abd2cd2b7d37e1541116cc53
Additions:
  • Added systray icon context menu for Twitch
Removals:
  • none
Fixes:
  • Fixed a typo in the config file (opening and closing the settings window should fix this)
  • Fixed Twitch Connect / Disconnect buttons not working in other languages than English
  • Fixed an issue that causes Songify to crash when auto-send to chat was active while being disconnected from Twitch
  • Fixed {errormsg} output when using Channel Reward song request
  • Fixed !next command (it was showing Artist - Artist)
  • Fixed VLC displaying "Pause" when scrubbing through the seekbar
  • Fixed VLC not displaying the separator for Artist and Title (#20)
  • Fixed Twitch Channel and Username trailing whitespaces (whitespaces caused some issues, this is to circumvent faulty user input)
  • Fixed output string for desktop and browser players
  • Added try/catch to the write method since it caused a crash when attempting to write the text file on some occasions
  • Removed config save on window close
  • Added config save to SettingsWindow close

Checksums:
Zipfile
md5: 2454e7894bb1ed67795c820e32d0cd8f
sha1: 67adcc2c7353e41d77693b0f063665370a86781f
sha256: 2974a292010ba200e2f4604813dfeca3e1518ae1cf5d6f7f6f31086db5848c57

Songify.exe
md5: 05668d2e26d09f1ed68a67a1cf9b2611
sha1: 208a8f6d8a81c0c19b81e36b3b0c8971a1df44bc
sha256: 67471eaaf12bce150704e510294e4540ed
  • Foobar2000 wasn't working, now it is.
  • Auto announce in chat now uses the output string
Back
Top