Open Watch Party (OWP) lets people watch one title together even when each of them uses a different app. It is an open protocol, a free public relay and client SDKs for TypeScript, Dart, Kotlin and Swift.
Someone creates a room and shares its 6-character code. Everyone who joins plays their own copy of the title in their own app.
The relay holds the room's shared timeline. It sees the title and the playback position, but never a file or a stream. In each app, the SDK keeps the player on that timeline.
Your app supplies two pieces of code:
- A player adapter, which lets the SDK read and control your player.
- A resolver, which finds the user's own copy of the title the host picked.
| You are | Start here |
|---|---|
| An app developer | The integration guide, then the SDK for your language: TypeScript, Dart, Kotlin or Swift. The web example is a complete page, and owp-peer is a scripted participant for testing your app. |
| A relay operator | The relay guide and its self-hosting section. |
| Implementing OWP in another language | The protocol in SPEC.md, client behaviour in SDK.md, the test tables and the relay suite. |
| A contributor | CONTRIBUTING.md and, for automated contributors, AGENTS.md. |
| Path | What it is |
|---|---|
spec/ |
The protocol: SPEC.md (wire protocol and relay), SDK.md (client behaviour), JSON schemas and examples |
relay/ |
The relay, owp-relay, written in Go, with its Dockerfile and compose.yaml |
conformance/ |
The owp-conform relay suite, the test tables every SDK runs, and the owp-peer scripted participant |
sdk/typescript/ |
The TypeScript SDK, npm package openwatchparty |
sdk/dart/ |
The Dart SDK, pub.dev package openwatchparty |
sdk/kotlin/ |
The Kotlin Multiplatform SDK, Maven party.openwatch:openwatchparty |
sdk/swift/ |
The Swift SDK, SwiftPM product OpenWatchParty |
examples/web/ |
A web page with an HTML <video> player, built on the TypeScript SDK |
docs/ |
The integration guide, the terms of use and the privacy notice |
relays.json |
The public relay list |
website/ |
The https://openwatch.party site, built with VitePress |
Open-source apps may use the public relays for free, without asking. Any other app needs written permission first: write to [email protected]. The terms of use give the rules, and the privacy notice says what the relays keep.
Report vulnerabilities privately, as SECURITY.md describes. Don't open a public issue.
The repository is licensed under Apache-2.0.