Watch Together
Like Netflix Party for every Browser and most of the Streaming Services ... and without the browser plugin :)
Support
Streaming Sites
Pretty much everything that uses a HTML5 video tag:
- Amazon Prime
- Netflix
- Disney+
- Youtube
- ...
Browsers
- Chrome
- Safari (even mobile!)
- Firefox
Installation
- clone this repo
- run
npm install
Start
- Create a file called
local.json
inconfig
- Adapt the configuration that is defined in
config/default.json
in this file (see node-config) - Run
npm start
- Access
http://my-custom-server:PORT
to get the bookmarklet - Execute the bookmarklet on your devices
Development and Contributions
- Fork the respository
- Run
npm install
- Run
npm run dev
to start the development environment - use
http://localhost:3000/example
to get an interactive example
Deployment
- Change the APP_ROOT in
docker-compose.yml
- Adapt the
Caddyfile
accordingly - Checkout the repo on your server and run
docker-compose up -d
Functionality
To syncronise videos between multiple clients a simple websocket client and server (relay) is used. A very simple bookmarklet injects the socket client into the streaming site. Each client generates a a random uuid that is used as a session identifier. The client that registers first with a new session id will run in operator mode. Every media control (play/pause/scrub) is pushed to the server and relayed to all other clients that registered for the same session id.