JellyWatchParty

JellyWatchParty Documentation

JellyWatchParty is a Jellyfin plugin that enables synchronized media playback across multiple clients. Watch movies and shows together with friends, no matter where they are.

Where to Start

  • Installation - All install options: Docker, Windows Server, and the Jellyfin plugin
  • Features - What JellyWatchParty does, compatibility, and the roadmap
  • Core Structure - How the plugin, session server, and web client fit together
  • User Guide - Creating and joining watch parties
  • Discord Bot - Optional: let linked Discord users run watch parties without an admin
  • Troubleshooting & FAQ - Common issues and questions

Contributing code instead? See Development Setup to get a local environment running with just up.


Glossary

Technical terms used throughout this documentation:

Term Full Name Description
HLS HTTP Live Streaming Adaptive streaming protocol that breaks video into small segments. Used by Jellyfin for transcoded content.
RTT Round-Trip Time Time for a message to travel from client to server and back. Displayed in the Watch Party panel as latency indicator.
EMA Exponential Moving Average Smoothing algorithm used for clock synchronization. Prevents sudden jumps in time offset.
JWT JSON Web Token Compact, URL-safe token format for authentication. Contains user identity claims signed with a secret key.
CORS Cross-Origin Resource Sharing Browser security mechanism controlling which websites can connect to the session server.
WebSocket - Full-duplex communication protocol over a single TCP connection. Used for real-time sync.
Drift - Difference between expected and actual playback position. Corrected by adjusting playback rate.
Host - The user who created the watch party room. Has exclusive control over playback.

Back to top

JellyWatchParty - Synchronized watch parties for Jellyfin