VideoTogether is an MIT-licensed browser extension that synchronises video playback with friends in real time on Chrome, Edge, and Safari, and it is intended for people who want to watch the same video together from separate machines.
What it is
VideoTogether is a JavaScript browser extension distributed under the MIT licence. Its purpose is narrow and explicit: it keeps video playback in sync between friends in real time, and it does so on Chrome, Edge, and Safari. The project describes itself as compatible with all video platforms, so the extension is not tied to a single streaming site but is built to attach to the player already present in the page. Development is split in two: the extension itself and a companion service. The extension core lives in main/source/extension/vt.js, while the synchronisation service is written in Go and sits in source/go-server. The project publishes documentation at https://videotogether.github.io and directs users to https://2gether.video/ for installation guidance.
The concrete problem it solves is playback drift between viewers. Without a synchronisation layer, a group watching remotely has to coordinate manually — someone counts down, others press play on cue, and any pause, buffer stall, or seek puts everyone out of step again. VideoTogether takes that coordination out of the conversation by keeping play, pause, and position aligned through the extension and its supporting service. It lives in the browser-extension ecosystem, specifically the Chrome, Edge, and Safari extension platforms, and what it replaces is the manual timing agreement a group would otherwise have to maintain by hand for the whole duration of a video.
Key capabilities
- Syncs video playback with friends in real time, which is the project's stated single purpose.
- Runs as a browser extension on Chrome, Edge, and Safari.
- Targets all video platforms rather than one site, per the project's own description.
- Extension core code is
main/source/extension/vt.js.
- Built with a compile script at
script/build_extension.py, run as python script/build_extension.py, with output written to ./release.
- Companion synchronisation service is Go code in
source/go-server.
- Documentation is bilingual: the main README and a separate
README_zh.MD.
Who uses it and how
- Groups of friends watching the same video remotely, which is the scenario the extension is described for.
- Safari users, covered explicitly through the
safari-extension topic alongside browser-extension.
- Chrome and Edge users, named in the README as supported browsers alongside Safari.
- Developers working on the extension itself, who edit
main/source/extension/vt.js and rebuild through script/build_extension.py.
- Operators of the backend, who work in
source/go-server to run or modify the synchronisation service.
Getting started
Installation is not documented in the repository itself; the README directs users to https://2gether.video/ for the installation guide. Developers build the extension locally by running python script/build_extension.py, which writes the output to ./release.
How it compares
No paid products are named in the provided facts as alternatives this project replaces, and no comparable tools are named either. It therefore stands alone in this registry on the facts available.
When to use it — and when not to
A self-hoster takes on both halves of the system: the browser extension, built through the Python script into ./release, and the Go synchronisation service in source/go-server, which must run somewhere for real-time sync to work. Anyone expecting a fully documented deployment should note that the README is brief, that the installation guide lives off-repository at https://2gether.video/, and that the repository carries 18 open issues at the time of the last push in February 2026. The repository also does not describe database, storage, or mail requirements, so the operational surface of the Go service has to be established from the code rather than from the documentation.