Connect Spotify
- 1
Open aquilo.gg/rotation
Pick a profile name (any string, used to namespace your widget's config and OAuth tokens).
- 2
Sign in to Spotify
Spotify OAuth, read-only scope. Rotation can only see what's playing + add to your queue. It can't see your library, change devices, or pause playback.
- 3
Done
Track changes appear in real time. Widget auto-reconnects on token expiry.
OBS browser source
Each view (widget, now-playing, queue, moderator, config) has its own URL. Pick one, drop into OBS as a Browser Source.
- /widget
- The full widget, album art, title, progress bar, command ticker.
- /now-playing
- Just the now-playing pill, compact horizontal bar.
- /queue
- Visible up-next list, what viewers requested next.
- /moderator
- Mod panel, approve / skip / mute requests before they hit Spotify.
- /config
- Live preview + every toggle.
Append ?sync=<key> to any view URL. Rotation pulls config + tokens from the sync worker before reading localStorage. Two boxes (stream PC + OBS box) stay in lock-step.
Viewer commands
Cross-platform, these all work from Twitch, YouTube, TikTok, and Kick chat (bridged via Streamer.bot).
- !sr <track>
- Request a song. Mod queue gates approval before Spotify gets it.
- !sr <Spotify URL>
- Direct request, no fuzzy match. Pasting a track URL is fastest.
- !queue
- Show the up-next queue on-screen for ~6 seconds.
- !np
- Reply with what's currently playing.
- !skip
- Vote-skip, needs N viewers within a window (configurable).
- !fav
- Mark the current track as a favorite. Tracks favorited often get auto-requeued during auto-DJ idle.
Mod queue
Open /moderator in a browser tab while streaming. Every !sr arrives there first. Approve to push to Spotify, skip to drop without touching Spotify.
Settings → Trust List. Add Twitch / YouTube / TikTok handles to skip the manual approve step for those viewers, their !sr lands in Spotify directly.
URL params
Any preset can be overridden via URL. Drop a preset + flags into your OBS browser source URL and the widget loads with those settings, no config UI needed.
aquilo.gg/rotation/widget?preset=vertical&ticker=1&queue=0&lyrics=0- ?preset=
- vertical | square | minimal | album-hero | retro | neon
- ?ticker=0|1
- Command ticker on or off
- ?queue=0|1
- Visible up-next queue on or off
- ?lyrics=0|1
- Synced lyrics on or off
- ?profile=
- Use a specific config profile (defaults to 'default')
- ?sync=
- Pull config from the sync worker on boot, multi-machine setups
Branded themes
Branded variants, Synthwave, Aurora, Pixel, are free for everyone, along with the ability to publish your own theme to the marketplace.
- Apply: Config → Themes → pick → Save
- Customize: every color / font / radius / opacity is a CSS variable in the config UI
- Export: download a JSON; share with another streamer to apply with one click
Still stuck?
The Discord #support channel is the fastest way to get unstuck. Live help during streams.