https://github.com/graysoncadams/spicetify-jam-roundrobin
Spicetify extension for fair round-robin queue ordering in Spotify Jam sessions
https://github.com/graysoncadams/spicetify-jam-roundrobin
Last synced: 2 months ago
JSON representation
Spicetify extension for fair round-robin queue ordering in Spotify Jam sessions
- Host: GitHub
- URL: https://github.com/graysoncadams/spicetify-jam-roundrobin
- Owner: GraysonCAdams
- License: mit
- Created: 2026-03-20T03:56:52.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-03-25T03:13:52.000Z (3 months ago)
- Last Synced: 2026-03-26T09:03:25.432Z (3 months ago)
- Language: JavaScript
- Size: 20.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Spicetify Jam Round Robin
A [Spicetify](https://spicetify.app/) extension that enforces fair, round-robin queue ordering in Spotify Jam sessions. Each participant gets a turn before anyone goes twice.
## How it works
- Detects active Jam sessions via Spotify's `SocialConnectAPI`
- Reads the queue DOM to identify which user queued each track (via avatar matching)
- Automatically reorders the queue so participants alternate fairly
- Tracks play counts per member — if someone misses a turn, they get catch-up priority when they queue next
- Polls every 3 seconds and reorders on queue changes or song changes
## Install
1. Install [Spicetify](https://spicetify.app/docs/getting-started)
2. Copy `jam-roundrobin.js` to your Spicetify extensions folder:
```bash
cp jam-roundrobin.js ~/.config/spicetify/Extensions/
```
3. Register and apply:
```bash
spicetify config extensions jam-roundrobin.js
spicetify apply
```
## Usage
The extension auto-starts when Spotify loads. It activates when a Jam session with 2+ members is detected.
- **Toggle**: Profile menu → "Jam Round Robin"
- **Notifications**: Shows whose turn it is and when the queue is reordered
### Debug console
Open Spotify DevTools (`Cmd+Opt+I` / `Ctrl+Shift+I`) and use:
```js
__jamRR.getState() // session members, play counts, currently playing
__jamRR.getQueue() // annotated queue with ownership
__jamRR.enforceRoundRobin() // manually trigger reorder
```
## How fairness works
1. The currently playing track's owner is identified
2. Members are sorted by fewest tracks played (catch-up priority), then by rotation order after the current player
3. Queued tracks are interleaved following this priority
4. If a member has no tracks queued, their turn is skipped — but they get priority once they add something
## Requirements
- Spotify desktop app
- [Spicetify](https://spicetify.app/) v2.30+
- An active Spotify Jam session
## License
MIT