YouTube Watch Together
Watch YouTube videos together in real time with friends.
Readme
What is synchronized video watching?
Synchronized video watching — often called "watch together" or "co-watching" — lets multiple people in different locations watch the same video at exactly the same playback position, in real time. Unlike simply sharing a link and pressing play at the same time, a synchronized session keeps everyone locked to the same timestamp even when someone pauses, seeks, or joins mid-video.
This is made possible by a central server that acts as the single source of truth for playback state. When any participant presses play, pause, or scrubs to a new position, that change is broadcast to every other participant immediately, and all players adjust to match. Network latency compensation ensures that viewers with slower connections still stay in sync rather than drifting apart over time.
Tool description
This tool lets you watch any YouTube video together with friends or colleagues in real time. It creates a shared room that anyone can join using a link. All playback controls — play, pause, and seeking — are synchronized across every participant in the room instantly. The tool shows live statistics including your connection latency and the maximum drift between participants, so you always know how closely everyone is in sync.
Features
- Instant room sharing — a shareable URL is generated automatically; anyone with the link joins the same synchronized session
- Real-time sync — play, pause, and seek events from any participant are broadcast to the whole room immediately, with latency compensation to keep playback positions aligned
- Live drift monitoring — displays your connection latency and the maximum playback drift between all viewers so you can see how tightly everyone is synchronized
How it works
Each room is managed by a server using the Colyseus real-time multiplayer framework. The server holds the authoritative playback state: whether the video is playing or paused, the current timestamp, and a version counter that increments on every state change.
When a participant interacts with the player (play, pause, seek), the command is sent to the server. The server updates its authoritative state and broadcasts the new state to all connected clients. Each client's player then reconciles its local position against the authoritative state, seeking or resuming as needed.
To compensate for network latency, the client estimates the "true" current server-side playback position by taking the last reported timestamp and adding the elapsed time since that report was received — similar to how NTP-based clocks extrapolate the current time between synchronization points.
Tips
- To start a session, simply open the tool — a room is created automatically and a shareable URL appears in the room panel on the right.
- Paste a YouTube video URL or video ID into the URL field and press Watch to load a video for everyone in the room.
- Share the URL shown in the room panel with anyone you want to watch with; they will join the same room automatically when they open the link.
- The Max drift stat shows the largest gap (in seconds) between any two participants' playback positions. A value under 2 seconds is normal; larger values may indicate a slow connection.