Skip to content
aquilo.gg
Sign in
All docs
Rotation docs

Get up and running with Rotation

Cross-platform song requests + now-playing widget for OBS. Play through Spotify, or free with no accounts via YouTube or Apple Music (Cider).

Pick your music source

In Rotation settings → Music Source, choose how requests play. Spotify pushes to your Spotify queue (Premium). Free with no accounts: YouTube plays requests right inside the overlay (audio through your OBS browser source), and Apple Music plays through Cider. A free desktop Apple Music app that uses your own subscription; a "Test Cider connection" button confirms the link before you go live. Last.fm and YouTube Music (via YTMDesktop) are also supported for now-playing.

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?

Community live chat is the fastest way to get unstuck. Ask right on the community page, live help during streams.

Open the community