BROWSER SOURCE Includes an overlay browser source for your streaming platform, like OBS Studio. TWITCH ONLY Designed specifically for Twitch. Not compatible with other platforms. DLL REQUIRED This extension requires a .dll file (TawmaeUI.dll) in your Streamer.bot directory. On your first setup, it will ask to auto-download. You can download it manually at tawmae.xyz/dll.

A full Spotify integration for Twitch, powered by Streamer.bot. Request songs, control your player, tracks song stats, display a song overlay on OBS and much much more.

  • Songrequests
  • Full Player Control
  • OBS Overlays in four different styles
  • Customizable
SPOTIFY & SB Preview 1SPOTIFY & SB Preview 2

Quick Access

Copy what you need to get started. Follow the setup guide below for detailed instructions.

Action Import String

Import the actions into Streamer.bot.
Loading…

Setup Guide

1

Copy the Action Import String

Copy the Action Import text from Quick Access.

2

Import the actions into Streamer.bot

In Streamer.bot click Import in the top menu. Paste the text into the Import String field. Click Import at the bottom.

3

Enable the commands

Open the Commands tab. Find the imported group. Right-click the group and click Enable All.

4

Open the Settings UI

Open the action [SPOTIFY & SB] [#] 0 - Settings. Right-click the Test trigger and hit Test Trigger.

If the TawmaeUI.dll is missing, you'll be asked to auto-download. That popup window may appear behind the Streamer.bot window, so make sure to check if nothing appears.
5

Open Spotify Developer Dashboard

Now open your Spotify developer portal, login with your account and open your dashboard: Spotify Developer Portal

6

Create Spotify App

Click on Create app

For App name and App description, type in anything you want.

Redirect URIs has to be exactly this: http://127.0.0.1:1312/tawmaeSpotify/

Accept the ToS and hit Save

It is crucial you exactly match the Redirect URI. Otherwise it will not work.
7

Copy Client ID and Client Secret

Now that you are in your app, copy both the Client ID and your Client secret into the Settings UI of Streamer.bot.

The Client secret is hidden by default. You can uncollapse it by clicking 'Show client secret' right below it.
8

Connect

In Streamer.bot, paste them both in the Connection tab in the corresponding textboxes. Afterwards click on Connect.

A new browser page will open. Scroll down, click Agree and then you just see a page that says you are successfully connected.

9

Done!

And that's it! All good to go. You can now test all your commands.

Commands

Song Requests & Info

Command Permission Description Example
!sr [Song]
Everyone Adds a song to the queue. Can be the song name, a direct Spotify link, or a YouTube/SoundCloud link. For YouTube links, the video title will be used as the query. Spotify links are the most accurate. !sr clairo bags
!song
Everyone Posts the currently playing song into chat. !song
!songLink
Everyone Posts the currently playing song with its Spotify link into chat. !songLink
!last
Everyone Posts the previously playing song into chat. !last
!playlist
Everyone Posts the currently playing playlist into chat. !playlist

Playback Control

Command Permission Description Example
!skip
Everyone Skips the currently playing song. Non-mods can only skip their own requested songs. !skip
!back
Mods Only Replays the previously played song. !back
!restartSong
Mods Only Restarts the current song. !restartSong
!play
Mods Only Resumes the currently paused song. !play
!pause
Mods Only Pauses the currently playing song. !pause
!vol [Number]
Mods Only Sets the volume of the player. Can be an absolute value (e.g. 50) or a relative change like +10 / -10. Without a number, posts the current volume to chat. !vol 50

Queue Management

Command Permission Description Example
!queue [Number]
Everyone Posts the upcoming songs into chat. Defaults to 3 without a number, maximum is 10. !queue 5
!queuePosition
Everyone Posts your current requests in queue into chat with their respective positions and remaining time until your first request will play. !queuePosition
!requests
Everyone Posts the total amount of all requests and their combined runtime into chat. !requests
!voteskip
Everyone Vote to skip the currently playing song. !voteskip
!remove [Songname]
Everyone Removes the requested song from the queue. If the song is already playing when removal applies, it will automatically be skipped. The name does not have to be exact. On successful removal, user variables are populated and used channel points are auto-refunded. !remove never gonna give you up
!wrongSong
Everyone Removes your latest own song request. !wrongSong

Playlists & Devices

Command Permission Description Example
!playlists
Mods Only Posts the owned playlists into chat. !playlists
!addSong [Playlist]
Mods Only Adds the currently playing song to a specified playlist. Can be the playlist's name or its index number. If nothing is specified, the song is added to the selected default playlist. !addSong 2
!addSongToPlaylistFromInput [Song] | [Playlist]
Mods Only Adds the specified song to a specified playlist. Song and Playlist must be separated by a pipe symbol. The song can be artist/song name or a link. The playlist can be an index number from !playlists or a playlist name. If no playlist name is provided, it will use the fallback playlist set in the Settings UI. !addSongToPlaylistFromInput Sabrina Carpenter Espresso | Summer Vibes Playlist
!playPlaylist [Playlist]
Mods Only Plays the specified playlist. Can be the playlist's name or its index number. !playPlaylist Lofi Beats
!devices
Mods Only Posts the list of available devices into chat. !devices
!setDevice [Index]
Mods Only Changes the active device based on its index. !setDevice 1
!addLike
Mods Only Adds the current song to your liked songs in Spotify. !addLike

Banning & Filters

Command Permission Description Example
!banSong
Mods Only Bans the current song from song requests. !banSong
!unbanSong [Index Number]
Mods Only Unbans the specified song from song requests. Requires the index number from the !bannedSongs command. !unbanSong 3
!bannedSongs
Mods Only Posts the banned songs with their index numbers into chat. !bannedSongs

Stats & Top Lists

Command Permission Description Example
!topSongs
Everyone Posts the top 5 requested songs into chat. !topSongs
!topArtists
Everyone Posts the top 5 requested artists into chat. !topArtists
!myTopSongs
Everyone Posts the top 5 requested songs of the redeeming user into chat. !myTopSongs
!myTopArtists
Everyone Posts the top 5 requested artists of the redeeming user into chat. !myTopArtists
!broadcasterTopSongs [Time Range]
Everyone Posts the top 5 songs of the current Spotify user into chat (based on Spotify listening data). Time Range can be short (4 weeks), medium (6 months), or long (1 year). Defaults to long if empty or invalid. !broadcasterTopSongs short
!broadcasterTopArtists [Time Range]
Everyone Posts the top 5 artists of the current Spotify user into chat (based on Spotify listening data). Time Range can be short (4 weeks), medium (6 months), or long (1 year). Defaults to long if empty or invalid. !broadcasterTopArtists medium

User Likes

Command Permission Description Example
!like
Everyone Adds the current song to your liked list. This is just internal Streamer.bot tracking and has no effect on Spotify itself. !like
!unlike <Songname>
Everyone Unlikes the specified song. The name does not have to be exact. !unlike Last Christmas
!likes
Everyone Posts a list of all users that like the currently playing song. !likes

Settings UI

Connection

Configure the Spotify connection, default device and playlist, and manage your authorization tokens.

  • Connection Status
    The connection status indicator shows whether the extension is connected to Spotify. Green = good, red = not too good.
  • Client ID & Client Secret
    Enter your Spotify application Client ID and Client Secret, click Save, then use the Connect button above to authorize.
  • Default Device
    Pick your default playback device. All playback and song requests will be directed to this device.
  • Default Playlist
    Select your default playlist. When no playlist is specified in a command, this playlist is used as the target.
  • Reset Connection
    Deletes your Client ID, Client Secret and tokens so you can set up a fresh connection with another Spotify account or application.

General Settings

Control global behavior like maximum song length, queue limits, follower-only requests and how messages are sent to chat.

  • Max. Song Duration
    Maximum allowed duration for requested songs (in seconds). Requests longer than this value will be rejected.
  • Required Votes To Skip
    Required number of votes to skip the currently playing song via the voteskip command.
  • Max. Requests Per User
    Maximum number of simultaneous requests a single user can have in the queue.
  • Send Messages As Replies
    Toggle whether the extension sends direct replies to users or regular chat messages instead.
  • Allow Duplicate Songrequests
    If enabled, the same song can appear multiple times in the request queue. Disable to prevent duplicates.
  • Allow Explicit Songs
    Toggle whether users are allowed to request explicit tracks. Disable to block explicit songs.
  • Allow Skipping Own Songs
    Toggle whether people can skip their own requested songs with the !skip command while the song is currently playing.
  • Allow Removing Own Songs
    Toggle whether people can remove their own requested songs from the queue with the !remove command while the song is still queued.
  • Followers Only Songrequests
    Combine followers-only song requests with a minimum follow-age in days. Set how many days someone must follow before they are allowed to request songs.

Chat Responses

Edit all chat responses used by the Spotify & Streamer.bot integration. Use a single hyphen to disable a specific message. Variables are listed below each textbox; you can reset any field back to default via the icon on the right.

Stats Leaderboard

Configure the leaderboard for top song requests and the top tracks and artists for the current Spotify user based on Spotify's listening data.

  • Top Requests – One Message Per Rank
    If enabled, each rank is posted as an individual message. If disabled, all ranks are combined into a single message using the configured separator.
  • Top Requests – Post As Announcement
    Toggle whether the top-requests leaderboard is sent as an announcement or as a regular chat message.
  • Top Requests – Announcement Color
    Choose the color for announcement messages. Available options: Random, Blue, Green, Orange, Purple.

OBS Overlay

Configuration for the browser-source overlays that display the current song directly on your OBS canvas.

  • OBS Overlay Browser Source
    You can add the provided overlay URLs as browser sources to your OBS scenes and display the current song on your canvas. Hit one of the button to add it to your current OBS

OBS Overlays

OBS Overlay – Setup

SPOTIFY & SB includes four ready-to-use OBS overlays for the currently playing track. You need to enable Streamer.bot's Websocket Server for that.

1. In Streamer.bot, open Servers/Clients → WebSocket Server. Enable Auto Start WebSocket Server, keep Address at 127.0.0.1 and Port at 8080. You can set a password if you want, but leave Enforce All Requests unchecked.

2. Open the Settings UI via [SPOTIFY & SB] # 0 - Settings, go to the OBS Overlay tab and add your preferred style while OBS is connected.

Alternatively, you can add any of the style URLs below manually as a browser source in OBS.

Overlay Style 1

Clean, compact and with live-updating UI elements and requester info.

Browser Source URL:
https://tawmae.xyz/overlays/spotify-and-sb-style-1
Spotify & SB overlay – Style 1

Overlay Style 2

Alternative layout with a vertical layout, also with live-updating UI elements and requester info..

Browser Source URL:
https://tawmae.xyz/overlays/spotify-and-sb-style-2
Spotify & SB overlay – Style 2

Overlay Style 3

A more minimal variant of the first style. Slimmer and without UI elements, but with requester info.

Browser Source URL:
https://tawmae.xyz/overlays/spotify-and-sb-style-3
Spotify & SB overlay – Style 3

Overlay Style 4

Slim and minimal variant without album art and without requester info.

Browser Source URL:
https://tawmae.xyz/overlays/spotify-and-sb-style-4
Spotify & SB overlay – Style 4

Overlay Style 5

A more classic design with the album art on the left and song information on the right.

Browser Source URL:
https://tawmae.xyz/overlays/spotify-and-sb-style-5
Spotify & SB overlay – Style 5

Custom Triggers

New Song

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

Variable Type Description Example
%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. -
%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). -
%totalUserLikes%
int The total number of users that have liked the current song. -
%userLikeAllUsers%
string A comma separated list of all users that have liked the current song. Null if no likes. -
%userLikeThreeUsers%
string A comma separated list of three random users that have liked the current song. Null if no likes. -

Song Continued

Fires when a song gets resumed.

Variable Type Description Example
%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. -
%isExplicit%
bool Indicator whether the song is explicit or not. -

Song Paused

Fires when a song gets paused.

Variable Type Description Example
%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. -
%isExplicit%
bool Indicator whether the song is explicit or not. -

FAQ & Examples

How can I make new songs post to chat when they start playing?
The 'Chat Responses' tab of the Settings UI has a toggle switch 'Auto-Post New Songs'. Enable it to post new songs to chat. And if you want your very custom version of announcing new songs, you can also use the 'New Song' trigger to run a custom action whenever a new song starts playing.
Can I make it work without Spotify Premium?
No. Spotify allowed some endpoints to be used without premium, but starting February 11, 2026, all apps require premium for all endpoints.
Can I disable certain chat responses?
Yes. In the Settings UI inside the Chat Responses tab, enter a single hyphen - to disable that message.

Since version 1.3.7 you can also suppress a single reply by setting the noMessage argument to True before running an action. This lets you mute one reply without disabling the entire response globally.
Can I make the overlay hide when no song is playing? Or only show briefly when a new song starts?
Yes. You can use custom triggers or URL parameters.

?autoHide=true — hides the overlay when no song is playing.

?songChangeOnly=true — shows the overlay for 10 seconds when a new song starts.
I have a Family Account and all my requests are failing. Help?
With Family Accounts, the account used to create the Spotify app and the account authorized in the extension must match.

Otherwise, you must whitelist the other account in your Spotify Dashboard → App → User Management.

The email must match exactly — case-sensitive.
I got rate limited, what can I do?
Spotify is currently experimenting with new rate limits that can affect some users more than others. Some actions may still work, while others like the overlay or correct handling for the request queue will not. There are two options for you: 1) Wait until you are not rate-limited anymore (which takes hours), or 2) reset the connection in the Settings UI via the 'Reset Connection' button, delete your old Spotify app, create a new one and connect that. Unfortuntely we have to wait until Spotify gets their sh1t together.

Changelog

v1.5.0 latest

  • Fix: Fixed an issue with incorrect setups causing auth loops
  • Fix: Fixed an issue with track repeats triggering multiple times

v1.4.7

  • New: Added a workaround to fetch playlists. Spotify introduced a new bug for one of their endpoints that caused failing fetching playlists if you had over 50 in your library.

v1.4.6

  • Changed: Updated Spotify API endpoints
  • Fix: Fixed an issue with banned songs when requesting non-standard US links
  • Removed: Removed popularity from 'New Songs' trigger variables
  • New: Added new commands and actions to save likes of chatters
  • New: Added new response variants for song requests to display which users like the song
  • New: Added user like variables to the 'New Song' trigger
  • New: Added a toggle switch to the 'Chat Responses' tab to automatically post new songs to chat, with variants to support requests and user likes
  • New: Added action to fetch current song & player info
  • New: Added %srSuccess% and other variables after requesting a song

User Reviews

5.0 (8 reviews)

Reviews

This extension has enhanced the QOL for me as the broadcaster and for the chat as a whole! Very intuitive setup process with static visual guide. No need to pause rewind and play. Kept it simple and hassle free. This widget is almost as beautiful as its creator! With the powers of Tawmae and Streamer.Bot combined this utility will carry you to peace of mind.

Easy to import, Easy to set up, and makes life so much easier. Tawmae does an amazing job explaining how to use his extensions, and if you ever need help he is very responsive on his discord with assistance. 10/10

This is quite possibly one of the greatest things ever made for Streamer.Bot. Thank you, tawmae!

This Spotify widget is absolutely fantastic! I've already recommended it to my friends. It's a shame it doesn't have a switcher for Spotify and YouTube Music. Ideally, it works with the app from this third-party provider: https://github.com/pear-devs/pear-desktop/releases

Used something else for the longest time, but that kept on breaking. This, not a single break yet! Well worth the set up!

Did my own one which was absolute garbage, found this one and have never been happier. Would give more stars if possible <3

One of the best Spotify extensions existing. Never be in the need of a stable online bot!