FrameSync - desktop-приложение для совместного просмотра фильмов с друзьями.
Программа создает временную комнату, синхронизирует воспроизведение между участниками и помогает всем смотреть один и тот же фильм в одном темпе. Хост выбирает torrent-файл или magnet-ссылку, а гости получают источник раздачи и запускают воспроизведение локально через собственный torrent-движок и внешний mpv-плеер.
FrameSync сделан для простого сценария: выбрать фильм, создать комнату, отправить invite-код друзьям и смотреть вместе. Приложение берет на себя синхронизацию паузы, перемотки, статусов готовности и базового общения в комнате.
Основная идея - не передавать видеопоток от хоста всем гостям, а синхронизировать локальное воспроизведение. Каждый участник скачивает и читает фильм у себя, поэтому просмотр не требует отдельного VPS или постоянного медиасервера.
- Комнаты для совместного просмотра без отдельного сервера.
- Передача гостям torrent-источника, а не видеопотока хоста.
- Локальный libtorrent-движок для каждого участника.
- Воспроизведение через mpv, поэтому дорожки, субтитры и поведение плеера остаются привычными.
- Синхронизация паузы, продолжения и позиции воспроизведения.
- Статусы участников: видно, кто подключен и кто готов к просмотру.
- Встроенный чат комнаты.
- Portable-сборка для Windows: приложение можно передать папкой, без установки.
- Отдельный
FrameSync Updater.exeрядом с основным приложением для обновления portable-версии. - Кэш хранится рядом с portable-приложением, его можно очистить вручную.
- При закрытии приложение спрашивает, нужно ли очистить кэш.
- Интерфейс автоматически выбирает русский или английский язык при первом запуске по языку системы.
FrameSync хорошо подходит для небольшого круга друзей, когда нужно быстро организовать совместный просмотр без настройки сервера, аккаунтов и сложной инфраструктуры.
Плюсы подхода:
- хосту не нужно отдавать всем полноценный видеопоток;
- гости используют свои локальные torrent-соединения;
- invite-код проще, чем ручная настройка сети;
- приложение можно держать на флешке, в облачной папке или просто отправить архивом;
- обновления можно получать через GitHub Releases и отдельный updater;
- пользователь сам контролирует кэш и может оставить скачанный фильм на потом.
- Хост выбирает
.torrentили magnet-ссылку. - FrameSync запускает локальный libtorrent-движок и готовит фильм к воспроизведению.
- Хост создает комнату и отправляет invite-код друзьям.
- Гости подключаются к комнате, получают torrent-источник и запускают свой локальный torrent-движок.
- Участники открывают фильм во внешнем mpv-плеере.
- FrameSync синхронизирует состояние просмотра между участниками.
FrameSync проверяет публичные GitHub Releases:
https://github.com/vBACARAv/framesync/releases/latest
Для обновления нужно публиковать release с тегом вида v0.1.3 и прикладывать ZIP-asset с portable-win-x64 в имени, например:
FrameSync-0.1.3-portable-win-x64.zip
Portable-папка содержит FrameSync Updater.exe рядом с FrameSync.exe. Updater проверяет последний release, скачивает ZIP, запускает служебный процесс замены файлов и сохраняет пользовательские данные:
user-dataFrameSyncCache
После обновления FrameSync нужно открыть вручную.
npm run dev
npm run lint
npm run test
npm run build
npm run build:portable
npm run build:portable:zipnpm run build:portable собирает portable-папку:
release/FrameSync-<version>-portable-win-x64
npm run build:portable:zip дополнительно создает ZIP для GitHub Releases:
release/FrameSync-<version>-portable-win-x64.zip
- Electron
- Vite
- React
- TypeScript
- Rust sidecar для libtorrent
- mpv
- electron-builder
Portable-сборки включают необходимые runtime-компоненты:
- mpv
- cloudflared
- libtorrent sidecar
- updater sidecar
Generated runtime folders, caches, logs, build output, and packaged releases are ignored by Git.
Если FrameSync оказался полезен, можно поддержать разработку:
- BTC:
bc1qzfekg8v39lfjn7eepwy2jkq6xvz9lgg9ekjd06 - ETH:
0xe48422AE1B65728Bc2F192112bAB5A601a4f11D3