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. |