April 21Apr 21 Support thread for emby-watchpartySynchronized watch parties for Emby media servers — watch videos together with friends in real time, no guest Emby accounts needed.What is emby-watchparty?A self-hosted web app that sits in front of your Emby server and proxies HLS video streams to a group of viewers while keeping them synchronized. One person picks a video, everyone else joins with a 5-character party code in their browser, and play/pause/seek events propagate to every viewer in real time.Key featuresSecure proxy architecture: your Emby server stays on your internal network — only the watch party app needs to be reachable by guestsReal-time sync: play, pause, and seek events broadcast to every viewer instantly via WebSocketNo guest accounts: party members don't need Emby logins — they just need the party code and a browserSkip Intro overlay: uses Emby's chapter/intro data to show a skip button during intro segmentsAutoplay / binge mode: auto-queues the next episode when the current one ends, with a countdown and cancel optionQuality presets: 360p up to 1080p-high (10 Mbps)Native HLS subtitles: text subtitles served via the HLS manifest, image subtitles (PGS/VobSub) burned in automaticallyLive chat: built-in chat alongside the videoStatic session mode: optional single-party-always-open mode for small groupsWhy this existsEmby has a no built-in SyncPlay feature. Emby-Watchparty is for the case where you want to watch a movie with friends who don't have accounts on your server, they just open a URL and join. One Emby account (yours) proxies everything.Installation on UnraidInstall from Community Applications. The template has all the common config exposed:Required:Emby Server URL — e.g. http://192.168.1.100:8096Emby API Key — generate in Emby Dashboard > Advanced > API KeysEmby Username and Password — a dedicated Emby user for the app is recommendedOptional (advanced view):App Prefix (for reverse proxy deployments)Static Session Enabled / Static Session IDLog level, log file, log rotationHLS token validation, rate limiting, max users per partyNote: both the API key and the username/password are required. The API key is used for library browsing and admin calls, and the username/password obtain the session token Emby requires to serve HLS streams.Hardware requirementsThe watch party app itself is lightweight (Python + Flask + SocketIO) — what matters is your Emby server's transcoding hardware, since every user in the party triggers HLS transcoding.emby-watchparty forces Emby to re-encode every stream (not stream-copy) because HLS.js needs uniform segment durations to seek reliably. This means hardware encoding (QSV, NVENC, VAAPI) makes a big difference:Intel QuickSync (UHD 630 or newer iGPU): 4-6+ concurrent 1080p streams at ~10 W power drawNVIDIA NVENC (GTX 1660+): 3+ streams stock, 8-12+ with the community NVENC patchSoftware x264 (no hardware accel): 2-6 users depending on CPU — a 9900K handled 6 concurrent pathological 70 Mbit/s streams in testing, stable at 70CFull capacity numbers and deployment guides are in the project wiki.RequirementsAn Emby server reachable from this container (local network is fine, preferred actually)Emby Premiere for hardware-accelerated transcoding (Emby's own licensing requirement, not ours)The app port (default 5000) reachable by your guests — use Tailscale, ZeroTier, or a VPN if you can't port-forwardLinksProject: https://github.com/Oratorian/emby-watchpartyContainer image: ghcr.io/oratorian/emby-watchparty:latestUnraid template: https://github.com/Oratorian/unraid-templates/blob/main/emby-watchparty/emby-watchparty.xmlWiki (deployment guides, hardware planning, troubleshooting): https://github.com/Oratorian/emby-watchparty/wikiTechnical deep-dive on Emby's HLS quirks: Emby quirks we learned the hard wayBug reports: https://github.com/Oratorian/emby-watchparty/issuesDiscord (for community support): https://discord.gg/RWUpxq9xsASupport developmentIf the app has been useful, a small tip helps fund hardware and late-night reverse-engineering sessions:ko-fi.com/jedziahCurrent versionv1.6.4A 2.0 rewrite is in progress, moving to FastAPI + Vue 3 with per-user transcodes, but is not yet stable or released.Feedback welcomeIf you run into issues on Unraid specifically — template config, GPU passthrough quirks, networking — please post here. Wiki edits are open too (the wiki has an Unraid deployment page that I'd love to keep current with real user experience).Thanks for checking it out!
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.