aquilo.gg
Sign in
All docs
Rotation docs

Get up and running with Rotation

Cross-platform song requests + Spotify now-playing widget for OBS. Bridged through Streamer.bot.

Connect Spotify

  1. 1

    Open aquilo.gg/rotation

    Pick a profile name (any string, used to namespace your widget's config and OAuth tokens).

  2. 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. 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.
Sync your config between machines

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.

Bulk-approve trusted viewers

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.

Open Discord