Mat_

SAUF.chat

Group video calls with Spotify music synchronization

Peer-to-peer Video Chat

Video connections are made directly between your friends

Spotify Queue Synchronization

Listen to the same music at the same time

Peer-to-peer group video calls

Using WebRTC, video and audio connections are made directly between your friends. No video or audio data gets sent to my servers!

Listen to the same Spotify queue

SAUF.chat has built-in Spotify queue synchronization. Everybody can join the session, add tracks and listen to the same music at the same time.

Share link to join, no signups needed!

You don't have to create an account to use SAUF.chat! Simply create a new room and share the link with your friends to start a new call!

How it works

Video chat

The server has a list of all connected peers, that every peer has access to. When this list changes, the newly added peer will try to call all peers on the list using PeerJS.

Spotify Playback Sync

The main server keeps a queue of songs for every room that exists. When a new song is added to the queue, all peers in the room will receive the new song.

If a user has authenticated their Spotify, the web app will automatically sync the queue with their Spotify account. It does so by creating a playlist in their Spotify account ("SAUF.chat – Queue") and adding all songs in the queue to it. If tracks get added to the queue, the web app will automatically add them to the playlist.

The server then keeps track of when the playback was started and how long each song in the list is. That way, we don’t rely on play/pause events being passed to the respective clients for timing the playback correctly, but by having a deterministic playback structure.

By knowing the length of the songs and when the playlist was started, we can calculate where to skip to, should you join later. Actually playing the next song is done by Spotify tho, because we simply let it play the playlist.