[{"data":1,"prerenderedAt":314},["ShallowReactive",2],{"blog-en-why-watch-parties-fall-out-of-sync":3},{"post":4,"hasTranslation":307},{"id":5,"title":6,"answer":7,"body":8,"date":301,"description":302,"draft":303,"extension":304,"kind":305,"meta":306,"navigation":307,"path":308,"seo":309,"sources":310,"stem":311,"updated":310,"weight":312,"__hash__":313},"blogEn\u002Fblog\u002Fwhy-watch-parties-fall-out-of-sync.md","Why watch parties fall out of sync, and what to do about it","Watch parties drift apart for five reasons: ad breaks that land per viewer, buffering on the slower connection, one person being on a different page or episode, a player quietly undoing a seek, and a sleeping browser service worker dropping the connection. A sync tool corrects the first two automatically by holding both sides within about 250 milliseconds and pausing when one side stalls for more than 700 milliseconds.",{"type":9,"value":10,"toc":291},"minimark",[11,15,18,23,30,36,42,48,54,57,61,64,98,101,105,205,213,217,220,229,233,236,271,275],[12,13,14],"p",{},"Everyone notices it the same way. You start together, everything is fine, and forty minutes later one of you laughs at something the other hasn't reached yet. The gap didn't appear at that moment — it accumulated, a few seconds at a time, from things neither of you did.",[12,16,17],{},"There are five causes. Knowing which one you have got is most of the fix.",[19,20,22],"h2",{"id":21},"the-five-causes","The five causes",[12,24,25,29],{},[26,27,28],"strong",{},"1. Ads land per viewer."," This is the big one on YouTube. Ad breaks are decided per viewer, so two people watching the same video get different breaks at different times. Each break is 15 to 30 seconds of drift, and they don't cancel out.",[12,31,32,35],{},[26,33,34],{},"2. Buffering is per connection."," The slower side stalls, the faster side carries on. Six seconds on hotel wifi is six seconds of gap that nothing closes by itself.",[12,37,38,41],{},[26,39,40],{},"3. You're not actually on the same thing."," A different episode, a different upload of the same film, a regional version with a different intro length. Everything looks synced in the panel while you watch two different timelines.",[12,43,44,47],{},[26,45,46],{},"4. The player undoes a seek."," Some players — particularly on streaming services — take a jump instruction and then move the playhead somewhere else: back to an ad marker, back to where their own resume point says you were. The sync happened; the player reversed it.",[12,49,50,53],{},[26,51,52],{},"5. The connection went quiet."," In Manifest V3, a Chrome extension's background service worker is allowed to sleep, and a sleeping worker means a dropped connection. The fix is structural rather than something you do: an alarm fires every minute to keep it awake.",[12,55,56],{},"Only the third one is anybody's fault, and it is the easiest to miss.",[19,58,60],{"id":59},"what-the-extension-corrects-by-itself","What the extension corrects by itself",[12,62,63],{},"Causes 1, 2 and 5 are handled while you watch:",[65,66,67,74,80,86,92],"ul",{},[68,69,70,73],"li",{},[26,71,72],{},"Position, once a second."," Each side reports where it is. If a gap opens, whoever is behind speeds up by 2 to 5 per cent until it closes — a change too small to hear. The target is under 250 milliseconds, and the drift indicator in the panel is green while you are there.",[68,75,76,79],{},[26,77,78],{},"A three-second countdown at the start",", so nobody is relying on reflexes to press play together.",[68,81,82,85],{},[26,83,84],{},"Ads are waited out"," on YouTube, JW Player and Video.js: while one person is in a break, the others pause; when everybody is through, everybody resumes.",[68,87,88,91],{},[26,89,90],{},"Buffering is waited out too."," If one side stalls for more than 700 milliseconds, the others pause and you continue together.",[68,93,94,97],{},[26,95,96],{},"Clock offsets are measured, not assumed."," Two computers rarely agree on the exact time, so the extension measures the difference on connect and re-checks every five minutes. Otherwise \"I'm at 01:12:04\" would mean two different moments.",[12,99,100],{},"That leaves the cases where the automatic correction can't help, because the problem isn't timing.",[19,102,104],{"id":103},"when-it-still-goes-wrong","When it still goes wrong",[106,107,108,124],"table",{},[109,110,111],"thead",{},[112,113,114,118,121],"tr",{},[115,116,117],"th",{},"Symptom",[115,119,120],{},"Likely cause",[115,122,123],{},"What to do",[125,126,127,139,150,161,172,183,194],"tbody",{},[112,128,129,133,136],{},[130,131,132],"td",{},"Drift grows steadily, never recovers",[130,134,135],{},"one side keeps buffering",[130,137,138],{},"Lower the video quality on the slow side. Rebuilding the room doesn't help — the bottleneck is bandwidth",[112,140,141,144,147],{},[130,142,143],{},"One person jumps ahead every few minutes",[130,145,146],{},"ads on a player we don't detect",[130,148,149],{},"Press \"Sync now\" after the break. Detection covers YouTube, JW Player and Video.js; not every player",[112,151,152,155,158],{},[130,153,154],{},"Everything reads as synced but you're at different points",[130,156,157],{},"different episode, upload or regional cut",[130,159,160],{},"Compare total durations. If they differ, you are not on the same video",[112,162,163,166,169],{},[130,164,165],{},"Sync works, then the playhead jumps back",[130,167,168],{},"the player undid the seek",[130,170,171],{},"Press sync again once the player has settled; if it repeats at the same spot, it is that site's resume logic, not the gap",[112,173,174,177,180],{},[130,175,176],{},"Panel says connected, nothing moves on the other side",[130,178,179],{},"the other person is on a different page",[130,181,182],{},"The panel offers \"Open the video\" — one click takes them there. Sync doesn't run until both are on the same page",[112,184,185,188,191],{},[130,186,187],{},"The sync button isn't on the video",[130,189,190],{},"no video element found yet, or it is in a frame that hasn't loaded",[130,192,193],{},"Start playback once, then reload the page. Players inside shadow DOM are found; a player that renders nothing until you click sometimes isn't there yet",[112,195,196,199,202],{},[130,197,198],{},"Someone's controls do nothing for the room",[130,200,201],{},"they're not the host",[130,203,204],{},"Only the host sets the page for the room. Playback control is shared; the page is not",[12,206,207,208,212],{},"Two situations that look like bugs and aren't: a person who joined late is ",[209,210,211],"em",{},"placed"," at the room's position rather than starting from zero, and someone the host removed cannot rejoin the same room — both are deliberate.",[19,214,216],{"id":215},"the-one-thing-that-never-works","The one thing that never works",[12,218,219],{},"Counting down together. Not because you are bad at it, but because the three of the five causes above that matter most have nothing to do with when you pressed play. This holds for any manual approach, including the \"pause on my mark\" convention people fall back on when a tool misbehaves — it re-synchronises you once, and the next ad break undoes it.",[12,221,222,223,228],{},"If you find yourself doing that repeatedly, you are treating the symptom. ",[224,225,227],"a",{"href":226},"\u002Fhow-it-works","How the timing model actually works"," covers the shared clock, the heartbeat and the drift correction in one piece.",[19,230,232],{"id":231},"what-no-sync-tool-can-fix","What no sync tool can fix",[12,234,235],{},"Being honest about this saves an evening of debugging:",[65,237,238,249,255,261],{},[68,239,240,243,244,248],{},[26,241,242],{},"Only one of you has access to the video."," No sync tool helps; you want screen sharing, and ",[224,245,247],{"href":246},"\u002Fblog\u002Fdiscord-screen-share-vs-synced-playback","what that costs in quality is here",".",[68,250,251,254],{},[26,252,253],{},"One person's connection can't carry the video at all."," Syncing two streams doesn't create bandwidth. Lower quality, or pick something lighter.",[68,256,257,260],{},[26,258,259],{},"The site plays several videos on one page"," — a player plus an autoplaying preview elsewhere on the page. Which one gets synced isn't always the one you mean.",[68,262,263,266,267,270],{},[26,264,265],{},"More than five people."," Rooms hold up to ",[268,269],"room-limit",{},", and that limit is a sync decision rather than a technical one: everyone's buffering and ad breaks affect the whole room, and past five, \"someone stalled, everyone waits\" happens too often to enjoy.",[19,272,274],{"id":273},"before-your-next-attempt","Before your next attempt",[12,276,277,278,281,282,286,287,248],{},"Both people on Chrome ",[279,280],"min-chrome",{}," or newer, both on the same page, both pressed the purple sync button once. After that the corrections above run on their own and the panel's drift indicator tells you where you stand. Where it works site by site is in ",[224,283,285],{"href":284},"\u002Fblog\u002Fwatch-party-which-services-work","this table",", and the rest of the questions are answered on the ",[224,288,290],{"href":289},"\u002Ffaq","FAQ",{"title":292,"searchDepth":293,"depth":293,"links":294},"",2,[295,296,297,298,299,300],{"id":21,"depth":293,"text":22},{"id":59,"depth":293,"text":60},{"id":103,"depth":293,"text":104},{"id":215,"depth":293,"text":216},{"id":231,"depth":293,"text":232},{"id":273,"depth":293,"text":274},"2026-09-16","Two people watching the same video drift apart for five specific reasons, and only one of them is anybody's fault. What causes each, what a sync tool can correct automatically, and a symptom-by-symptom list for the times it still goes wrong.",false,"md","guide",{},true,"\u002Fblog\u002Fwhy-watch-parties-fall-out-of-sync",{"title":6,"description":302},null,"blog\u002Fwhy-watch-parties-fall-out-of-sync",3,"v79EfdDLW-VQwVErW7euqk0omG7BgZ4xMlLAnDu-bxA",1790596348192]