-
-
Notifications
You must be signed in to change notification settings - Fork 239
Listening Party
A Listening Party synchronizes playback between a host and one or more guests in real time, so everyone hears the same track at the same position. spotatui connects host and guests through a lightweight WebSocket relay.
Press Ctrl-p (the listening_party keybinding) to open the Party screen.
From the Party screen, start a party by pressing 1, h, or Enter. spotatui creates a room on the
relay and displays a 6-character party code. Share that code with the people you want to invite.
As the host:
- Your playback is broadcast to all guests (current track, position, and play/pause state).
- Press
cto toggle the control mode (see below). - Press
lto leave / close the party. The guests are notified that the room has closed.
From the Party screen, press 2 or j to enter the join flow:
- Type the 6-character code the host shared.
- Type a display name (up to 32 characters).
- Press
Enterto join.
Once joined, your playback follows the host. spotatui corrects drift automatically: if your position
diverges by more than ~3 seconds it re-seeks, compensating for network latency. Press l to leave.
| Mode | Behavior |
|---|---|
| Host only (default) | Only the host controls playback; guests receive sync updates. |
| Shared control | Guests can send playback commands (play/pause/next/previous/seek) to the host, who executes them and re-broadcasts the new state. |
The host switches modes with c on the Party screen.
On each sync the host sends: the track URI, current position (ms), play/pause state, and a timestamp used for latency compensation. Guests apply track changes, play/pause corrections, and position re-seeks based on that payload.
- Each participant controls their own Spotify playback, so everyone needs an active playback device. Native streaming (playing audio directly in spotatui) requires Spotify Premium β see Native Streaming.
- The default relay is
wss://spotatui-party.spotatui.workers.dev/ws. You can point spotatui at your own relay withrelay_server_urlinconfig.yml(see Configuration). - The party code is the only thing guests need; there is no account requirement to join.