Skip to content

Releases: xuange6610/SyncWatch

SyncWatch同步观影 v2.2.0

Choose a tag to compare

@xuange6610 xuange6610 released this 25 Aug 09:49
97491a8

SyncWatch同步观影 v2.2.0

和朋友、家人、情侣远程一起看电影。v2.2.0 聚焦登录安全、移动端可用性、媒体处理、公网访问可观测性和多端同步可靠性,并提供 Windows、Android、macOS 与浏览器客户端。

第一次使用服务器请用默认账号 admin、默认密码 admin888 登录,并立即修改默认密码。登录页的“一键填入”只减少首次输入,不会跳过认证或改密要求。

下载文件 版本标识 最适合谁 一句话说明
SyncWatch-Experience-Client-Portable-v2.2.0-x64.exe 体验版 Windows 普通成员 连接已有服务器,不在本机启动服务端
SyncWatch-Standard-Server-Portable-v2.2.0-x64.exe 标准版 Windows 房主 内置运行环境与 cloudflared,双击运行
SyncWatch-v2.2.0-Full-Offline-Installer-x64.exe 完整版 Windows 房主 安装向导与跨平台离线下载中心
SyncWatch-v2.2.0-Full-Offline-Portable-x64.exe 完整版 Windows 房主 无需安装的独立完整 EXE
SyncWatch-Android-v2.2.0-universal.apk Android 手机成员或房主 加入已有房间;受支持设备可运行局域网服务器
macOS Intel 完整版 DMG / ZIP 完整版 Intel Mac 房主 x64 服务器与跨平台离线下载中心
macOS Apple 芯片完整版 DMG / ZIP 完整版 Apple Silicon 房主 arm64 服务器与跨平台离线下载中心
cloudflared Windows x64 MSI / x86 MSI 公网工具 手工部署 Tunnel 的 Windows 用户 安装后运行 cloudflared --version
Node.js Windows x64 MSI / ARM64 MSI 开发环境 源码或独立服务器用户 正式 SyncWatch 桌面包已内置运行时,无需另装

v2.2.0 更新公告

这是从 v2.1.9 到 v2.2.0 的功能与可靠性更新。房间、同步播放、聊天、弹幕、语音、屏幕共享、权限、备份和数据目录继续兼容既有部署;下面只列出本版本真实发生的变化。

登录、账户与权限

  • 账号密码已填写但房间号留空时,会列出该账号可进入的房间,并允许选择已有房间或临时房间;提示可设置暂不提醒时长,也可在设置中关闭或重新开启。
  • 本机服务器登录页新增“本机免密进入管理中心”和“本机免密以 admin 进入所选房间”。两条入口都只接受直接 loopback、正确同源和服务器主机令牌,不把前端显示开关当作授权,也不会让公网访客绕过管理员密码;服务器设置可分别关闭它们。
  • 管理专用会话新增“退出管理登录”,会同时撤销服务端令牌、Cookie 与 Socket 会话,不再出现免密进入后无法退出。
  • 内置 admin 可设置最多同时登录会话数;超过上限时优先保留新会话与当前设置操作者,并撤销最久未活动会话。旧的“不限设备”配置会兼容迁移。
  • 游客权限收紧为普通成员基线:不能创建正式房间、申请建房额度或绕过房间游客策略;游客仍可在当前房间原地注册并迁移资料。
  • 默认管理员提示旁新增一键填入按钮;重置超级管理员密码入口移动到管理页面更靠上的安全区域。

房间、管理与通知

  • 超级管理员可在“扫描房间”结果中多选并删除房间,服务端重新校验权限和目标房间。
  • 服务器操作日志新增账户名/显示名模糊搜索,并可与类别、级别、关键字组合筛选;结果同时显示显示名和登录账号。
  • Windows 服务器会把申请、控制请求、权限变化、主题和重要账户事件同时发送为系统通知;点击通知可恢复并聚焦主窗口。
  • 关闭程序选择窗新增“打开新的服务器”,用独立数据目录和主机令牌启动新实例,当前服务器继续运行。
  • “通知/通告设置”新增位置状态通知和位置授权请求两个服务器级开关;关闭后服务端不再广播位置状态,也不会自动提示或允许管理员发起位置授权请求。
  • 账户权限等级和权限组的“新建 / 查看 / 编辑”改为独立主题窗口,支持保存、取消、右上角关闭和 Escape;扫描房间列表改为紧凑的选择、房间信息与加入按钮布局。

服务器网卡与公网访问

  • Windows 服务器默认监听全部本机网卡的 5000 端口;“系统 → 服务器启动设置”可选择首选局域网 IPv4,用于分享地址。网卡断开或 DHCP 地址失效时会安全回退自动选择,不破坏本机回环访问。
  • 启动设置补充公网根地址、反向代理、额外允许域名、端口优先级和防火墙教程;保存后自动重启生效。
  • 配置的公网根地址会在没有活动 Tunnel 时作为分享地址;临时 Tunnel 启动后优先使用已验证地址,停止后回落到配置地址。
  • 修复取消“绕过系统代理启动 cloudflared”后又被旧自动启动设置重新勾选的问题;启动请求现在把同一偏好部分保存到持久设置。
  • 家庭网络存在 VPN/TUN Fake-IP DNS、而物理网卡直连 Cloudflare 超时时,会优先尝试系统网络;某个连接器已注册但公网地址仍无法验证时,会自动切换下一策略,不再提前停在不可用地址。
  • 开启临时公网访问时显示横向悬浮进度:下载、预检、连接、验证、重试、已用时间和可计算的阶段剩余时间。关闭只隐藏提示,不会中止后台任务;只有地址实际验证成功才提示完成。
  • 顶栏实时显示当前局域网 IP:端口 与开放状态,并提供检查更新、项目主页、Latest 下载页和应用内下载中心;帮助菜单补齐作者主页、项目、下载和 Wiki 固定安全链接。
  • 服务器设置可为缺失的 Windows 服务器、Android 客户端、macOS 服务器和 macOS 客户端上传固定目标文件;服务端限制类型、架构、文件头、大小和目标路径,并用临时文件原子替换。

媒体上传与处理

  • 视频上传后默认进行 FFprobe 检测、缩略图生成和浏览器兼容处理,并在顶栏“处理进度”显示队列、进度、速度、已用时间和预计完成时间。
  • 兼容视频尽量直接复制 H.264 视频流和兼容音轨;只在编码、像素格式、分辨率或音频不兼容时重新编码,并按 CPU 预算限制并发线程,减少无意义的整片转码。
  • 修复“流畅版”对高码率 H.264 MP4 静默回退原片:超过 854×480 或平均码率超过约 1 Mbps 时也生成视频约 900 kbps、音频 96 kbps 的低带宽版本。
  • “处理进度”中的活动任务支持“强行停止”;停止后保留源文件和可审计状态,不会马上被队列自动重启。
  • 自动转换关闭路径:顶栏“处理进度” → 取消“上传完成后自动生成浏览器兼容版” → “立即应用”。关闭只影响后续自动转换,播放时仍可按需生成兼容版。
  • 修复上传完成后媒体卡片缩略图不显示;缺失缩略图会补建,输出格式统一为浏览器可显示格式。
  • 新增安全文本上传和同步阅读:支持 TXT、Markdown、日志、CSV/TSV、JSON/XML/YAML、配置文件等常见纯文本,自动识别 UTF-8、UTF-16 BOM 与 GBK/GB18030;连续滚动、页码和阅读位置可由有控制权限的成员同步给全房。服务器可在“房间与上传 → 上传限制”关闭文本上传,关闭后服务端也会强制拒绝。

播放与实时共享

  • 播放/暂停点击后立即更新图标,同时等待权威房间状态校准,减少按钮看似无响应。
  • 倍速命令不再附带强制跳转到旧时间点,修复高倍速下重复播放一小段内容的问题。
  • 客户端本地缓冲不足时暂停硬跳转和加速追赶,避免弱网下不断丢弃已下载 Range、长期停在“正在定位”。
  • 媒体请求进入 waiting/stalled 且连续 12 秒没有播放时间或缓冲增长时,会复用同一条最多 3 次的网络恢复链路;正常缓冲推进不会误触发重载。
  • 网页/屏幕共享修复首帧与二进制 JPEG 传播时序,停止共享后可恢复;已用两个独立窗口验证长网址共享和多端画面同步。
  • 播放器支持双击/双触进入全屏;全屏隐藏界面会同时隐藏底部进度条,再次双击可唤回聊天、表情和互动层。

Android 与界面

  • 登录、服务器管理、片库、成员、聊天、AI 聊天、API 端口配置、播放器和侧栏按窄屏重新排版,减少上下拥挤和横向溢出。
  • 手机点击资料卡改为全屏模态窗口,避免账户菜单挤压导航和下载入口。
  • 手机“观影”页下方恢复聊天、表情、互动与全屏操作;语音按钮缩小,展开与折叠状态有明确区别。
  • 修复片库侧栏层级覆盖模块导航导致“片库/成员”点击无反应的问题;所有侧边滚动条改为跟随当前主题的细滚动条。
  • “观影 / 片库 / 聊天 / 成员”四个模块入口改回普通文档流,随页面一起滚动,不再固定遮住播放器和工具。
  • 登录页自动登录勾选框降低高度,与文字基线对齐。
  • 手机 AI 工作台固定消息区与发送区的网格位置,会话操作压为单行、API 操作保持双列;长聊天记录限制在主题容器内滚动,发送栏始终紧随列表,不再需要滚过全部历史才能发消息。
  • Android 内嵌服务端补齐 Node.js Mobile 18 环境中的 UUID 与时间格式回退;停止前台服务后会退出失效的本机页面并清理保存地址。

文档、构建、测试与发布

  • package.json、Electron、独立服务器、Android versionName/versionCode、下载文件名、公开配置和帮助链接统一到 v2.2.0。
  • README、PRODUCT、DESIGN、架构、部署、排错、运行环境、云媒体、发布清单和 Wiki 镜像按当前代码同步;Pages 继续只作为静态展示与教程站。
  • Windows、macOS 与 Android 发布配置统一把正式成品输出到根目录 dist/;标准、体验、完整安装和完整便携版继续保持用途分层。
  • macOS 客户端、服务器和完整离线版由真实 macOS runner 构建 x64/arm64 DMG/ZIP;Windows runner 构建 4 个真实 EXE,并验证内置运行时、离线资源与隐私边界。
  • 贡献检查、核心集成、前后端契约、Electron 双窗口、Android 包闭包、媒体处理、Tunnel runtime、桌面发布与 Pages 检查按冻结源码执行。
  • 正式资产继续使用固定的 26 个维护者文件;GitHub 自动生成两个源码归档,页面共显示 28 个文件,不用占位文件、重复文件或旧包改名凑数。

与 v2.1.9 保持不变

  • 房间创建/加入、房间密码与人数限制、权威播放时钟、聊天/私聊/弹幕、语音、屏幕共享、好友、邮件、备份恢复和管理中心 11 个模块继续保留。
  • 默认数据目录仍为 SyncWatch同步观影-Data/;升级前应停止服务并备份整个目录,同一目录仍只允许一个实例写入。
  • Windows 体验版只连接已有服务器;标准版用于本机开服;完整安装版与完整便携 EXE 提供同等的跨平台离线下载资源。
  • GitHub Pages 仍是静态展示站,不能运行 Node.js、Socket.IO、上传、AI 中转或 Cloudflare Tunnel。
  • 项目继续采用 Apache-2.0,公开作者署名为 xuan;发布包不包含用户账号、聊天记录、真实 IP、令牌、签名密钥或运行数据。

验证记录

  • v2.2.0 annotated Tag 解引用到合并提交 97491a87eb548c25d4f87950ca449c8b9ad18826;发布分支与该提交的文件树一致。
  • 主分支 Contribution checks 32804177550 与 Pages 32804177566 成功;Windows 构建 32804971455 与 macOS 构建 32804313554 均从同一提交完成。
  • 12 个 macOS DMG/ZIP 由真实 macos-14 runner 分架构构建;4 个 Windows EXE 通过用途分层、内置运行环境、离线资源和包闭包检查。
  • Android 通用 APK 为 161,527,006 字节,SHA-256 为 69fa0ac54bf500db9bec553a64c514c7501db6217a82db11902237c0952ebc6c,包含 armeabi-v7aarm64-v8ax86_64 三种 ABI;最终 runner 解包检查与本地 apksigner v1/v2/v3、RSA-4096 签名验证通过。
  • GitHub Release 中的 26 个资产与本地 dist/ 对应文件逐项比对名称、字节数和 SHA-256,结果为 26/26 一致,总计 11,016,505,063 字节。
  • 两个源码归档由最终 Tag 直接生成,均包含与 Tag 树一致的 373 个文件;本地 dist/ 恰好为 28 个非空文件,总计 11,050,977,334 字节。
  • Playwright 覆盖 1440×900 桌面、390×844 手机、844×390 横屏与 Android WebView 模拟;家庭/公司网络对照覆盖 HTTPS、WebSocket/Polling、HTTP Range、共享和 40 次拖动。

真实 Android 手机安装、厂商后台保活和屏幕共享授权仍取决于设备与 ROM;当前没有小米 14/HyperOS 真机证据,因此不把这部分写成已通过。

普通用户怎么选

  • 只加入别人服务器:Windows 体验版、Android APK、macOS 客户端或浏览器。
  • Windows 自己开房:标准服务器便携版;需要跨平台离线下载时选完整安装版或完整便携 EXE。
  • Mac 自己开房:按 Intel x64 或 Apple Silicon arm64 选择服务器版;需要离线下载中心时选择完整离线版。
  • 源码/独立服务器:安装官方 Node.js 22+;正式 EXE 已内置运行时,无需另装。

跨平台完整套装

完整离线包把真实构建的 Windows 客户端、Android APK、macOS x64/arm64 客户端与服务器 ZIP 放入房主端下载中心。成员按设备下载对应文件;管理员可隐藏入口,但不会从包内删除文件。升级或迁移前请停止服务并备份完整的 SyncWatch同步观影-Data/

一键运行包含什么

Windows 正式服务器包内置 Electron/Node.js 运行时、应用前后端、生产依赖、Socket.IO、FFmpeg、FFprobe 和 Windows cloudflared。启动时会初始化数据目录、检查端口、启动 HTTP/WebSocket 服务并显示局域网地址。同一数据目录只允许一个实例写入;“打开新的服务器”会使用独立数据目录和主机令牌。

macOS

macOS 客户端、服务器和完整离线版均提供 Intel x64 与 Apple Silicon arm64:

这些包来自真实 macOS runner,但没有 Apple Developer ID 签名或公证。首次打开时可能需要在 Finder 中右键选择“打开”,或在“系统设置 → 隐私与安全性”中确认。

架构支持边界

  • Windows 桌面:x64;当前不提供未经完整验证的 32 位桌面组合。
  • Android 通用 APK:armeabi-v7aarm64-v8ax86_64
  • macOS:Intel x64 与 Apple Silicon arm64;现代 Electron/macOS 不提供 32 位桌面包。
  • 独立服...
Read more

SyncWatch同步观影 v2.1.9

Choose a tag to compare

@xuange6610 xuange6610 released this 20 Aug 09:59
84f92bb

和朋友、家人、情侣远程一起看电影。v2.1.9 提供 Windows 一键安装与便携运行、Android 通用 APK,以及由真实 macOS runner 构建的 Intel / Apple Silicon 客户端、服务器和完整离线包。

第一次使用请立即修改默认管理员密码,并先在局域网完成连接测试,再开启公网访问。

下载文件 版本标识 最适合谁 一句话说明
SyncWatch-Experience-Client-Portable-v2.1.9-x64.exe 体验版 Windows 普通成员 连接已有服务器,不在本机启动服务端
SyncWatch-Standard-Server-Portable-v2.1.9-x64.exe 标准版 不想安装的 Windows 房主 内置运行环境和 cloudflared,绿色便携运行
SyncWatch-v2.1.9-Full-Offline-Installer-x64.exe 完整版 需要离线全平台下载中心的 Windows 房主 安装向导、完整服务器运行时,并离线内嵌 Windows、Android 与 macOS 发布文件
SyncWatch-v2.1.9-Full-Offline-Portable-x64.exe 完整版 不想安装的 Windows 房主 独立 EXE,直接双击运行;功能和离线资源与安装完整版相同
macOS Intel 完整版 DMG / ZIP 完整版 Intel Mac 房主 x64 完整服务器、cloudflared 和全平台离线下载中心
macOS Apple 芯片完整版 DMG / ZIP 完整版 Apple Silicon 房主 arm64 完整服务器、cloudflared 和全平台离线下载中心
cloudflared Windows x64 MSI / x86 MSI 公网工具 需要手工安装 Tunnel 的 Windows 用户 双击 MSI 安装,不要双击命令行 EXE;安装后运行 cloudflared --version
Node.js Windows x64 MSI / Windows ARM64 MSI / macOS Intel PKG / macOS Apple 芯片包 开发环境 源码开发或独立服务器用户 安装后运行 node --version;正式 SyncWatch EXE 已内置运行环境,无需另装 Node.js

v2.1.9 更新公告

v2.1.9 是本项目当前最新版本,面向 Windows、Android、macOS 与独立服务器用户。此次发布重点更新超级管理员登录后的管理入口、统一 v 前缀版本规则,并重新构建和校验全部平台发布文件。

版本范围声明

本次是从 v2.1.8 到 v2.1.9 的兼容更新,不是重新定义产品。房间、同步播放、媒体上传、聊天、弹幕、语音、屏幕/网页共享、权限模型、数据目录和普通账号入房方式继续沿用 v2.1.8;已有账号、房间、媒体和配置不需要因为升级而重建。以下清单只记录实际发生的管理入口、版本、文档、构建和发布变化。

完整变更清单

1. 版本与兼容标识

  • 根目录 package.json2.1.8 更新为 2.1.9;Electron 服务器、独立客户端、独立服务器和公开配置均返回/显示 v2.1.9
  • Android versionName 更新为 2.1.9versionCode 更新为 20109;WebView User-Agent、手机服务器下载元数据和 APK 下载文件名同步更新。
  • 首次登录使用协议默认版本、发现服务广播版本、媒体管理导出 JSON、服务器 JSON/二进制备份文件名统一使用 2.1.9
  • Windows 安装版、Windows 便携完整版、体验版、标准版、客户端、服务端和独立服务器 ZIP 的文件名与构建契约统一为 v2.1.9;旧的 v2.1.8 文件不会被改名后继续冒充新包。
  • Git 标签、Release 标题/URL、发布分支和用户可见版本统一使用 vX.Y.Z;已经移除无 v 的重复标签。package.json 与 Android versionName 仍按工具链要求使用纯数字 SemVer。
  • 仓库、Pages、Wiki、Release 和下载入口统一使用当前 GitHub 地址 xuange6610/SyncWatch;仓库 slug 仍保持 SyncWatch,产品显示名称仍为 SyncWatch同步观影

2. 超级管理员登录流程

  • 服务器设备在登录页点击“超级管理员登录”并验证成功后,直接打开“管理中心 → 服务器设置”。
  • 管理专用会话继续显示登录页并隐藏观影主界面,不再先创建或进入临时房间,也不会写成下次启动的普通登录令牌。
  • 管理员可以先完成端口、局域网、公网、上传和权限策略设置,再主动进入房间;普通账号、游客和成员的登录入房流程保持不变。
  • 管理中心再次要求验证超级管理员时复用同一管理专用会话,减少重复跳转。

3. 页面、文档与交互

  • 增加浏览器回归断言,验证管理员成功登录后服务器设置为默认模块、登录页仍可见、观影主界面保持隐藏。
  • README、PRODUCT、DESIGN、管理中心教程、Wiki 镜像和生成的 HTML 教程同步到 v2.1.9 管理流程。
  • 账户、播放器、截图/3D 文档页和下载入口继续保持 v2.1.8 的界面基线;本版本没有恢复已经撤销的 UI 重构,也没有删除旧功能。

4. 发布与构建流程

  • Windows 和 macOS Release 工作流输入统一要求 vX.Y.Z;无 v 的输入会在构建开始时直接失败,避免再次产生重复标签或错误下载路径。
  • 历史 v2.1.7/v2.1.8 公告中的下载 URL 已修正为真实的 /releases/download/vX.Y.Z/ 路径。
  • Android 正式 APK 从 v2.1.9 源码重新构建和签名,工作流锁定其 SHA-256;Windows 和 macOS 应用包由对应平台 runner 从同一 v2.1.9 标签构建。
  • 正式发布仍执行 26 个维护者资产加两个 GitHub 源码归档的 28 文件门禁,禁止空文件、旧应用包改名和缺项发布。

5. 测试与验收

  • 核心集成测试、仓库规范、隐私、浏览器 UI、Electron、Android 源码/包契约和桌面发布契约均按 v2.1.9 重新执行。
  • Android 正式 APK 已通过 Gradle 构建、badging、签名、124 个生产 Node 包、36 个前端文件和三种 ABI 校验。
  • 当前工作站没有连接 Android 真机,因此不把小米 14/HyperOS 真机兼容写成已经通过;v2.1.8 的 Android 15 模拟器记录仅作为继承基线。

与 v2.1.8 保持不变

  • 同步播放权威时钟、房间密码/人数限制、成员与权限组、媒体审核/队列、聊天/私聊/弹幕、语音、屏幕共享、邮件验证、备份恢复和管理中心 11 个模块的业务规则不变。
  • 默认数据目录仍为 SyncWatch同步观影-Data/,升级仍需停止服务并备份整个目录;同一目录仍只允许一个实例写入。
  • Windows 服务器 EXE 仍内置 Node/Electron、FFmpeg、FFprobe 和 cloudflared;体验版仍只连接已有服务器,标准版仍用于 Windows 房主,完整版仍用于离线资源分发。
  • Android 仍不能在 APK 内直接运行 Windows/Linux 的 cloudflared;手机公网使用场景仍需连接已开启 Tunnel 的桌面、macOS、Linux 或云服务器。
  • Apache-2.0 许可证、xuan 署名、数据保护要求和外部贡献流程不变。

Android 版本与兼容性

  • Android versionName 已统一为 2.1.9versionCode20109
  • APK 使用 Node.js Mobile 18.20.4,并包含 SyncWatch 服务端运行所需的生产依赖和静态资源。
  • 通用 APK 已验证包含 arm64-v8aarmeabi-v7ax86_64 三种 ABI,可覆盖常见 ARM 手机、32 位 ARM 设备和 x86_64 模拟器。
  • 构建脚本会检查 APK badging、版本号、ABI、Node.js 运行时、生产包数量和前端资源,避免“能安装但缺少服务文件”的不完整包。
  • Android 本机服务支持本机访问以及同一 Wi-Fi/热点内的局域网访问;WebView 登录、房间、播放同步、聊天和原生屏幕共享桥接沿用同一套服务端协议。
  • v2.1.8 已验证的 Node.js Mobile 兼容处理、错误编号和局域网服务器能力继续沿用;v2.1.9 没有重新实现登录协议或宣称新的厂商兼容修复。
  • 本版本只同步 Android WebView User-Agent、手机服务器 APK 下载元数据、内嵌 APK 文件名、versionName/versionCode 和构建契约,避免手机端入口继续指向旧版本。
  • 本工作站没有连接 Android 真机或模拟器,不能把小米 14/HyperOS 的登录、后台保活和屏幕共享写成已验证;请按排错文档检查权限、电池优化、局域网地址和 HTTPS/Tunnel。

公网访问边界

Android APK 不内置也不执行 Windows/Linux 的 cloudflared 二进制。Cloudflare 官方没有一个可以安全、通用地直接嵌入 Android APK 的同等运行包,因此不能把手机本机 Tunnel 宣称为已支持。手机用户需要连接一台已经在 Windows、macOS、Linux 或云服务器上启动并开启 Cloudflare Tunnel 的 SyncWatch 服务器;该连接路径支持公网登录和同步观影。Android 本机仍可正常启动服务器并在局域网使用。

桌面与服务器更新

  • 源码、公共配置、Dockerfile、构建脚本、下载入口、GitHub Pages 与 Wiki 当前版本统一为 2.1.9
  • 统一替换残留的旧版本路径和文案,修复下载链接、运行时提示、备份文件名、发现服务广播和公开配置可能继续显示旧版本的问题。
  • 超级管理员在登录页完成验证后进入管理中心的“服务器设置”,登录页保持可见且不会先进入观影房间;管理员完成设置后再主动进入房间,普通用户流程不变。
  • 登录页顶部间距在桌面和窄屏规则中收紧,减少短屏打开时的空白;字段、按钮和主要业务布局保持原有结构。
  • 发布工作流现在只接受 vX.Y.Z 标签,并将同一标签作为 Windows/macOS 构建和下载输入,避免无 v 的重复标签和半成品下载路径。
  • Windows 工作流直接用 ASCII 标准文件名上传 Android APK,避免中文本地别名在 runner 上编码损坏后生成重复资产;Release 只保留 SyncWatch-Android-v2.1.9-universal.apk
  • Windows/macOS 构建流程保留平台架构边界:Windows 桌面发布包提供 x64;macOS 通过 GitHub Actions 的 macOS runner 构建 Intel x64 与 Apple Silicon arm64。现代 Electron/macOS 不提供可验证的 32 位桌面包,因此不上传虚假的 32 位文件。
  • 完整包、标准包、体验包、独立服务器包和运行时资产必须使用真实构建产物;禁止仅修改旧文件名冒充新版本。

验证记录

本次已通过:

node tests/integration.test.js
node tests/account-v205-backend.test.js
node tests/android-package.test.js --source-only
Android APK Gradle build: BUILD SUCCESSFUL
APK payload: 124 production Node.js packages, 36 public files, 3 native ABIs
APK signing: v1/v2/v3 verified
GitHub Actions: contribution checks and Pages deployment passed for the v2.1.9 source commit

上面的 APK 构建、签名、包内容和源码契约证据来自本次 v2.1.9 构建;本工作站没有 Android 真机或模拟器运行证据,因此不宣称已完成设备安装、登录、断线重连或小米 14/HyperOS 验证。

普通用户怎么选

体验版

  • 在线展示打开 GitHub Pages,查看真实界面、功能截图和逐步教程。它是静态展示,不运行真实服务器。
  • Windows 客户端下载体验版独立 EXE,适合成员连接已经运行的服务器,不在本机启动服务端。

标准版与完整版

  • Windows 标准服务器下载标准版独立 EXE,双击启动,无需安装 Git、Node.js 或 npm。
  • Windows 安装完整版下载安装程序,提供安装、卸载、桌面快捷方式、开始菜单和完整离线下载资源。
  • Windows 独立 EXE 完整版下载便携完整版,无需安装,放在普通文件夹后直接双击,功能和内嵌跨平台资源与安装完整版一致。
  • Android 完整 APK下载通用 APK,可加入房间,也可在受支持设备上运行手机服务器。

跨平台完整套装

完整版把已真实构建的离线下载资源放进 Windows/macOS 房主端。房主启动 SyncWatch 后,成员可以从登录页或账号菜单下载适合自己设备的文件:

  1. Windows 成员下载客户端 EXE。
  2. Android 成员下载通用 APK。
  3. Intel Mac 成员下载 x64 客户端。
  4. Apple Silicon Mac 成员下载 arm64 客户端。
  5. Mac 房主下载对应架构的服务器包。
  6. 临时公网访问优先使用服务器内置的 cloudflared;独立工具资产用于手工部署、诊断和修复。

管理中心的“通知/通告设置”可以隐藏 Windows、macOS、Android 和服务器下载按钮,但隐藏入口不会从完整版中删除文件。升级或迁移前请停止服务并备份完整的 SyncWatch同步观影-Data/

一键运行包含什么

Windows 正式服务器包内置 Electron/Node.js 运行时、应用前后端、生产依赖、Socket.IO、FFmpeg、FFprobe 和 Windows cloudflared。启动时会初始化数据目录、读取配置、检查端口、启动 HTTP/WebSocket 服务、显示局域网地址并打开应用窗口。

同一数据目录只允许一个实例写入。连续双击时,后启动的实例会提示已有进程,而不会创建两个服务器同时写数据。不同目录运行互不影响。

macOS

macOS 客户端、服务器和完整离线版均提供 Intel x64 与 Apple Silicon arm64:

Read more

SyncWatch同步观影 v2.1.8

Choose a tag to compare

@xuange6610 xuange6610 released this 19 Aug 18:05

和朋友、家人、情侣远程一起看电影。v2.1.8 提供 Windows 一键安装与便携运行、Android 通用 APK,以及由真实 macOS runner 构建的 Intel / Apple Silicon 客户端、服务器和完整离线包。

第一次使用请立即修改默认管理员密码,并先在局域网完成连接测试,再开启公网访问。

下载文件 版本标识 最适合谁 一句话说明
SyncWatch-Experience-Client-Portable-v2.1.8-x64.exe 体验版 Windows 普通成员 连接已有服务器,不在本机启动服务端
SyncWatch-Standard-Server-Portable-v2.1.8-x64.exe 标准版 不想安装的 Windows 房主 内置运行环境和 cloudflared,绿色便携运行
SyncWatch-v2.1.8-Full-Offline-Installer-x64.exe 完整版 需要离线全平台下载中心的 Windows 房主 安装向导、完整服务器运行时,并离线内嵌 Windows、Android 与 macOS 发布文件
SyncWatch-v2.1.8-Full-Offline-Portable-x64.exe 完整版 不想安装的 Windows 房主 独立 EXE,直接双击运行;功能和离线资源与安装完整版相同
macOS Intel 完整版 DMG / ZIP 完整版 Intel Mac 房主 x64 完整服务器、cloudflared 和全平台离线下载中心
macOS Apple 芯片完整版 DMG / ZIP 完整版 Apple Silicon 房主 arm64 完整服务器、cloudflared 和全平台离线下载中心
cloudflared Windows x64 MSI / x86 MSI 公网工具 需要手工安装 Tunnel 的 Windows 用户 双击 MSI 安装,不要双击命令行 EXE;安装后运行 cloudflared --version
Node.js Windows x64 MSI / Windows ARM64 MSI / macOS Intel PKG / macOS Apple 芯片包 开发环境 源码开发或独立服务器用户 安装后运行 node --version;正式 SyncWatch EXE 已内置运行环境,无需另装 Node.js

v2.1.8 更新公告

v2.1.8 是本项目当前最新版本,面向 Windows、Android、macOS 与独立服务器用户。此次发布重点解决版本标识不一致、Android 服务端构建与登录协议兼容性、发布包校验和文档入口不同步问题。

版本范围声明

本次是从 v2.1.7 到 v2.1.8 的兼容更新,不是重新定义产品。房间、同步播放、媒体上传、聊天、弹幕、语音、屏幕/网页共享、权限模型、数据目录、启动方式和主要页面结构继续沿用 v2.1.7;已有账号、房间、媒体和配置不需要因为升级而重建。以下清单只记录实际发生的修复、版本迁移、可访问性微调、构建流程和发布文件变化。

完整变更清单

1. 版本与兼容标识

  • 根目录 package.json2.1.7 更新为 2.1.8;Electron 服务器、独立客户端、独立服务器和公开配置均返回/显示 v2.1.8
  • Android versionName 更新为 2.1.8versionCode 更新为 20108;WebView User-Agent、手机服务器下载元数据和 APK 下载文件名同步更新。
  • 首次登录使用协议默认版本、发现服务广播版本、媒体管理导出 JSON、服务器 JSON/二进制备份文件名统一使用 2.1.8
  • Windows 安装版、Windows 便携完整版、体验版、标准版、客户端、服务端和独立服务器 ZIP 的文件名与构建契约统一为 v2.1.8;旧的 v2.1.7 文件不会被新构建覆盖后继续冒充新包。
  • 仓库、Pages、Wiki、Release 和下载入口统一使用当前 GitHub 地址 xuange6610/SyncWatch;仓库 slug 仍保持 SyncWatch,产品显示名称仍为 SyncWatch同步观影

2. Android 登录与错误诊断

  • 修复部分 Node.js Mobile 18 构建缺少 crypto.randomUUID 时,游客账号创建、登录审计或设备会话在服务端直接异常的问题;服务端现在使用符合 UUID v4 的 crypto.randomBytes 回退,桌面 Node/Electron 仍优先使用原生实现。
  • 修复 Node.js Mobile 18.20.4 未编译 Intl 时,成员进入/退出房间通知调用 Intl.DateTimeFormat 导致 guest-login 返回 SOCKET_EVENT_FAILED 的问题;服务端现在在 Intl 不可用时输出稳定的 YYYY/MM/DD HH:mm:ss 本地时间,并复用于媒体操作和播放申请提示。
  • 普通账号、游客、服务器管理员登录失败统一经过 loginErrorMessage(result),不再只显示“服务器处理请求失败”。
  • Socket 处理异常现在包含安全的 SOCKET_EVENT_FAILED、事件名和 SW-... 错误编号;客户端根据编号给出数据目录可写、设备时间、重新连接和联系管理员等处理建议。
  • 服务端日志保留完整堆栈并关联同一个错误编号,但不会把堆栈或敏感内容发送到 Android/Web 客户端。
  • 登录初始化网络异常会显示明确的连接失败信息和错误提示,不再显示没有行动指引的“正在自动重试”。

3. 页面与交互的兼容性微调

  • 短屏横向窗口中展开聊天时,播放器和聊天栏保持双列布局,避免移动端规则把聊天栏压到视频边缘。
  • 增强下拉框保留确定性的原生指示器,禁用状态仍可被辅助技术识别;不改变已有字段、选项或业务流程。
  • 账户、管理中心、播放器、截图/3D 文档页和下载入口的内容与主要导航保持 v2.1.7 结构;本版本没有新增“重新设计首页”或删除旧功能。

4. 发布与构建流程

  • Windows/macOS Actions 改为直接从 Cloudflare 官方 latest Release 获取匹配架构的 cloudflared,再执行体积检查;不再依赖当前 SyncWatch Release 中预先存在的同名工具资产。
  • Windows Release workflow 改为手动输入目标 tag 后执行,避免 Windows/macOS 完整包之间的跨平台资源依赖在 tag push 时并行触发,造成半成品 Release;Pages 和常规 CI 不受影响。
  • Windows Release runner 先构建并上传已签名 Android APK,再把真实 APK、Windows 客户端和 macOS ZIP 放入离线完整版;离线包验证会检查六个平台资源、最小体积和文件闭包。
  • Windows、macOS 和 Android 构建脚本、Electron Builder 配置、独立服务器打包脚本以及发布契约测试全部切换到 2.1.8,并禁止构建阶段隐式发布或把旧资产当作新资产。
  • 由于当前工作站为 Windows,macOS DMG/ZIP 只能以 macOS runner 实际产物为准;没有真实资产时,下载接口返回“尚未提供”,不会生成伪造链接。

5. 测试与验收

  • 更新前端、服务端、Android、独立服务器、macOS 下载、Tunnel、平台契约和 Release 文件名测试中的版本期望。
  • 新增普通账号登录错误编号和 SOCKET_EVENT_FAILED 的前端契约断言。
  • 新增 tests/android-node-compat.test.js,主动移除原生 crypto.randomUUID 和全局 Intl 后启动完整服务,并验证管理员、同房游客、成员退出通知和游客重新登录。
  • 在 Android 15 sdk_gphone64_x86_64 模拟器中安装签名 APK,真实启动 APK 内嵌 Node.js Mobile 服务,并通过 ADB 端口转发连接该服务验证管理员、同房游客和游客重连;测试后应用主进程与 syncwatch_server 进程均保持运行。

与 v2.1.7 保持不变

  • 同步播放权威时钟、房间密码/人数限制、成员与权限组、媒体审核/队列、聊天/私聊/弹幕、语音、屏幕共享、邮件验证、备份恢复和管理中心 11 个模块的业务规则不变。
  • 默认数据目录仍为 SyncWatch同步观影-Data/,升级仍需停止服务并备份整个目录;同一目录仍只允许一个实例写入。
  • Windows 服务器 EXE 仍内置 Node/Electron、FFmpeg、FFprobe 和 cloudflared;体验版仍只连接已有服务器,标准版仍用于 Windows 房主,完整版仍用于离线资源分发。
  • Android 仍不能在 APK 内直接运行 Windows/Linux 的 cloudflared;手机公网使用场景仍需连接已开启 Tunnel 的桌面、macOS、Linux 或云服务器。
  • Apache-2.0 许可证、xuan 署名、数据保护要求和外部贡献流程不变。

Android 登录错误修复

  • 普通账号登录此前直接显示服务端笼统的“服务器处理请求失败”,没有调用已有错误解析器;现在统一调用 loginErrorMessage(result)
  • 当服务端返回 SOCKET_EVENT_FAILED 时,安卓 WebView 与桌面网页都会显示事件名称、SW-... 错误编号、数据目录/设备时间/重新连接建议,并通过 toast 重复提示一次。
  • 服务端仍只向客户端发送安全错误编号,不泄露堆栈;真实异常继续写入服务器日志,管理员可按错误编号检索。
  • 登录初始化网络异常也改为明确的连接失败提示,不再显示“正在自动重试”但没有下一步的模糊文案。

登录修复验证记录

  • node tests/frontend-v205.test.js:通过,普通账号登录错误编号契约有效。
  • node tests/ui-layout.test.js:通过,顶部播报布局无回归。
  • node tests/android-package.test.js --source-only:通过,生产依赖与 Android 源代码契约完整。
  • node tests/integration.test.js:通过,54 项服务端/账户/房间/媒体/权限/同步集成检查全部通过。

Android 更新

  • Android versionName 已统一为 2.1.8versionCode20108
  • APK 使用 Node.js Mobile 18.20.4,并包含 SyncWatch 服务端运行所需的生产依赖和静态资源。
  • 通用 APK 已验证包含 arm64-v8aarmeabi-v7ax86_64 三种 ABI,可覆盖常见 ARM 手机、32 位 ARM 设备和 x86_64 模拟器。
  • 构建脚本会检查 APK badging、版本号、ABI、Node.js 运行时、生产包数量和前端资源,避免“能安装但缺少服务文件”的不完整包。
  • Android 本机服务支持本机访问以及同一 Wi-Fi/热点内的局域网访问;WebView 登录、房间、播放同步、聊天和原生屏幕共享桥接沿用同一套服务端协议。
  • 修正了 Android 运行时生成 mobile-index.js 时的 Unicode 用户名正则和 path-to-regexp 兼容补丁,避免部分账号或路由在手机端启动失败。
  • 修复 Socket 处理异常只返回笼统提示的问题:服务端日志现在带事件名和错误编号,客户端收到安全错误码,安卓登录失败时可将编号交给管理员定位;堆栈不会发送给客户端。
  • 修复 Windows PowerShell 构建脚本的 UTF-8 编码标记,避免中文 APK/客户端文件名在 Windows PowerShell 下变成乱码并导致旧版本文件未被覆盖。
  • 修复 Node.js Mobile 无 Intl 时登录后广播成员在线状态直接抛出 ReferenceError: Intl is not defined 的真实根因;此前仅补充 UUID 回退不足以解决该故障。

公网访问边界

Android APK 不内置也不执行 Windows/Linux 的 cloudflared 二进制。Cloudflare 官方没有一个可以安全、通用地直接嵌入 Android APK 的同等运行包,因此不能把手机本机 Tunnel 宣称为已支持。手机用户需要连接一台已经在 Windows、macOS、Linux 或云服务器上启动并开启 Cloudflare Tunnel 的 SyncWatch 服务器;该连接路径支持公网登录和同步观影。Android 本机仍可正常启动服务器并在局域网使用。

桌面与服务器更新

  • 源码、公共配置、Dockerfile、构建脚本、下载入口、GitHub Pages 与 Wiki 当前版本统一为 2.1.8
  • 修复旧版本硬编码 2.1.7 导致下载链接、运行时提示和发布说明显示旧版本的问题。
  • Windows/macOS 构建流程保留平台架构边界:Windows 桌面发布包提供 x64;macOS 通过 GitHub Actions 的 macOS runner 构建 Intel x64 与 Apple Silicon arm64。现代 Electron/macOS 不提供可验证的 32 位桌面包,因此不上传虚假的 32 位文件。
  • 完整包、标准包、体验包、独立服务器包和运行时资产必须使用真实构建产物;禁止仅修改旧文件名冒充新版本。

验证记录

本次已通过:

node tests/integration.test.js
node tests/account-v205-backend.test.js
node tests/android-package.test.js --source-only
Android APK Gradle build: BUILD SUCCESSFUL
APK payload: 124 production Node.js packages, 36 public files, 3 native ABIs
APK signing: v1/v2/v3 verified
Android 15 embedded server: admin login, guest login and guest reconnect passed
Android Logcat: 0 Intl/SOCKET_EVENT_FAILED/Node-exit/FATAL matches

本次已在 Android 15 模拟器中完成 APK 安装、手机服务器启动和登录协议实测。该证据覆盖 Node.js Mobile x86_64、WebView 宿主、管理员/游客登录、断开重连和进程存活;它不能替代小米 14/HyperOS 的通知权限、电池优化、后台保活和 ARM64 厂商 ROM 实机验证,因此发布说明不把厂商特有行为写成已经验证。

普通用户怎么选

体验版

  • 在线展示打开 GitHub Pages,查看真实界面、功能截图和逐步教程。它是静态展示,不运行真实服务器。
  • Windows 客户端下载体验版独立 EXE,适合成员连接已经运行的服务器,不在本机启动服务端。

标准版与完整版

  • Windows 标准服务器下载标准版独立 EXE,双击启动,无需安装 Git、Node.js 或 npm。
  • Windows 安装完整版下载安装程序,提供安装、卸载、桌面快捷方式、开始菜单和完整离线下载资源。
  • Windows 独立 EXE 完整版下载便携完整版,无需安装,放在普通文件夹后直接双击,功能和内嵌跨平台资源与安装完整版一致。
  • Android 完整 APK下载通用 APK,可加入房间,也可在受支持设备上运行手机服务器。

跨平台完整套装

完整版把已真实构建的离线下载资源放进 Windows/macOS 房主端。房主启动 SyncWatch 后,成员可以从登录页或账号菜单下载适合自己设备的文件:

  1. Windows 成员下载客户端 EXE。
  2. Android 成员下载通用 APK。
  3. Intel Mac 成员下载 x64 客户端。
  4. Apple Silicon Mac 成员下载 arm64 客户端。
  5. Mac 房主下载对应架构的服务器包。
  6. 临时公网访问优先使用服务器内置的 cloudflared;独立工具资产用于手工部署、诊断和修复。

管理中心的“通知/通告设置”可以隐藏 Windows、macOS、Android 和服务器下载按钮,但隐藏入口不会从完整版中删除文件。升级或迁移前请停止服务并备份完整的 SyncWatch同步观影-Data/

一键运行包含什么

Windows 正式服务器包内置 Electron/Node.js 运行时、应用前后端、生产依赖、Socket.IO、FFmpeg、FFprobe 和 Windows cloudflared。启动时会初始化数据目录、读取配置、检查端口...

Read more

SyncWatch同步观影 v2.1.7

Choose a tag to compare

@xuange6610 xuange6610 released this 19 Aug 06:14

和朋友、家人、情侣远程一起看电影。v2.1.7 提供 Windows 一键安装/便携运行、Android、独立服务器,以及由真实 macOS runner 构建的 Intel / Apple Silicon 包。

第一次使用请立即修改默认管理员密码,并先在局域网完成连接测试,再开启公网访问。

下载文件 版本标识 最适合谁 一句话说明
SyncWatch-Experience-Client-Portable-v2.1.7-x64.exe 体验版 Windows 普通成员 连接已有服务器,不在本机启动服务端
SyncWatch-Standard-Server-Portable-v2.1.7-x64.exe 标准版 不想安装的 Windows 房主 内置运行环境和 cloudflared,绿色便携运行
SyncWatch-v2.1.7-Full-Offline-Installer-x64.exe 完整版 需要离线全平台下载中心的 Windows 房主 安装向导、完整服务器运行时,并离线内嵌 Windows、Android 与 macOS 发布文件
SyncWatch-v2.1.7-Full-Offline-Portable-x64.exe 完整版 不想安装的 Windows 房主 独立 EXE,直接双击运行;功能和离线资源与安装完整版相同
macOS Intel 完整版 DMG / ZIP 完整版 Intel Mac 房主 x64 完整服务器、cloudflared 和全平台离线下载中心
macOS Apple 芯片完整版 DMG / ZIP 完整版 Apple Silicon 房主 arm64 完整服务器、cloudflared 和全平台离线下载中心
cloudflared Windows x64 MSI / x86 MSI 公网工具 需要手工安装 Tunnel 的 Windows 用户 双击 MSI 安装,不要双击命令行 EXE;安装后运行 cloudflared --version
Node.js Windows x64 MSI / Windows ARM64 MSI / macOS Intel PKG / macOS Apple 芯片包 开发环境 源码开发或独立服务器用户 安装后运行 node --version;正式 SyncWatch EXE 已内置运行环境,无需另装 Node.js

v2.1.7 更新公告

公网访问稳定性

  • 修复 Cloudflare 临时地址连续尝试三种连接方式仍超时的问题。原来的回退路径仍强制绕过系统代理,导致 VPN、TUN、PAC 或必须经过代理的家庭网络无法建立 Quick Tunnel。
  • 新增真正独立的系统网络回退策略:最后一次尝试恢复系统代理路由,不再把公网验证固定到物理网卡。
  • Node.js 网络探测新增 HTTP_PROXYHTTPS_PROXYALL_PROXY 支持;Electron 环境优先复用操作系统网络设置。
  • 公网 URL 验证与 cloudflared 边缘连接解耦,避免本地验证策略反过来阻断已经建立的 Tunnel。
  • 实际公网回归覆盖 HTTPS、双客户端、40 次连续拖动中止、地址稳定性、H.264 播放和共享画面。

Windows 三种发布版本

  • 体验版只保留加入现有服务器所需的 Windows 客户端,适合普通成员。
  • 标准版是绿色便携服务器,内置 Electron/Node.js 运行时、FFmpeg、FFprobe 和 cloudflared,下载后直接双击。
  • 完整版同时提供 Windows 安装 EXE、Windows 独立 EXE,以及 macOS Intel/Apple Silicon 的 DMG 和 ZIP;每一个都是超过 1 GB 的真实完整构建。
  • 每个完整版除当前平台的完整服务端和 cloudflared 外,还真实内嵌 Windows 客户端、Android 通用 APK、macOS Intel/Apple Silicon 的服务器和客户端 ZIP。
  • 房主启动任意完整版即可通过登录页或账号菜单向不同设备分发客户端,不需要临时再从 GitHub 拉取这些文件。
  • 新增离线资源清单和最小体积校验;缺少任意平台文件、文件异常偏小或安装包达到 GitHub 2 GiB 上限时,发布流程会直接失败。

打包与依赖完整性

  • 修复 Windows 标准版在源码环境可运行、但 Electron 打包后缺少 undici 生产依赖的问题。根因是 package.json 和 npm 锁文件已声明该依赖,但 pnpm-lock.yaml 的直接生产依赖清单未同步,Electron Builder 因此没有把它收入 app.asar
  • 同步 pnpm 锁文件并新增仓库契约测试,以后如果 undici@7.29.0 再次从直接生产依赖中丢失,CI 会在打包前直接报错。
  • 重新生成 Windows 标准版和体验版,并确认标准版 app.asar 实际包含 node_modules/undici,不仅检查源码依赖。
  • 成品回归实际启动 EXE,验证 HTTP 公开配置、Socket.IO polling、WebSocket、账号注册、创建房间、上传 H.264/AAC MP4 与选择播放的完整链路。
  • 修正 Windows GitHub Actions 的发布环境和顺序:新 Runner 先安装项目声明的 pnpm@11.9.0,再从当前 Release 下载并验证 cloudflared.exe;构建前扫描源码隐私字段,三档成品生成后再扫描发布文件。这同时避免 Electron Builder 因找不到 pnpm 报 No JSON content found 和在产物尚未存在时误报 no release artifacts found
  • Windows 三个本地构建步骤均显式使用 --publish never,确保只在产物收集后的 gh release upload 步骤需要 GitHub 凭证,不会在构建阶段因设置中无 GH_TOKEN 而失败。

下载入口管理

  • 管理中心的“通知/通告设置”新增“显示 Windows、Android 和 macOS 下载入口”。
  • 关闭后同时隐藏登录页和登录后的 Windows 客户端、Android 客户端、macOS 服务器、macOS 客户端入口,共八个按钮。
  • 设置持久保存到服务器,并通过 Socket.IO 实时同步给已在线用户;重新开启后无需重启服务器即可恢复。
  • 该设置只控制界面入口,不会删除完整版内嵌的离线文件。

文档与发布规范

  • 应用、协议、下载路由、备份文件名、Android、macOS、Windows 构建和测试统一升级为 2.1.7
  • README、GitHub Pages、发布文件地图、运行环境教程和 Wiki 源文档补充版本选择、离线完整版结构、cloudflared/Node.js 安装与常见错误。
  • Release 说明中的成品文件改为直接下载链接,并明确体验版、标准版、完整版的用途和边界。
  • 发布前继续执行隐私扫描,禁止发布包出现私人姓名;产品作者字段统一使用 xuan

普通用户怎么选

体验版

标准版与完整版

跨平台完整套装

完整版把各平台已经真实构建的安装文件作为离线下载资源装进 Windows EXE。它不会在 Windows 上运行 APK 或 macOS ZIP,而是让房主启动 SyncWatch 后,成员从登录页或账号菜单直接下载适合自己设备的文件:

  1. 房主下载 Windows/macOS 服务器包或独立服务器 ZIP。
  2. Windows 成员下载客户端 EXE。
  3. Android 成员下载通用 APK。
  4. Mac 成员按 Intel x64 / Apple Silicon arm64 下载客户端。
  5. 临时公网访问所需 cloudflared 已内置在正式服务器包,也提供独立工具供管理员手工部署。

内嵌资源包括 Windows 客户端、Android 通用 APK、macOS 服务器 x64/arm64 ZIP、macOS 客户端 x64/arm64 ZIP,以及服务器运行所需的 cloudflared。所有文件都是真实发布资产,不使用填充文件。管理员可在“管理中心 → 通知/通告设置”关闭“显示 Windows、Android 和 macOS 下载入口”,一次隐藏登录页和账号菜单中的全部平台下载按钮;关闭只隐藏入口,不删除离线文件。

一键运行包含什么

Windows 正式服务器包内置 Electron/Node.js 运行时、应用前后端、生产依赖、Socket.IO、FFmpeg、FFprobe 和 Windows cloudflared。启动时会初始化数据目录、读取配置、检测端口、启动 HTTP/WebSocket 服务、显示启动状态并打开 Electron 界面。

同一数据目录只允许一个实例写入。连续双击时会显示已运行实例的聚焦/安全退出操作,不会启动两个服务写坏数据。不同目录仍可运行互相隔离的服务器。

macOS

macOS 服务器/客户端各提供:

  • Intel 完整版:DMG / ZIP

  • Apple Silicon 完整版:DMG / ZIP

  • Intel 客户端:DMG / ZIP

  • Apple Silicon 客户端:DMG / ZIP

  • Intel 服务器:DMG / ZIP

  • Apple Silicon 服务器:DMG / ZIP

这些资产由 GitHub Actions 的真实 macos-14 runner 构建并检查文件大小、SHA-256 和隐私字段。现代 macOS 不支持 32 位应用,因此不会提供虚假的 macOS 32 位包。

架构支持边界

  • Windows 正式桌面包:x64。当前 Electron 41 和媒体工具发布链不提供可完整验证的 Windows 32 位组合。
  • Android:通用 APK 包含 armeabi-v7a(32 位)、arm64-v8ax86_64
  • macOS:Intel x64 与 Apple Silicon arm64;无现代 macOS 32 位。
  • 独立服务端:以 Node.js 22+ 对目标系统和架构的官方支持为准。

cloudflared 独立工具

cloudflared 是 Cloudflare Tunnel 连接器,把本机 HTTP、Socket.IO 和媒体 Range 请求转发成 HTTPS 公网入口。它不保存 SyncWatch 的账号或影片。完整服务器包优先使用内置文件;独立工具仅供手工部署、诊断或修复。

本次修复了“Cloudflare 临时地址接口连接超时”时三种策略实际都保持直连的问题。新版最后一次自动尝试会恢复系统网络/代理并取消物理网卡绑定。完整安装和排错步骤见 cloudflared 与 Node.js 教程

Node.js 官方环境包

Node.js 只用于源码开发和独立服务端,Windows 正式 EXE 不需要另装 Node.js。本 Release 附带 Node.js 24.19.0 官方包:

Read more

SyncWatch同步观影 v2.1.6

Choose a tag to compare

@xuange6610 xuange6610 released this 18 Aug 10:06

和朋友、家人、情侣远程一起看电影。v2.1.6 提供 Windows 一键安装/便携运行、Android、独立服务器,以及由真实 macOS runner 构建的 Intel / Apple Silicon 包。

第一次使用请立即修改默认管理员密码,并先在局域网完成连接测试,再开启公网访问。

普通用户怎么选

体验版

  • 在线展示:直接打开 GitHub Pages,查看真实界面、功能截图和逐步教程。它是静态展示,不运行真实服务器。
  • Windows 客户端SyncWatch-Client-Portable-v2.1.6-x64.exe。适合成员连接已经运行的服务器,不在本机启动服务端。

标准版

  • Windows 安装版SyncWatch-Server-Setup-v2.1.6-x64.exe。安装、卸载、桌面快捷方式、开始菜单和安装后启动。
  • Windows 绿色便携版SyncWatch-Server-Portable-v2.1.6-x64.exe。双击即用,不需要 Git、Node.js 或 npm。
  • Android 完整 APKSyncWatch-Android-v2.1.6-universal.apk。可加入房间;受支持设备可运行手机服务器。
  • 独立服务器 ZIPSyncWatch-Standalone-Server-v2.1.6.zip。适合 Node.js、Linux、Windows Server 或 Docker 长期部署。

跨平台完整套装

完整使用不是把 Windows、Android、macOS 运行时伪装进同一个 EXE,而是按设备下载本页对应资产:

  1. 房主下载 Windows/macOS 服务器包或独立服务器 ZIP。
  2. Windows 成员下载客户端 EXE。
  3. Android 成员下载通用 APK。
  4. Mac 成员按 Intel x64 / Apple Silicon arm64 下载客户端。
  5. 临时公网访问所需 cloudflared 已内置在正式服务器包,也提供独立工具供管理员手工部署。

不同系统有不同签名、CPU 架构和权限模型,不能互相替代。不会为了达到约 1 GB 人为填充无用文件。

一键运行包含什么

Windows 正式服务器包内置 Electron/Node.js 运行时、应用前后端、生产依赖、Socket.IO、FFmpeg、FFprobe 和 Windows cloudflared。启动时会初始化数据目录、读取配置、检测端口、启动 HTTP/WebSocket 服务、显示启动状态并打开 Electron 界面。

同一数据目录只允许一个实例写入。连续双击时会显示已运行实例的聚焦/安全退出操作,不会启动两个服务写坏数据。不同目录仍可运行互相隔离的服务器。

macOS

macOS 服务器/客户端各提供:

  • Intel 客户端:SyncWatch-Client-macOS-v2.1.6-x64.dmg / .zip
  • Apple Silicon 客户端:SyncWatch-Client-macOS-v2.1.6-arm64.dmg / .zip
  • Intel 服务器:SyncWatch-Server-macOS-v2.1.6-x64.dmg / .zip
  • Apple Silicon 服务器:SyncWatch-Server-macOS-v2.1.6-arm64.dmg / .zip

这些资产由 GitHub Actions 的真实 macos-14 runner 构建并检查文件大小、SHA-256 和隐私字段。现代 macOS 不支持 32 位应用,因此不会提供虚假的 macOS 32 位包。

架构支持边界

  • Windows 正式桌面包:x64。当前 Electron 41 和媒体工具发布链不提供可完整验证的 Windows 32 位组合。
  • Android:通用 APK 包含 armeabi-v7a(32 位)、arm64-v8ax86_64
  • macOS:Intel x64 与 Apple Silicon arm64;无现代 macOS 32 位。
  • 独立服务端:以 Node.js 22+ 对目标系统和架构的官方支持为准。

cloudflared 独立工具

  • cloudflared-windows-x64.exe
  • cloudflared-macos-x64
  • cloudflared-macos-arm64

cloudflared 是 Cloudflare Tunnel 连接器,把本机 HTTP、Socket.IO 和媒体 Range 请求转发成 HTTPS 公网入口。它不保存 SyncWatch 的账号或影片。完整服务器包优先使用内置文件;独立工具仅供手工部署、诊断或修复。

Node.js 官方环境包

Node.js 只用于源码开发和独立服务端,Windows 正式 EXE 不需要另装 Node.js。本 Release 附带 Node.js 24.19.0 官方包:

  • Windows x64 MSI
  • Windows arm64 MSI
  • macOS x64 PKG
  • macOS arm64 TAR.GZ

安装后使用 node --versionnpm --version 验证。来源为 nodejs.org,下载后请核对本页显示的 SHA-256。

首次启动

  1. 下载与你的平台和角色匹配的文件。
  2. 双击 Windows 安装版/便携版,或安装 Android/macOS 包。
  3. 使用 admin / admin888 首次登录。
  4. 立即修改管理员密码。
  5. 创建带密码的房间,上传合法媒体并等待分析。
  6. 先用同一 Wi-Fi 的第二台设备验证同步播放。
  7. 需要异地连接时再开启 Cloudflare Tunnel 或自己的 HTTPS 域名。
  8. 结束后停止 Tunnel,并备份整个 SyncWatch同步观影-Data/

完整教程:GitHub Pages · 仓库文档 · Wiki

安全与许可

本版本已通过仓库规范、隐私字段、桌面发布、Android 包、Cloudflared bundle 和核心集成检查。发布包未签署商业代码签名证书时,Windows/macOS 可能显示系统来源提示;请只从本 Release 下载并核对摘要。

SyncWatch同步观影按 Apache-2.0 开源。原创项目设计和本仓库原始实现由 xuan 完成。再发布必须保留许可证、NOTICE 和适用的原始署名,标注修改,不得把原始项目或少量修改虚假宣称为自己的原创作品。