Skip to content

Latest commit

 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Логотип Synodic

Synodic

Совместный просмотр 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.

About

Совместный просмотр фильмов и сериалов вдвоём

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages