Skip to content

Compatibility

What works where — honestly.

We only mark something as supported when it has been verified. Everything else is labelled as unverified rather than promised.

What has actually been tested

Automated end-to-end tests (including real WebRTC media and DataChannel connections between two browser contexts) run in Chromium on desktop. Other browsers are expected to work where they implement the same standards, but they are marked as unverified until tested.
Feature support by browser
FeatureChrome / Edge (desktop)Firefox (desktop)Safari (macOS / iOS)Chrome (Android)
Host Watch Together (stream a local file)
Join Watch Together as guest
Camera & microphone
Multiplayer games
Quick Share — send
Quick Share — receive to disk (OPFS)

Supported Partially / not yet verified Not supported

Local video streaming

Hosting relies on HTMLMediaElement.captureStream(). Chromium-based browsers implement it. Firefox exposesmozCaptureStream(), which this site uses as a fallback (not yet verified end to end). Safari does not support capturing a stream from a video element, so Safari users can join but not host. The site checks this before you start and explains the reason instead of failing silently.

Video formats and codecs

  • Tested: WebM (VP8 video) in Chromium — used by the automated media test.
  • Expected to work in Chromium: MP4 with H.264 video and AAC audio, WebM with VP9/Opus.
  • May work: other containers your browser happens to play (for example MKV in some Chromium builds).
  • Will not work: DRM-protected files, and codecs your browser cannot decode (for example HEVC on many systems).

The guest never decodes the file itself — they receive a WebRTC stream (VP8/VP9/H.264 + Opus) negotiated between the two browsers.

Camera and microphone

Browsers only allow camera and microphone access on HTTPS (or localhost) and after you grant permission. If you deny it, or a device is unplugged, the movie keeps playing and the controls show what happened.

Networks, firewalls and TURN

WebRTC first tries a direct connection using STUN. Corporate firewalls, symmetric NAT and some mobile carriers block that. A TURN relay then forwards the encrypted traffic. Without a TURN server configured by the operator, connections between such networks fail and the page tells you so. Relayed connections add latency and cost the operator bandwidth.

File-transfer size and memory

  • The sender’s browser reads the file in 64 KiB chunks and never loads it fully into memory.
  • The recipient writes to the Origin Private File System where available (Chromium, recent Firefox and Safari) — limited by the browser’s storage quota, typically a share of free disk space.
  • Without OPFS the file is assembled in memory; keep files under a few hundred megabytes in that case.
  • The default per-link maximum is 4 GB (operator-configurable).

Keeping tabs open

  • Watch Together: if the creator closes the tab, the stream stops and playback pauses for the guest. The creator can return and re-select the file.
  • Quick Share: the sender must stay online until the recipient finishes. If either side disconnects, the transfer pauses; it resumes while both pages remain open and the link is still reserved for that recipient.
  • Games: state is stored on the server, so closing a tab is safe; reopen the room link to continue.

Links and expiry

  • Rooms expire after 12 hours without activity (configurable).
  • Share links expire after 24 hours (configurable), after a successful download, or when the sender cancels.
  • A failed or interrupted transfer does not consume the link.