Turn any video into a watch party.
Watch videos together remotely. No account, tracking, or ads. Share a link and start together.
Free · Open source · No account needed
Live demo: press play in either tab and WatchUp keeps both in sync.


Use this if you see "Duplicate Identity" errors.
WatchUp Live Demo

Works on your favorite platforms
Why WatchUp?
Built for reliable sync, privacy-first design, and easy setup.

Movie Night with Friends
Sync your movies in real time and talk via Discord, Zoom, or your favorite voice call application. It feels just like sitting in the same room.

Remote Learning
Review tutorials, lectures, or training videos together. Pause and discuss complex steps as a group.

Long-Distance Relationships
Bridge the distance and enjoy date nights. Experience every plot twist, laugh at the same jokes, and share emotional moments at the exact same millisecond.
Features
Instant Invites / 1-Click Join
No IP addresses or passwords to exchange. Share a generated invite link with your friends to let them join your room automatically with a single click.
Volume Leveling / Audio Compressor
No more riding the volume knob. A built-in compressor lifts quiet dialogue and tames loud explosions, all processed locally in your browser.
Universal HTML5 Support
Netflix, YouTube, Twitch, Jellyfin, Emby and almost any page with an HTML5 video. Only sync signals leave your browser, never the video.

WatchUp vs. Teleparty
See why open source, ad-free and privacy-first is the superior way to watch together.
| Feature | WatchUp | Teleparty |
|---|---|---|
| Cost / Paywalls Premium subscriptions, hidden fees or locked features. | ✔ 100% Free | ✘ Paid Tiers / Premium Locks [1] |
| License / Code Auditable Whether the source code is open and freely auditable. | ✔ Open Source (MIT) | ✘ Proprietary [2] |
| Self-Hosting Ability to deploy your own private relay server. | ✔ Yes (Docker-ready) | ✘ No [2] |
| Privacy & Tracking Registration requirements, tracking cookies and analytics. | ✔ Zero-Persistence (RAM-only) | ✘ Google Analytics & Cookies [2] |
| Site Compatibility Supported websites and player compatibility. | ✔ Almost any HTML5 Video[3] | ✘ Supported sites only [1] |
| Localization / Translation Available interface languages and translation support. | ✔ 15 Languages (and growing) | ✘ English only |
| Audio Compressor / Volume Leveling Built-in audio normalization to balance quiet dialogue and loud effects | ✔ Yes (4 presets, dry/wet control) | ✘ No |
Comparison state: May 2026.
[1] Official Teleparty Premium pricing and supported networks details: teleparty.com/premium
[2] Teleparty privacy policies and tracking data collection: teleparty.com/privacy
[3] Works on websites that allow script injections into standard HTML5 video tags. Websites with highly strict Content Security Policies (CSP), DRM copy protection, or heavily obfuscated player wrappers (like complex shadow DOMs) might restrict automated control or injection.
Getting Started
Create & Share Room
Open the extension popup, create a room with one click, and share the link with your friends. They join instantly via the invitation bridge.

Select Video Tab
Go to your video tab and select the tab you want to synchronize in the popup. WatchUp automatically links your playheads from here.

Watch Together
Press play. Playback changes are shared with everyone in the room; network and player conditions can cause a brief delay.
For Self-Hosters
Don't trust our server? Maintain full data sovereignty. Deploy your own private relay server in minutes.

Show setup guide Hide setup guide
services:
koala-sync:
image: ghcr.io/shik3i/WatchUp:latest
container_name: WatchUp
restart: unless-stopped
environment:
TZ: Europe/Berlin
PORT: 3000
MIN_VERSION: 1.0.0
MAX_ROOMS: 100
MAX_PEERS_PER_ROOM: 25
# Required: replace before starting
SERVER_SALT: "REPLACE_WITH_OPENSSL_RAND_BASE64_32_OUTPUT"
# Optional: leave empty or replace with a 32+ character token
ADMIN_METRICS_TOKEN: ""
DEBUG_LOGGING: "0"
# Host Caddy reaches the relay only through this loopback binding
ports:
- "127.0.0.1:3000:3000"
pids_limit: 2048 watchup.fun {
root * /var/www/WatchUp/website/www
encode zstd gzip
# Clean URLs support (no .html required)
try_files {path} {path}.html {path}/
file_server
}
sync.watchup.fun {
reverse_proxy localhost:3000
} (security_headers) {
header {
# Enable HTTP Strict Transport Security (HSTS)
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
# Prevent clickjacking attacks (Sameorigin)
X-Frame-Options "SAMEORIGIN"
# Prevent MIME-sniffing
X-Content-Type-Options "nosniff"
# Enable browser XSS protection
X-XSS-Protection "1; mode=block"
# Control referrer information
Referrer-Policy "strict-origin-when-cross-origin"
# Hide Caddy server stamp signature
-Server
}
}
watchup.fun {
encode zstd gzip
root * /var/www/WatchUp/website/www
# Clean URLs: Resolves paths without .html in the URL
try_files {path} {path}.html {path}/
file_server
# Static Caching for high performance
@static {
file
path *.ico *.css *.js *.png *.svg *.webp *.avif
}
header @static Cache-Control "public, max-age=31536000, must-revalidate"
# Hardened Security & Permission Policies
import security_headers
header {
Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self'; img-src 'self' data:; object-src 'none'; frame-ancestors 'none'; base-uri 'none'; form-action 'none';"
Permissions-Policy "camera=(), microphone=(), geolocation=(), payment=(), usb=()"
}
}
sync.watchup.fun {
import security_headers
encode zstd gzip
reverse_proxy localhost:3000
} 
Frequently Asked Questions
Answers about supported sites, synchronization, privacy, chat and audio processing.
Show all questions Hide questions
Can I watch Netflix, Emby or Jellyfin together in sync with friends?
WatchUp works with many supported websites that use a standard browser video player, including Netflix, YouTube, Twitch, Emby, Jellyfin and self-hosted media servers. Compatibility depends on the website, browser and player and can change when a site updates.
Does WatchUp stream the video to my friends?
No. WatchUp does not stream, host, share, or bypass access to video content. Everyone watches the video locally in their own browser and needs their own access to the website or streaming service, such as their own Netflix account. WatchUp only synchronizes playback actions like play, pause, and seeking.
Is WatchUp a free alternative to Teleparty?
Yes. WatchUp is free and open source under the MIT License, with no premium tier, locked features, ads or required user account.
Does WatchUp work with Emby, Jellyfin and self-hosted media servers?
Yes. WatchUp supports many standard browser video players used by Emby, Jellyfin, Plex and custom self-hosted streaming setups. Compatibility depends on the player. You can also self-host the WatchUp relay server with Docker.
Which browsers and platforms support WatchUp?
Google Chrome, Mozilla Firefox, Microsoft Edge, Opera, Brave, and all Chromium-based browsers. Install it directly from the Chrome Web Store or Firefox Add-ons, no manual configuration needed.
Do all my friends need the extension installed?
Yes, each participant needs WatchUp installed, but there's no sign-up or account creation. Simply click the invitation link, install the extension if you haven't already, and you'll join the room automatically in seconds.
Is my data safe? What if I don't trust the official server?
The official WatchUp relay does not store room, sync, watch, or chat history in a database. Active room data exists temporarily in memory and is removed when the room becomes empty or expires after inactivity. Technical connection logs may be created for security and abuse prevention; their retention depends on the server configuration. Chat messages are end-to-end encrypted and are not stored as server-side history. You can also self-host the relay with Docker.
Can I fix quiet dialogue and loud explosions when watching videos in the browser?
Yes. WatchUp includes an audio compressor that reduces the difference between quiet and loud parts of a video. It runs locally through the Web Audio API, so audio data is not sent to the relay. Open the popup, create or join a room, then enable it under Settings → Audio Processing.

