A shared "watch together" app: create or join a lobby, paste YouTube links, and everyone watches the same queue (mostly) in sync.
The lobby can run the playlist in various modes:
- Shuffle: Videos are randomly selected from the queue.
- Linear: Videos are played in the order they are added.
- Round Robin: Each user has a turn to have one of their submitted videos selected from the queue (if they have one), otherwise randomly selected.
Users can:
- Add videos
- Configurable per-user queue limit between 1 and 20 videos submitted to the active playlist queue.
- The same video cannot be re-submitted to the playlist for 1 hour since they were last played.
- Lobby maximum of 100 videos in the playlist
- Vote to skip the currently playing video, or Vote to mute a disruptive user for a cooldown period (30 minutes).
- Votes succeed after 30 seconds with simple majority ignoring non-voting users
- Votes succeed early if full lobby quorum majority is reached
Lobbies are in-memory and auto-expire after 1 hour of inactivity, with a maximum of 100 lobbies.
All assets are embedded in the binary so you can run it as a single executable (or via Docker).
make install-toolsmake buildProduces a stripped binary with minified CSS in ./bin/. Run it and open http://localhost:8080.
make build-devor
make runBuilds a development binary (with the race detector) in ./bin/.
Docker Compose configurations live under docker/. You can also use the Makefile targets below.
Add your tokens, keys, and configs to docker/.env (see: docker/.env.EXAMPLE)
make docker-build
make docker-up
make docker-down
make docker-logsmake docker-build-notunnel
make docker-up-notunnel
make docker-down-notunnel
make docker-logs-notunnelmake docker-clean