01What you need
You need an ItsBagelBot dashboard signed in with your Twitch account, and a Spotify account. The Spotify account you connect needs Premium, so the bot can control playback and add song requests to your queue. Song requests run on a Spotify app that you create yourself in Spotify's developer dashboard. The account that owns that app needs Premium too, and Spotify lets each app connect at most 5 accounts. Most streamers use one account for both jobs. Spotify must also be playing on a device (the desktop app, your phone, or a web player) while viewers request songs.
02Set up Spotify in the dashboard
Open dashboard.itsbagelbot.com/songqueue. Until Spotify is connected, the page shows a setup with four stages: Welcome, Create your app, Add your keys and Connect Spotify. Follow the steps below in order. Each stage of the setup has an "Ask your AI for help" button, covered at the end of this guide.
- Start the setup
On the Welcome stage, read the note "Spotify Premium is required", then select Let’s set up Spotify.
- Open the Spotify developer dashboard
On the Create your app stage, select Open Spotify dashboard. It opens
developer.spotify.com/dashboardin a new tab. Log in with the Spotify account that will own the app. - Create the app on Spotify
In Spotify's developer dashboard, select Create an App. Give the app a name and a description, accept the Developer Terms of Service, and create the app. Spotify shows the name and description to anyone who connects through it, so pick something you recognize.
- Copy the Redirect URI
Go back to the ItsBagelBot tab. Under Redirect URI, select Copy. The button changes to "Redirect URI copied."
- Paste it into your Spotify app
In Spotify, open your app's settings. Paste the value into the Redirect URIs field and save your changes. It must match exactly, without an extra slash or space. Spotify compares it character by character.
- Confirm the app is created
Back in ItsBagelBot, select My app is ready. If the Redirect URI is missing, the button stays disabled and the page explains that the value is unavailable for now.
- Copy your Client ID and Client Secret
On the Add your keys stage, switch to Spotify and open your app's Settings. Copy the Client ID. Reveal the Client Secret on the same page and copy it too.
- Paste both in the dashboard
Paste the first value into Client ID and the second into Client secret, then select Save & continue. Paste them with no spaces. ItsBagelBot stores the secret encrypted and never shows it again, so paste it again if you ever rotate it.
- Connect your Spotify account
On the Connect Spotify stage, the page says "Your app is saved and ready." Select Connect Spotify. Spotify opens a permission screen. Approve the permissions on Spotify's screen. Closing the screen without approving stops the connection. A warning may appear right after you connect. The connection still works, and the table in "If something goes wrong" says what to do.
- Check the result
Spotify sends you back to the Song Requests page. The Connection area shows the Connected badge and a "Spotify connected." message appears. You are now ready to turn the requests on.
03Turn on song requests
Once Spotify is connected, the Song Requests page shows the rest of the setup. Both request paths share one queue, and either can be on while the other is off.
- Enable the module
Turn on Enable song requests at the top of the page. While it is off, the page says requests are paused and neither path queues anything.
- Set up the chat command
In the Chat command (!sr) card, turn on Allow !sr. Under Who may queue, choose one of Only me, Moderators only, VIPs only, Subscribers only or Everyone. Live only is on by default, so requests work only while you are streaming. Turn it off to allow requests offline. These switches save as you change them.
- Limit how many songs one viewer can queue
This one is optional. In Per-viewer limits, enter a number for each tier (Everyone, Subscribers, VIPs, Moderators) and select Save limits. A blank tier means no limit. You are never capped.
- Create the channel-points reward
In the Channel points card, the row Song request says "Not set up" until you create the reward. Open it and select Create reward. Fill in Reward title (the default is "Play a song request"), Point cost, Global cooldown (0 = off) and Chat reply. Colour is optional. The reward appears in your Twitch points menu as soon as you save.
- Choose what happens after a redemption
Under After redemption, pick one: "Fulfil: the song queues (default)", "Cancel: refund the points, skip the queue", or "Leave pending for mods to resolve manually".
- Accept redemptions
Turn on Accept reward redemptions. While it is off, redemptions are refunded and nothing queues. Live only in this card is on by default too. Turn it off to allow redemptions offline.
Viewers type !sr followed by a song name, an "artist - song" pair, or a
Spotify link. Channel-points redemptions work the same way: the viewer types the
song when they redeem. The Queue card on the same page shows what is
playing and what is waiting, and has a Skip button.
SnackPackPanda !sr artist - song
ItsBagelBot @SnackPackPanda queued "Song" by Artist, position #2.
04If something goes wrong
The first table lists the messages you see in the dashboard. The second lists what viewers see in chat. Messages are copied as the dashboard shows them. The list covers the messages you are likely to see.
| What you see | What it means | What to do |
|---|---|---|
| Spotify Premium is required | The connected account needs Premium. The account that owns your Spotify app needs Premium too, and each app can connect at most 5 accounts. | Connect an account with Premium, make sure the app owner has Premium, and keep to 5 accounts. |
| You closed the Spotify permission screen before approving. Choose Connect Spotify and approve the permissions to finish. | You left Spotify's permission screen without approving, so nothing was connected. | Select Connect Spotify again and approve the permissions on Spotify's screen. |
| The sign-in link expired or was replayed. Start the connect again. | The sign-in link you used is no longer valid. | Select Connect Spotify again to start a fresh sign-in. |
| Spotify refused the sign-in. Check that the Client ID and Client Secret match your Spotify app, and that the redirect URI shown on this page is saved in that app. Then connect again. | Spotify rejected the credentials or the Redirect URI. | Copy the Client ID and Client Secret again from your app's Settings. Check that the Redirect URI shown in the dashboard is saved in your Spotify app, character for character. Then connect again. |
| Spotify did not send a new sign-in token. Open spotify.com/account/apps, remove access for your app, then choose Connect Spotify and agree again. | Spotify did not issue a new token for this connection. | Open spotify.com/account/apps, remove access for your app, then select Connect Spotify and approve the permissions again. |
| Add your Spotify app before connecting your account. | No Spotify app is saved yet. | Go back to the Add your keys stage, paste the Client ID and Client secret, and select Save & continue. |
| Spotify setup is unavailable on our side right now. Try again later. If it lasts more than a day, email support@itsbagelbot.com. | The problem is on the ItsBagelBot side, not in your Spotify app. | Try again later. If it lasts more than a day, email support@itsbagelbot.com. |
| The token could not be stored. Try again in a moment. | Spotify accepted the connection, but ItsBagelBot could not save the token. | Wait a moment and select Connect Spotify again. |
| That does not look like a Client ID and Client Secret. Copy both again from your app's Settings page in the Spotify Developer Dashboard, with no spaces. | The two values did not look like a valid Client ID and Client Secret, so they were not saved. | Copy both again from your app's Settings page in Spotify, paste them with no spaces, and select Save & continue. |
| Could not save the Spotify app. | The credentials could not be saved. | Try Save & continue again. If it keeps failing, check the values and try later. |
| The Redirect URI is unavailable on our side right now, so you cannot continue yet. Try again later. | The dashboard cannot show you the Redirect URI to copy. | Try again later. |
| Your Spotify connection is missing a permission song requests needs. Reconnect to grant it. | The Spotify connection was made without a permission the requests need. | Select Reconnect Spotify and approve the permissions on Spotify's screen. |
| Your Twitch sign-in is missing the channel points permission this reward needs. Sign in with Twitch again to grant it. | Your Twitch sign-in does not include the channel points permission. This is a Twitch permission, not a Spotify one. | Select Sign in with Twitch again and approve the permission. |
| Spotify no longer accepts this connection, so song requests are paused. Reconnect to resume them. | Spotify stopped accepting the saved connection. The page also shows Reconnect needed. | Reconnect Spotify. If it fails, follow the row about "Spotify did not send a new sign-in token". |
| Skipping needs Spotify Premium. | The Skip button needs Premium on the connected account. | Use an account with Premium. |
| No active Spotify device. Start playing something first. | Spotify is not playing on any device. | Open Spotify on a device, start a song, then try again. |
| Spotify no longer accepts this connection. Reconnect it and try again. | The connection stopped working while you pressed Skip. | Reconnect Spotify, then skip again. |
| Could not reach the backend. Try again in a moment. | The page could not load the song request settings. | Wait a moment and reload the page. |
| Give the reward a title. | The Reward title field is empty. | Type a title, then save the reward again. |
| Enter a whole number of points, at least 1. | The Point cost is not a whole number of at least 1. | Enter a whole number, 1 or more. |
| Enter a cooldown between 0 seconds and 7 days. | The Global cooldown is outside the allowed range. | Enter a cooldown from 0 seconds (off) up to 7 days. |
| Could not save the reward. | The reward could not be saved. | Wait a moment and save it again. |
| Could not delete the reward. | The reward could not be deleted. | Wait a moment and try again. |
| Could not save the command settings. | The Chat command (!sr) settings could not be saved. | Change the setting again, or reload the page and retry. |
| Could not save the toggle. | The Enable song requests switch could not be saved. | Reload the page, check the switch, and try again. |
| Could not save the limits. | The Per-viewer limits could not be saved. | Select Save limits again. |
| Could not skip the track. Try again in a moment. | The Skip button did not go through. | Wait a moment and skip again. |
| Could not disconnect Spotify. | The disconnect did not go through. | Wait a moment and try again. |
| Could not remove the Spotify app. | The removal of the saved Spotify app did not go through. | Wait a moment and try again. |
| Could not copy. Select the URL and copy it manually. | Your browser blocked the copy button. | Select the Redirect URI with the mouse and copy it by hand. |
| Spotify connected, but it refused to share this account. In development mode, the account that owns your Spotify app needs Premium. Upgrade that account in Spotify, then connect again. | The connection worked, but Spotify refused to share this account. In development mode, the account that owns your Spotify app needs Premium. | In Spotify, upgrade the account that owns your app to Premium. Then connect again from the Song Requests page. |
| Spotify connected, but this account is not on your app's allowed users. In the Spotify Developer Dashboard, add this account to your app's users, then connect again. | The connection worked, but this account is not on your app's list of allowed users. | In the Spotify Developer Dashboard, open your app's settings and add this Spotify account to the app's users. The name of that tab may differ from what you expect, so look for the user management settings. Then connect again from the Song Requests page. |
| What you see | What it means | What to do |
|---|---|---|
| @viewer song requests are not set up yet. | Setup is not finished on the channel. | Finish the setup above. |
| @viewer song requests are paused until the streamer reconnects Spotify. | Spotify stopped accepting the saved connection. | Select Reconnect Spotify on the Song Requests page. |
| @viewer song requests need Spotify Premium on this channel. | The connected account does not have Premium. | Connect an account with Premium. |
| @viewer Spotify is not playing on any device right now. | Spotify has no active device. | Open Spotify and start playing a song. |
| @viewer Spotify is busy right now, try again in a moment. | Spotify is temporarily busy. | Wait a moment and request again. |
| @viewer that Spotify link isn't supported. Share a track or album link. | The viewer shared a link that is not a track or an album. | Share a track or album link, or a song name. |
| @viewer the music lookup is down right now, try again in a bit. | The song lookup is unavailable for now. | Try again later. |
| @viewer song requests from chat are turned off right now. | Allow !sr is off. | Turn on Allow !sr. |
| @viewer song requests are limited to a smaller group right now. | The viewer is not in the group chosen under Who may queue. | Change Who may queue if you want them to request. |
| @viewer song requests only work while the stream is live. | Live only is on and the stream is offline. | Go live, or turn off Live only. |
| @viewer no track found for that. Try a Spotify link or "artist - song". | Spotify found no match. | Try a Spotify link or an "artist - song" pair. |
| @viewer you are at your song limit (N in the queue at once). !sr remove frees a slot. | The viewer reached their limit under Per-viewer limits. | Wait for a song to play, or raise the limit. |
| @viewer the song queue is full right now. | The queue has reached its size limit. | Wait for songs to play. |
| song requests from channel points are turned off right now, your points were refunded. | Accept reward redemptions is off. | Turn on Accept reward redemptions. |
| song requests only work while the stream is live, your points were refunded. | Live only is on in the Channel points card and the stream is offline. | Go live, or turn off Live only. |
| type a song name or a Spotify link, your points were refunded. | The viewer redeemed the reward without typing a song. | Redeem again and type a song name or a Spotify link. |
| you are at your song limit for now, your points were refunded. | The viewer reached their limit. | Wait for a song to play. |
| the song queue is full, your points were refunded. | The queue has reached its size limit. | Wait for songs to play. |
| that track could not be queued, your points were refunded. | Spotify could not add that track. | Redeem again with another song. |
| @viewer you don't have a queued song to remove. | The viewer used !sr remove without a song in the queue. | Nothing to fix. The viewer can request a song first. |
| There is no song at position #N. | A moderator removed a position that is not in the queue. | Check the Queue card for the right position and try again. |
05Get help from an AI
Each stage of the setup has an Ask your AI for help button. It copies a prompt to your clipboard. The prompt names the stage you are on, includes the message the dashboard is showing, includes the Redirect URI, and contains a link to this guide. Paste it into ChatGPT, Claude or Gemini. Never paste your Client Secret into the chat. The AI does not need it.