Chrome extension · free · no account

The same video, at the same second, on separate computers.

One of you creates a room and shares the code; the other joins with it. The video starts and pauses at the same moment on both sides. It works on any page with a video; it isn't tied to one service.

Coming soon to the Chrome Web StoreHow it works →
Room codek7mq2xw4
people
2
latency
41 ms
drift
0.08 s
Two sides, one second
Setup

Three steps, one code

iwatchuwatchRoom code
Room codek7mq2xw4

Waiting for the other side…

  1. Create a room

    The extension generates an 8-character code, like k7mq2xw4. The letters l and o and the digits 0 and 1 are left out because they get confused.

  2. Send the code

    The other person picks “Join a room” and types it in. A wrong code doesn't open an empty room; it says “No such room”.

  3. Start together

    Press the purple button over the video. After a 3-second countdown both sides start at the same moment, from the same second.

Sync

They drift. It closes the gap.

Every second each side reports its position. For a gap between 50 ms and 1 second, the side that's behind speeds up by 2 to 5 percent; you can't hear it.

Beyond 1 second it seeks. If one side buffers for more than 700 ms, the other pauses too; they resume together.

The gap grows to 0.41 s, the side that is behind speeds up to 1.04×, and once the gap drops under 0.02 s the rate returns to normal.
Pause together
21:04:17.002  nabiz                      drift=0.312 kim=Uykulu Tilki age=38
21:04:17.004  durtme-basladi             drift=0.312 hiz=1.031
21:04:18.001  nabiz                      drift=0.281 kim=Uykulu Tilki age=41
21:04:19.003  nabiz                      drift=0.250 kim=Uykulu Tilki age=39
21:04:20.998  durtme-hizi                drift=0.187 hiz=1.020
21:04:30.412  durtme-bitti
Six lines from the “Copy log” output

HEARTBEAT_MS = 1000 · NUDGE_EXTRA 0.02–0.05 · SEEK_THRESHOLD_S = 1.0 · STALL_GRACE_MS = 700

More than play and pause

Ads

YouTube, JW Player and Video.js add a class to the player during ads; the extension polls for it every 400 ms. If you're in an ad, the other video waits. When both are done, both resume.

Ad on the other side

Chat, even in fullscreen

With the panel closed and the video in fullscreen, an incoming message shows at the bottom right of the video for 6 seconds. With the panel closed you also get a Chrome notification.

On any page

It hooks the page's video element, not a service. It finds players hidden inside shadow DOM too. If the host is on another page, the panel offers “Open the video”; sync waits until you're on the same page.

Video foundUse this tab

Diagnostics

If something's off: Settings › Copy log. When both sides paste theirs side by side, you can see which end the delay is on.

Senkron günlüğü  6.09.2026 21:04:31
oda=k7mq2xw4 ad=Neşeli Panda kimlik=3f9a2c durum=connected
sunucu=wss://watch.gulucan.com/ws rtt=41ms saatFarki=-12ms
sekme=Video başlığı (https://…)
Log header

Two honest limits

Side panel

Three numbers in the panel

people
how many are in the room.
latency
round trip to the server, in milliseconds. Nothing to do with the video; it's your distance to the server.
drift
seconds between you and the other side: green up to 0.25, amber up to 1, red above. At red it has already seeked.
people
2
latency
41 ms
drift
0.08 s
0.08 s · green
0.41 s · amber
1.30 s · red, seeked

Four of the questions people ask

Which sites does it work on? Does it work on Netflix?

It tries on any page with a video element: YouTube, Vimeo, Twitch, news sites, corporate players and players embedded inside shadow DOM included. DRM services (Netflix, Disney+, Prime Video) may restrict external control of the player; those haven't been tested yet, so we don't claim they work. This answer will be updated as they are tested.

Does the video go through your server?

No. Everyone watches in their own browser with their own account. Only small JSON messages pass through the server: position, play/pause, chat. The host's page URL is sent so the others can be offered “open the video”.

Do I need an account?

No. The extension gives you a random name like “Neşeli Panda”; change it if you like, it's stored on your device. No sign-up, e-mail or password.

Is it paid? Will there be a paid tier?

Free. Because the server doesn't carry video it's cheap to run: about 155 KB of memory per connection. No paid tier is planned.

All questions →

Open a room, send the code.

Coming soon to the Chrome Web StoreFree. No account. Chrome 116 or newer.