Logo
This extension requires Streamer.bot version 1.0.0. If you are running 0.2.8 or below, click here.

SPOTIFY & SB

A full Spotify integration in Streamer.bot!

Your viewers can finally request the dumbest songs possible Pog But at least your mods can also skip songs or lower the volume in case you forgot your audio engineering degree at work...
catJAM _EDM

Note: This extension requires Spotify Premium

ACTION IMPORT
Loading...
SETUP

1. Copy the Action Import text from above into your clipboard.

2. In Streamer.bot, click the Import button at the top of the window. Paste the text into the Import String section and press Import at the bottom.

3. Now head to the Commands tab and look for the imported commands. Then rightclick the group and select Group -> Enable All.

4. Go to https://developer.spotify.com/ and login with your Spotify account. Then enter your Dashboard and hit Create app.

5. Enter App name and App description (those can be whatever). Then copy this URL:

http://127.0.0.1:1312/tawmaeSpotify/


Paste it into the Redirect URIs. It's important that this link is this exact one.

Accept the ToS and hit Save.

6. Now that your app has been created, click on Settings in the top right corner. Click View client secret below Client ID to reveal your Client secret. We will need both of them in a second.

7. In Streamer.bot, head into the [SPOTIFY & SB] # 0 - Settings action, rightclick the Test trigger and hit Test Trigger to open the Settings UI. Paste your Client ID and Client secret in there and hit Connect. A browser page will open up and you'll need to click Accept.

If the connection button turned green, you are good to go. Happy spotifying... or whatever!

catJAM Clap

COMMANDS

!sr [Song]

Adds a song to the queue. Can be the song name, the direct Spotify link and even a YouTube or Soundcloud link (for YouTube links, the video title will be used as the query). Spotify links are the only method to get the 100%ly correct request in.

!song

Posts the currently playing song into chat.

!songLink

Posts the currently playing song with its Spotify link into chat.

!last

Posts the previously playing song into chat.

!playlist

Posts the currently playing playlist into chat.

!skip

Skips the currently playing song.

!back

Replays the previously played song.

!playlists

Posts the owned playlists into chat.

!addSong [Playlist]

Adds the current song to a specified playlist. Can be the playlist's name or its index number. If nothing has been specified, it will add the song to the selected default playlist.

!playPlaylist [Playlist]

Plays the specified playlist. Can be the playlist's name or its index number.

!banSong

Bans the current song from song requests.

!unbanSong [Index]

Bans the specified song from song requests.

!bannedSongs

Posts the banned songs with their index into chat.

!queue [Number]

Posts the upcoming songs into chat. Defaults to (3) without a number, max. (10).

!play

Resumes the currently paused song.

!pause

Pauses the currently playing song.

!vol [Number]

Sets the volume of the player. Can also be a number like (+10) or (-10) to add/subtract to/from the current volume. Not entering [Number] will output the current volume to chat.

!devices

Posts the list of available devices into chat.

!setDevice [Index]

Changes the active device.

!voteskip

Vote to skip the currently playing song.

!remove [Songname]

Removes the requested song from the queue. Once the song starts, it will automatically skip it. The name doesn't have to be exact.
The action also populates user variables on a successful removal and auto-refunds channel points if any have been spent.

!wrongSong

Removes your latest own song request.

!queuePosition

Posts your current requests in queue into chat with their respective queue position and the remaining time until the first request will play.

!requests

Posts the amount of all requests and their total run time into chat.

!topSongs

Posts the top 5 requested songs into chat.

!topArtists

Posts the top 5 requested artists into chat.

!myTopSongs

Posts the top 5 requested songs of the redeeming user into chat.

!myTopArtists

Posts the top 5 requested artists of the redeeming user into chat.

OBS OVERLAY



How can I use the overlay?

1. In Streamer.bot, go into the Servers/Clients -> WebSocket Server tab. Check Auto Start WebSocket Server, leave Address at 127.0.0.1 and the Port at 8080. You can set a password if you want, just make sure to leave Enforce All Requests unchecked. Start the server.

Here you can check in real-time if your Websocket server is up and running:


2. Open the Settings UI from the [SPOTIFY & SB] # 0 - Settings action, head to the OBS overlay tab and add the style you prefer. Make sure your OBS is connected.

You can also just manually add one of the styles as a browser source.
Style 1: https://tawmae.xyz/overlays/spotify-and-sb-style-1
Style 2: https://tawmae.xyz/overlays/spotify-and-sb-style-2

SETTINGS UI

The Settings UI allows for some customization.



Connection
This is for the initial connection. You can also select your default device here.

General
This tab allows you to customize various settings, like voteskips, max. song length, max. requests per user etc.

Chat Messages
This tab allows you to customize the chat responses. You can make use of the variables listed below each message.

CUSTOM TRIGGERS

Under Custom -> SPOTIFY & SB you will be able to find triggers whenever a new song plays or a song gets paused/continued with song info variables.


New Song

Fires when a new song starts
(also fires if the same song gets played over/reset)

Available variables:

  • trackId (string) - the ID of the track
  • trackName (string) - the name of the song
  • artists (string) - the artist(s) of the song
  • coverImageURL (string) - the image URL of the cover art
  • albumName (string) - the name of the album (null if not an album)
  • isPlaying (bool) - indicator whether the new song is playing when it comes up
  • progressMs (int) - the new song's progress in milliseconds
  • durationMs (int) - the new song's total duration in milliseconds
  • progressTimeFormatted (string) - the new song's progress time in a mm:ss format
  • durationTimeFormatted (string) - the new song's total duration in a mm:ss format
  • releaseDate (DateTime) - the release date of the track
  • releaseYear (int) - the release year of the track
  • popularity (int) - the popularity of the track (0-100)
  • isExplicit (bool) - indicator whether the song is explicit or not
  • isRequested (bool) - indicator whether the new song has been requested or not
  • user (string) - the display name of the requester (null/empty if not requested )
  • userName (string) - the user login of the requester (null/empty if not requested )
  • userId (string) - the user ID of the requester (null/empty if not requested )
  • userProfileImageUrl (string) - the profile picture URL of the requester (null/empty if not requested )
  • isChannelReward (bool) - indicator whether the request has been redeemed via channel point reward
  • rewardId (string) - the reward ID of the request(null/empty not a channel point reward request )
  • redemptionId (string) - the redemption ID of the request(null/empty not a channel point reward request )

Song Continued

Fires when a song gets resumed.

Available variables:

  • trackId (string) - the ID of the track
  • trackName (string) - the name of the song
  • artists (string) - the artist(s) of the song
  • coverImageURL (string) - the image URL of the cover art
  • albumName (string) - the name of the album (null if not an album)
  • isPlaying (bool) - indicator whether the song is playing when it gets resumed
  • progressMs (int) - the song's progress in milliseconds
  • durationMs (int) - the song's total duration in milliseconds
  • progressTimeFormatted (string) - the song's progress time in a mm:ss format
  • durationTimeFormatted (string) - the song's total duration in a mm:ss format
  • releaseDate (DateTime) - the release date of the track
  • releaseYear (int) - the release year of the track
  • popularity (int) - the popularity of the track (0-100)
  • isExplicit (bool) - indicator whether the song is explicit or not

Song Paused

Fires when a song gets paused.

Available variables:

  • trackId (string) - the ID of the track
  • trackName (string) - the name of the song
  • artists (string) - the artist(s) of the song
  • coverImageURL (string) - the image URL of the cover art
  • albumName (string) - the name of the album (null if not an album)
  • isPlaying (bool) - indicator whether the song is playing (typically false when paused)
  • progressMs (int) - the song's progress in milliseconds
  • durationMs (int) - the song's total duration in milliseconds
  • progressTimeFormatted (string) - the song's progress time in a mm:ss format
  • durationTimeFormatted (string) - the song's total duration in a mm:ss format
  • releaseDate (DateTime) - the release date of the track
  • releaseYear (int) - the release year of the track
  • popularity (int) - the popularity of the track (0-100)
  • isExplicit (bool) - indicator whether the song is explicit or not



FAQ & EXAMPLES

Can I disable certain chat responses?

Yes. In the Settings UI in the Chat Responses tab, you can enter a single hyphen - as the message and it'll then not post it to chat.

Do my settings persist across updates?

Yes, they're saved as global variables.

Can I make it work without Spotify Premium?

Most API calls rely on Spotify Premium. So while some things like pausing and unpausing MIGHT work, the actual cool stuff won't. So no, you need Spotify Premium.

Can I request songs via YouTube or Soundcloud links?

Yes, you can. However, for YouTube, the extension will just pull the video title and use that as the search query. For Soundcloud it will pull the metadata, so this is probably a little more accurate.

Can I run the HTML locally?

Yes, open it in the browser, rightclick into it and click Save As and choose HTML Only. You can then use that as a browser source file. If you want to add URL params, uncheck Local File and instead type file:///C:/YourFilePath/Overlay.html manually in there. If you run it locally, you won't automatically receive any updates I make to the overlay though, so you'd have to redownload it on updates.

I have a Family Account and all my requests are failing, help????????????

Fear no more, child, you probably just misconfigured your app in the dashboard. When it comes to Family Accounts, the account you created the app in the dashboard with as well as the account you have authorized the extension with need to match. If they don't match, you need to add the other account to a whitelist. You can do that by going into your Spotify Dashboard, then into your created App and into User Management. You can then type in any name, but the mail needs to match exactly, so it's actually even case-sensitive. So just copy it from your Account Page in Spotify. See the pictures below for confirmation.





CHANGELOG
Date Changes Version
June 06, 2025 Added a button to add Style 3 as an overlay to the Settings UI. 1.2.8
June 05, 2025 Added a little more customization for the top request leaderboards, now with a new tab in the Settings UI. 1.2.7
June 04, 2025 Added stat tracking for requests with 4 new leaderboard commands; added additional variables to the custom triggers (Release Date, Release Year, Popularity, isExplicit) 1.2.6
June 03, 2025 Added a 'default playlist' to the settings menu. Adding the current song via '!addSong' will now add to default playlist if nothing's been specified; Added a check if the added song is already in the playlist to avoid duplicates; allowing to enter Client ID and Secret without clicking 'Save' now 1.2.5
June 03, 2025 Added a new command '!playlist' to post the currently playing playlist to chat. 1.2.4
May 27, 2025 Added a new command '!wrongsong' that removes the latest own request. 1.2.3
May 26, 2025 Fixed an issue when trying converting pre-alpha settings with older SPOTIFY & SB versions. 1.2.2
May 21, 2025 Added an option to not allow requesting explicit songs. 1.2.1
May 18, 2025 Fixed a bug that displayed the wrong waiting duration when multiple users requested songs. 1.1.9
May 10, 2025 Added channel reward variables to the custom triggers, added auto-refund for skipping own songs. 1.1.8
May 08, 2025 Fixed a bug with the queue position in the song request message. 1.1.7
May 08, 2025 Added options to remove/skip own requests. 1.1.6
May 04, 2025 Added support to request songs via soundcloud link 1.1.4
April 27, 2025 Added additional variables to the 'Song Request added' chat response: estimated waiting time in various formats 1.1.2
April 25, 2025 Overhaul for Streamer.bot 1.0.0 1.1.1