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.