Table of Contents for Songify v.1.3.9
- Getting Started
- Setting up song requests
- Setting up the widget
- Setting up OBS
- Troubleshooting
- Songify is not working
- Songify is not showing the song info
- Songify is not showing the song cover
- Song requests are not working
- Songify uses a lot of CPU when grabbing info from Chrome
- "INVALID CLIENT: Failed to get client" when trying to link my Spotify account
- "INVALID_CLIENT: Invalid redirect URI" when trying to link my Spotify account
Download Songify from our Github here. Make sure to download the file called Songify.zip
as the other files only contain the source code. Once downloaded extract the zip file and run Songify.exe
.
On the first start of the app you will be prompted to link your Spotify account. In order to do so it is advised that you create you own Spotify API Access as explained here. Before you do though, please read the entirety of this document as it contains important information about the app and how to use it.
The app's main window shows a menu at the top with multiple entries (we will go over all of them), the current playing song (if connected) and displays some status indicators in the bottom left corner.
- File =>
Brings up this menu
- Settings =>
Opens the settings window
- Widget =>
Opens our widget website where you can create your own widget
- Patch Notes =>
Opens a window to display patch notes
- Help =>
Opens the help sub-menu
- FAQ =>
Links to our FAQ page
- Github =>
Links to our Github
- Discord =>
Links to our Discord
- Log Folder =>
Opens the folder where log files are saved (appdata/songify.rocks)
- About =>
Opens a window with some information
- FAQ =>
- Exit =>
Shuts down the app
- Settings =>
- Twitch =>
Brings up this menu
- Twitch Login =>
Opens the website to login with Twitch
- Connect =>
Connects the chat bot
- Disconnect =>
Disconnects the chat bot
- Bot Config =>
Opens the bot config window
- Twitch Login =>
- Songrequests =>
Brings up this menu
- Queue =>
Opens the queue sub-menu
- Queue Window =>
Opens a window that shows the current song queue
- Queue Browser =>
Opens a website with the current song queue
- Clear Queue =>
Clears the current queue (this does not affect Spotify!)
- Queue Window =>
- Blocklist =>
Opens a window where you can block artists and users from doing song requests
- Queue =>
- History =>
Brings up this menu
- History Window =>
Opens a window that shows your listening history (if enabled)
- History Browser =>
Opens a website that shows your listening history
- History Window =>
- View =>
Brings up this menu
- Console =>
Opens a consoel window that is attached to the main window and shows some logging information
- Console =>
- ☕ Buy Us A Coffee =>
Links to our Ko-Fi
- Dropdown Menu to the top right =>
This used to select which player you want to grab information from
In the middle you'll see the current playing song as well as the album cover (if enabled)
- The footer will display a number of icons on the lower left which represent the status of services like Twitch API / Pubsub / Chatbot and web server.
- In the middle of the bar are some informations shown
- On the right side is the current version and a link to our website.
- Language =>
Language selection (English, French, Spanish, German, Russian)
- If you want to help translating the app visit our Discord !
- Behavior
- Autostart with windows =>
Enable or disable autostart with windows
- Minimize to system tray =>
Enable or disable minimizing the app to the tray
- Open the queue window on startup =>
Opens the queue window when the app launches
- Chrome fetch rate =>
The rate in seconds at which the app pulls data from Chrome (this can slow down your browser if its set to 1 second)
- Autostart with windows =>
- Privacy
- Display account names and profile pictures =>
Show or hide account name and profile picture in Songify
- Display account names and profile pictures =>
- Appearance
- Color =>
Select one of many color accents
- Theme switch =>
Select between light and dark theme
- Color =>
- Output Direcotry =>
Here you can select the directory where Songify saves files such Songify.txt, Artist.txt, Title.txt, cover image etc.
- Output Format (Text file & Widget) =>
This dictates what fromat the output has (for the text files and the widget). Possible parameters are: {artist}, {title}, {extra}, {{requested by {req}}}, {url}
{{requested by {req}}}
is special because everything inside{{
and}}
is only shown if its a song request.{req}
will insert the name of the person who requested the song.
- Output Format (Twitch Chat) =>
Same as the above but only for Twich chat when the command to post the songinfo is used
- Append spaces =>
Enabling this will appen spaces at the end of the text file in order to make it visually better when scrolling is enabled. The number of spaces is defined by the input next to it
- Pause Text =>
If enabled, Songify will put the text from the textbox next to it as the output if playback is paused
- Upload Song Info =>
Uploads the song data to our servers. This needed for the widget and if enabled it will also show the current playing song on the queue website
- Split Artist and Title =>
If enabled Songify will not only produce the Songify.txt file but also separate files for the artist and title
- Download album cover =>
Downloads the album cover of the current song. This only works of the data is retreived through the Spotify API
- Accounts
- Login with Twitch =>
Opens the website to authenticate with twitch (only visible if not logged in)
- Account Name =>
The name of the account you want to use for the chat bot
- oAuth Token =>
The oAuth token of the account you want to use for the chat bot
- Channel =>
Your Twitch channel name (just the name, not the full URL)
- Autoconnect =>
If enabled the chat bot will automatically connect to the channel on startup
- Automatically announce song to chat =>
If enabled the chat bot will automatically post the song info to the chat when a song changes
- Limit Twitch activity to only work when stream is live (requires Twitch API) =>
If enabled the chat bot will only work when the stream is live
- Configure Bot responses and commands =>
Opens the bot config window
- Login with Twitch =>
- Rewards
- Dropdown Menu =>
Select the reward you want to use for song requests (requires Twitch API)
- Refresh Button =>
Refreshes the list of rewards (requires Twitch API)
- Reward ID =>
Displays the ID of the selected reward
- Create new reward =>
Opens a window to create a new reward (requires Twitch API). This has to be done through the app in order to allow for refunds.
- Refund when =>
These checkboxes are all conditions on which you could refund a reward.
- Dropdown Menu =>
- Song Requests
- Enable SR (Channel Rwads) =>
Enable or disable song requests through channel points
Enable SR (Commandmoved to the bot config!ssr
) =>Enable or disable song requests through the command !ssr
- Clear Queue on Startup =>
Clears the queue on startup
- Minimum user level required for SR =>
Select the minimum user level required to do song requests
- Max SR / User (based on user level) =>
Select the maximum amount of song requests a user can do based on their user level
- Command Cooldown (seconds) =>
Select the cooldown for song requests (Command and Channel Points)
- Max song length (minutes) =>
Select the maximum length of a song in minutes
- Enable SR (Channel Rwads) =>
- Link =>
Opens the website to link your Spotify account
- Use Songify AppID / Own AppID =>
Select if you want to use the Songify AppID or your own. It is strongly recommended to use your own AppID. If you want to use your own AppID you have to create one on the
Spotify Developer Dashboard - Client ID =>
The Client ID of your Spotify App
- Client Secret =>
The Client Secret of your Spotify App
- Web Server Port =>
The port on which the web server will run. It's recommended to use a port above 1024. I use 65530 for example.
- Start Web Server =>
Starts the web server
- Open Website =>
Opens the website in your default browser
- Automatically start web server =>
If enabled the web server will automatically start on startup
- Get Beta Updates =>
If enabled you will get beta updates
- Export Config =>
Exports the current config
- Import Config =>
Import config files
The patch notes window shows the latest patch notes. On the left side you can select the version you want to see the patch notes for. Clicking on "See all changes on Github" will open the Github page for the selected version.
The about window shows some informations about the app and the developers.
- Here you can configure the responses that the bot will send out when certain conditions are met. The responses have parameters such as
{user}
which will be replaced with the username of the user who triggered the response. Not all parameters are available for all responses. The standard configuration uses all the parameters that are available for that specific response.
- Here you can enable or disable built in chat commands. You can also change the command trigger by clicking on the command name and type in a new one. Spaces in the command name are not allowed.
The queue window shows the current queue. It displays the artist, title, length and the person who requested the song. You can remove songs from the queue by right clicking on them and selecting "Delete". The Queue inside the app is not coupled with the queue in Spotify. If you delete a song in the queue window it will not be deleted in Spotify.
The blocklist shows two lists. One is for blocked artists the other for blocked user (chatters). You can add artists or users to the blocklist by selecting Artist or User on the dropdown menu and type in the name of the artist or user. If multiple Artist are found you'll see a list with all the results and you can check which one you want to add to the blocklist. You can remove artists or users from the blocklist by right clicking on them and selecting "Delete".
Songify will keep track of your listening history, if enabled. You can enable the history in the history window's title bar. THere is a button named "Save" and it has either a X or checkmark on it depending on if the history is enabled or not. If you click on the button it will enable or disable the history. The history is saved in a file called "history.shr" in the Songify folder. The history is split in days. You can select a day on the left side and see the songs you listened to with timestamp on the right side. You can also remove songs from the history by right clicking on them and selecting "Delete". If you enable "Upload" the history will be uploaded to our servers and can be shared with others. If you click the chain-link icon it will copy the url to your clipboard.
The console window shows the console output of the app. You can use the console to debug issues and see what is going on. The console is attached to the main window by default but can be detached using the button in the top left corner.
In order to have song requests working you need to authenticate to the Spotify API.
- Go to the Spotify Developer Dashboard, log in and create a new app.
- Once the app is created click on "Edit Settings" and add
http://localhost:4002/auth
to the Redirect URIs (Click ADD and SAVE, thats important!). - Locate the Client ID and Client Secret and copy them.
- Go to the Songify settings and paste the Client ID and Client Secret into the corresponding fields (Settings -> Spotify).
- Hit the switch so it says "Use Own AppID".
- Close the settings window, this will prompt for a restart of the app (click yes).
- Now go to Settings -> Spotify -> Link to link your Spotify account.
- If everything worked it should say "Linked account: Your Spotify username" and show your user profile picture.
In order to have song requests working you need to authenticate to the Twitch API.
- Go to settings -> twitch and click on "Login with Twitch".
- Authorize the songify app.
- You'll get redirected to a success page.
- Go back to the settings window and fill in account name, oAuth Token and channel to join with your credentials. If you want to use a different account, for example your own bot account, make sure to get the oAuth token for that account. You want to enable autoconnect.
Song requests only work with Spotify Premium.
Make sure you followed the steps above to set up Spotify and Twitch.
- Go to settings -> twitch -> rewards and click on "Create New Reward".
- Fill in the title, prompt and costs of the reward you want to create. Make sure you don't use a name that is already in use by another reward.
- Click on "Create Reward".
- You'll be redirected to the rewards page of Twitch where you can edit the reward to your liking.
- Go back to Songify settings -> twitch -> rewards and click on "Refresh Rewards". Select your newly created reward in the dropdown menu.
- Go to Song Requests and make sure that "Enable SR (Channel Points)" is enabled. If you want to use the command to do song requests make sure that "Enable SR (Command)" is enabled as well.
- If the Twitch chat bot is not connected yet, connect it by clicking on "Connect" in menu of the main window.
- Now Trigger the reward or use the command to do a song request. If everything worked you should see the song in the queue window as well as a response from the bot in the Twitch chat.
Click on File -> Widget. This will open the widget generator in your browser where you can customize the widget to your liking. If the option to upload the song info is not activated, it will ask you to do so. On the widget generator you can set up the corner radius, icon position, scroll direction, transparency, scroll speed and whetehr to use the album cover or not.
There are multiple ways you can set up the song display in OBS. You can use the widget or you can use the text source.
- Widget
- Add a browser source to your scene.
- Set the URL to the one from the widget generator.
- Set the width and height to 312x64.
- Source Files (text and image). These files are usually located in the Songify folder.
- Add a text source and eneble
Read from file
.- Browse for either the
Songify.txt
orArtist.txt
andTitle.txt
file.
- Browse for either the
- Add a new image source
- Browse for the
cover.png
file.
- Browse for the
- Add a text source and eneble
- Custom HTML / CSS
- If you are familiar with HTML and CSS you can create your own widget. You can use the web server endpoint to retrieve live data from Songify. The data is presented in JSON and updates on every request made to the API.
{ "Artists":"", "Title":"", "albums":[ { "Url":"", "Width":640, "Height":640 }, { "Url":"", "Width":300, "Height":300 }, { "Url":"", "Width":64, "Height":64 } ], "SongID":"", "DurationMS":0, "isPlaying":true, "url":"", "DurationPercentage":0, "DurationTotal":0, "Progress":0 }
- Make sure you have the latest version of Songify installed.
- If Songify won't boot at all try deleting the entire folder
%localappdata%/Songify.Rocks
.
- Make sure your Spotify account is linked to Songify. You can check this in the settings window. Or on the bottom left corner of the main window.
- Make sure you have enabled the option to download the album cover.
- You need Spotify Premium to use song requests. Make sure you have followed the steps to set up Spotify, Twitch and steps to set up song requests.
- This is due to the fact, that we have to intercept with the Chrome application to grab tab titles. This is the only way to get the song info. If you want to reduce the CPU usage you can try to increase the chrome fetch rate. You can do this in the settings window.
INVALID CLIENT: Failed to get client
means that you have not entered the Client ID and Client Secret correctly. Make sure you have copied them correctly and pasted them into the corresponding fields. In doubt you can try to create a new app on the Spotify Developer Dashboard.
INVALID_CLIENT: Invalid redirect URI
means that you have not added the redirect URI to the app on the Spotify Developer Dashboard. Make sure you have addedhttp://localhost:4002/auth
to the Redirect URIs (Click ADD and SAVE, thats important!).