Совместный просмотр YouTube, Rutube и VK Видео вдвоём.
CI
Один участник создаёт комнату и отправляет ссылку второму. Пауза, продолжение, перемотка и, где плеер это поддерживает, скорость воспроизведения синхронизируются почти сразу.
Synodic не передаёт и не хранит видео: сайт получает его через официальные
embed-плееры YouTube/Rutube/VK, а браузерное расширение работает с обычным
HTML5-<video> на выбранной вкладке. Сервер обменивается только состоянием
просмотра.
видеосервис → плеер 1 ↔ SynodicServe ↔ плеер 2 ← видеосервис
play · pause · seek · rate*
- комнаты на двух участников и приглашение по ссылке или коду;
- YouTube, Rutube и публичные VK Видео, включая приватные Rutube-ссылки с
p; - двусторонние play, pause и seek; playback rate — для YouTube/Rutube;
- восстановление снапшота после переподключения;
- коррекция дрейфа и повтор «проглоченных» плеером перемоток;
- явный жест «Смотреть вместе» для ограничений autoplay;
- необязательное Chrome-расширение для сайтов с доступным HTML5-видео;
- привязка расширения к одной явно выбранной вкладке и одному найденному видео;
- смешанный просмотр «расширение ↔ сайт» для YouTube, Rutube и VK Видео.
SynodicWeb/— статический фронтенд без сборщика;SynodicServe/— Node.js-сервер комнат, WebSocket-протокол и раздача фронтенда;SynodicExt/— MV3-расширение Chrome для синхронизации HTML5-видео на сторонних сайтах.
Для работы нужен собственный экземпляр SynodicServe. Разместите его на
доступном обоим участникам сервере и используйте его адрес для сайта
и расширения. Инструкции по Docker Compose и HTTPS находятся в
SynodicServe/README.md.
Нужен Node.js 18 или новее.
cd SynodicServe
npm ci
npm run devСайт будет доступен на http://localhost:8787. В другой вкладке терминала можно запустить полный smoke-тест комнат и синхронизации:
cd SynodicServe
npm run smokeВитрина постеров опциональна. Чтобы включить её, скопируйте
SynodicServe/.env.example в SynodicServe/.env и задайте TMDB_TOKEN.
Без токена интерфейс не показывает пустой блок.
Расширение не требует зависимостей: инструкции по загрузке unpacked-версии,
smoke-тесту и сборке ZIP находятся в SynodicExt/README.md.
- одна комната рассчитана на двух участников;
- DRM и закрытые плееры не обходятся;
- реклама внутри сторонних плееров не синхронизируется;
- голосовой связи и трансляции экрана нет.
Лицензия — MIT.