直接使用
双击 Release 中的 SyncWatch-v2.4.4-Full-Offline-Portable-x64.exe。首次启动时,Windows 防火墙如有提示,请按实际网络允许访问。程序会在 EXE 同目录创建 SyncWatch同步观影-Data/,账号、设置、媒体、缩略图、字幕、语音、聊天、缓存和密钥全部保存在这里;把整个程序文件夹移动到另一台电脑或云服务器时,数据会随文件夹一起移动。
程序窗口打开后,从“系统 → 分享内网地址”分享链接。同一 Wi-Fi 或有线网络内的手机、平板、电脑、笔记本和电视浏览器均可访问。
首次设置
- 每个账户首次登录都要阅读并同意使用协议;同一协议版本接受后不会重复弹出。
- 服务器设备可在登录页直接选择“服务器超级管理员登录”,初始账号/密码是
admin/admin888。首次登录后可直接填写新密码与确认密码,也可点“暂不更改”先进入;系统会保留安全提醒。 - 普通用户可直接注册,注册时不要求房间号或房间密码;登录时房间号留空会先列出账号拥有或连接过的房间,用户可选择其中一个或进入退出即删除的临时房间。弹窗可暂停 1 小时、1 天、1 周、30 天或永久关闭,也可在账号菜单的“安全设置 → 登录房间提醒”重新开启。
- 公网访问可直接开启。建议先设置房间密码;服务器也可启用“要求所有房主为房间设置访问密码”策略,启用后未加密房间的房主会收到常驻提醒。
- 普通账号默认可上传 10 GB 视频;管理员可按权限等级和账号单独调整,值为
0表示不限。
新账号名和普通密码默认允许空格、标点、符号及 Unicode,不启用业务字符数限制;服务端仍拒绝空值,并保留用户名 1024 UTF-8 字节、密码 4096 UTF-8 字节的异常请求防护上限。管理员可在服务器设置中显式启用字符集和字符数范围,保存后注册、改密、找回密码与游客转正式账号使用同一策略。
账号是否允许多设备同时登录由管理员按账户设置;超级管理员默认不限设备、建房和上传。密码默认每 7 天要求修改一次,可在服务器设置中改为 0 天以关闭周期限制。密码仅保存 PBKDF2 哈希,管理员只能重置密码,不能查看原密码。
注册受限时可填写需要申请的账号数量。申请仍待处理时,可在同一设备按数量撤回一部分,剩余数量继续等待审批,也可全部撤回;内置 admin 能在“用户申请中心”单条或批量删除记录。账户管理只显示密码“未设置 / 已安全设置 / 待修改 / 已过期 / 最近更新时间”,不会显示明文或哈希;“重置为默认密码”会撤销现有登录,用户应立即按安全流程修改。
每个注册账号默认可以创建 1 个独立房间并设置房间名称、密码和人数上限。需要更多房间时,可在建房窗口提交额度申请,由服务器管理员审批或直接提高账号额度。普通成员首次加入有密码房间时输入密码,房主未改密码前再次进入会自动授权;超级管理员始终免输房间密码。各房间的成员、聊天、媒体、播放队列、同步进度、灯光和屏幕共享互相隔离。
登录和房间操作
普通用户
- 登录页会显示当前设备 IP,点击“复制”可发给服务器管理员核对注册限制。
- 没有账号时点击“立即注册”,两次密码框都可点击“显示”检查输入。
- 注册完成后可填写房间号、从“在线房间”下拉框选择、点击“新建房间”,也可把房间号留空进入临时房间;临时房间退出后自动删除,可由房主或管理员转为正式房间。
- 输入房间号后,下方会立即显示房间名称、当前人数、人数上限和是否需要密码。
- “查看我连接过和拥有的房间”需要验证账号密码,验证后可选择历史房间或自己拥有的房间进入。
- 勾选自动登录后,桌面客户端会记住会话;主动退出会立即清理在线状态,不会在房间里留下“正在重连”。
- “游客模式”只使用与普通房间成员相同的权限,不会因创建临时房间而变成房主;需要创建正式房间或申请建房额度时先注册账号。
房主
- 点击“新建房间”,填写名称、自定义房间号、可选房间密码和人数上限。
- 房主可在房主控制区点击“房间设置”,也可以从账户菜单“房间设置”或“我的房间”自有房间卡片进入;进入后管理中心只显示“房间与上传”“成员与权限组”“聊天与记录”三个模块。房主始终可以调整共享倍速;在“成员与权限组”中还可把“跳过片头和片尾设置”权限授予成员或权限组,再由获授权成员维护本房间的自动跳过规则。
- 上传文件或文件夹后,可在“转换进度”查看速度、已用时间和预计完成时间;需要兼容转换时服务器会自动处理。
- 主动退出房间时必须选择“关闭房间”“删除房间”或“只退出,不关闭房间”。掉线和意外退出不会关闭或删除房间。
- 主菜单提供明显的“解散房间”入口。删除房间会永久删除本房媒体、聊天、队列和记录,操作前会再次确认。
- 当前房主可在成员面板的房间号区域直接修改房间号,影片、聊天、队列、历史和在线会话会同步迁移。
超级管理员和服务器设备
- 服务器设备登录页可直接选择“服务器超级管理员登录”,填写账号和管理员密码。首次使用
admin888后直接设置新密码和确认密码。 - 验证成功后停留在管理中心服务器设置页,不填写房间号也不会先进入临时观影房间;只有管理员主动选择房间入口时才进入房间。
- 超级管理员不能被其他人移出,退出时会立即离线,不会保留重连占位。
- 管理中心可查看所有账号、设备、IP、在线会话、房间归属、成员、媒体占用、播放状态、权限、注册申请和建房额度申请。
- 所有房间支持全选和批量删除。恢复出厂和批量删除都要求手工输入“我已知道这个风险”,也可点击旁边的一键粘贴。
- 注册名额申请提醒可直接跳转到对应审批位置;批准后该 IP 获得一次额外注册名额。
- 未登录时也可打开顶栏“服务器设置”,直接输入超级管理员账号和密码验证;成功后验证框自动消失,登录页保持可见而观影主界面保持隐藏,管理员可直接修改服务器权限和策略。需要观影时再主动进入指定房间。
- 超级管理员可在“服务器设置 → 统一界面文案”编辑固定白名单文字,也可双击文案条目直接修改;支持 JSON 导入、导出和恢复默认。游客占用提示使用
login.guestIpOccupied,默认是“当前 IP 已有游客在线,请先退出后再进入”,保存后在线客户端实时更新,后续服务端拒绝消息也立即使用新文字。未知 key、HTML、脚本、选择器和 DOM 路径会被服务端拒绝。
播放、共享和通知操作
- 默认清晰度是“原画”。房主选择影片后,成员会按服务器时间同步播放、暂停、进度和音量。
- 选择 TXT、Markdown、JSON 等安全文本后,房主或控制权成员可以滚动、输入页码或使用上一页/下一页同步阅读小说。服务器广播当前文本
fileId、UTF-16 字符锚点、归一化位置、页码和 revision;成员优先定位同一字符所在行,再按本地窗口校准。晚加入、重连、窗口缩放或切换文件时使用最新权威状态,无控制权成员不能覆盖进度。 - 双击画面进入全屏;全屏后再次双击只呼出边看边聊和控制层,不触发播放/暂停。全屏按
F2或回车可直接呼出边看边聊并聚焦输入框,按L锁定或解锁画面操作;桌面可按F12切换观影全屏。全屏不弹普通通知、通告或对话框,只保留弹幕;退出后再处理待确认申请。 - “同步网址(各端独立浏览)”会把经过服务端校验的 HTTP/HTTPS URL 和 revision 保存为房间权威状态,晚加入或重连成员会恢复同一地址;但每端在沙箱 iframe 中独立加载,登录态、Cookie、地区、广告、跨域策略或网站禁止嵌入都可能造成差异,也不能跨域同步点击和滚动。需要所有人看到完全相同画面和主持人操作时,使用“实时共享网页画面”捕获浏览器标签页/窗口。
- 表情、文字、语音和公告都会显示发送者。房主、超级管理员和服务器设备可设置屏幕公告的字体、颜色、字号和停留时间。
- 顶栏“简洁模式”按账号隐藏片库、成员、公告、聊天和高级控制,只保留基础观影功能,并只接收进出房和进度调整通知。“仅聊天”过滤系统通报;弹幕设置可调整当前账号看到的颜色和字号。
- 退出应用窗口时可选择“最小化到托盘”“退出程序”“重新启动”“打开新的服务器”或“取消”。鼠标悬停或键盘聚焦哪个选项,哪个选项才高亮;选择退出会安全关闭本机服务并释放端口和数据目录锁。
主要功能
- 房主或有控制权限的成员同步播放、暂停、倍速和音量;快进/拖动由独立权限控制。房间可设置跳过片头片尾,且“跳过片头和片尾设置”是独立权限,房主/超级管理员默认拥有;房主可向指定成员发清晰度切换申请。
- 播放进度按服务器时钟校准,并根据房主真实播放/缓冲状态持续修正;“操作历史”记录房间设置、文件、队列、聊天和播放操作,可在数据未发生冲突时安全回溯。
- 浏览器阻止自动播放时,播放器中央会显示“点击继续同步播放”,点击后即可恢复。
- 全屏时双击画面呼出聊天、私聊、弹幕和退出按钮,不改变播放状态;浏览器缩放、低分辨率和低高度下操作区自身滚动,退出按钮保持可见。
- 视频库支持单文件、整个文件夹和上传中止,并保留文件夹层级;已审核媒体可批量加入队列,队列可全选批量删除,并继续使用房间当前播放模式。
- 支持 MP4、MKV、WebM 等视频文件;实际解码能力取决于访问设备的浏览器,跨设备观看优先使用 H.264/AAC 编码的 MP4。SRT、ASS、SSA、VTT 字幕会自动匹配同名影片并转换为浏览器字幕。
- 公共聊天、指定成员私聊、房主公告、语音和历史分页;聊天与语音保存在服务器,私聊仅双方可读取,单条语音最大 25 MB。本人可删除自己的消息,房主可删除指定消息、清空指定账号或清空本房间聊天。
- 好友系统支持离线申请、备注与分组、消息常驻提醒、单人/全局免打扰、拒绝好友申请、图片和表情、引用回复、单条/批量删除及送达/已读状态。好友可互相邀请或申请加入当前房间;只有对方批准或主动开启“好友免密加入我的房间”后才会免输房间密码。
- 服务器可维护统一屏蔽词,弹幕、房间聊天、私聊、好友文字和图片说明都会在服务端校验,并向发送者显示命中的词。
- 上传任务可折叠到后台继续处理。服务器默认在上传后自动补建缩略图并生成浏览器兼容版;“我的影片”和“媒体处理进度”会实时显示转换中、等待及已完成数量。关闭路径是顶栏“处理进度” → 取消“上传完成后自动生成浏览器兼容版” → “立即应用”。兼容转换默认同时运行 3 个任务,管理员可在 1-8 之间调整,并可直接打开转换文件目录。
- 顶栏“AI聊天”提供独立的对话、生图和视频工作台,可配置兼容 Responses API / Chat Completions 的 HTTPS 中转地址、模型与接口路径。API 密钥只保存在当前设备,服务端中转会限制请求频率、响应大小并阻止内网地址访问。
- 个人中心、SW 用户 ID、显示名字、邮箱、设备、安全设置、我的影片、收藏和观影历史;账户管理只显示密码状态和最近修改时间,不展示明文密码。被授予超级管理员的普通账号不强制改密,首次改默认密码只针对内置
admin。 - 网络波动提示、无限重连、后台恢复、延迟和同步百分比上报。后台页面不计入被节流的旧探测结果;超过 32 MiB 的媒体使用 8 MiB 有界 Range,播放无进展时最多渐进恢复 5 次,离线等待不消耗恢复次数。
- 同一 IP 已经注册时,注册页会显示申请注册名额入口;申请人可以撤回自己的未处理数量。登录次数过多时可在错误窗申请解除限制,内置
admin同意后可立即重试,未处理申请保留在用户申请中心。 - 关闭 Windows 窗口时,无论作为服务器还是客户端使用,都会选择“最小化到托盘”“退出程序”“重新启动”或“取消”;最小化后服务器与房间继续运行。
- 顶栏实时显示当前界面风格编号和名称;主题选择页同时显示每套风格的编号与名字。
- 房主、超级管理员和服务器设备可发送屏幕公告并设置字体、颜色、字号、停留时间和范围;表情和消息显示发送者。
- 默认清晰度为原画;全屏可切换横屏/竖屏并手动放大缩小,桌面、网页和 Android 支持悬浮播放/画中画。
- v2.3.1 纠正更新的桌面共享默认请求电脑原生分辨率、设备最高刷新率、极致画质和系统音频,开始后会显示系统实际授予的分辨率、FPS 和音频状态。观看端优先使用 WebRTC;连接失败或断开才回退到有界画面/音频帧。房间状态条显示共享者、媒体标题和进程名,停止后立即清空;手机或网页被自动播放策略拦截时点击“开启声音”。Android 10 及以上客户端仍使用系统 MediaProjection 原生投屏。浏览器、操作系统或受保护窗口可能降低帧率、拒绝声音或只允许共享画面,无法保证固定 240 FPS 或零延迟。
- 网页和 Android 手机端在竖屏使用“观影 / 聊天 / 片库 / 成员”四个至少 44px 高的入口,一次只展开一个主模块;四个入口随页面自然滚动,不会固定遮住下方内容。片库和成员以全宽抽屉打开,观影工具在小屏下重排为两列。顶栏“功能”使用不改变播放器高度的覆盖菜单,390px 起为三列,较窄手机为可滚动两列;点账号行会展开紧凑账号菜单,首行保留“退出登录,保留账号密码”和普通“退出登录”。前者清除会话后把本次账号密码恢复到登录表单,普通退出不保留。Android 按钮触控高度保持至少 48px。横屏保留播放器与聊天并排;功能项与 PC 端保持一致。
- 顶栏“下载 APK”会下载本 EXE 内置并经过签名校验的
SyncWatch-Android-v2.3.1-universal.apk。安装后输入服务器地址即可使用与网页端一致的房间、播放、聊天、上传、全屏和账户功能;普通客户端不显示服务器 LAN IP,公网分享只使用可信 HTTPS/Tunnel 地址。 - Electron 桌面端已配置系统屏幕/窗口选择器与捕获授权。Android APK 支持原生屏幕投放、文件多选、递归文件夹上传、上传中止、麦克风、下载和系统全屏;iPhone/iPad 浏览器目前不开放网页屏幕捕获,可观看共享或上传媒体同步播放。
公网访问
只有服务器桌面窗口能看到“公网访问”。
公网访问默认允许直接开启。服务器管理员可按需启用“要求所有房主为房间设置访问密码”:启用后,未设置密码的在线房主会收到常驻提醒,离线房主下次进入时收到提醒;房主完成设置前不能控制播放,但房间内其他成员不会被强制退出。策略关闭时不会强制房间密码。
- 临时模式:自动下载官方
cloudflared并生成trycloudflare.comHTTPS 地址,适合临时聚会测试;地址每次启动会变化。 - 稳定模式:填写 Cloudflare Tunnel 令牌和已绑定的 HTTPS 域名,适合长期使用。令牌只放入子进程环境,不写入配置文件。
若当前网络阻断 Cloudflare Tunnel 出站连接,界面会提示边缘尚未验证。新版会在预检发现“系统出口可用、物理直连不可用”时优先系统网络,并在公网地址验证失败时继续切换备用策略。使用 Clash/FlClash/VPN/TUN Fake-IP 时,如果浏览器可联网但勾选“绕过系统代理”后失败,请取消勾选再重试;仍失败时让 cloudflared.exe、api.trycloudflare.com、*.trycloudflare.com 和 *.argotunnel.com 走同一条可用代理规则,或改用固定 Tunnel/自有 HTTPS 域名。
公网链接可以打开但手机视频卡住时,选择“流畅版”并在“处理进度”确认转换已完成。新版会为超过 854×480 或平均码率超过约 1 Mbps 的视频生成约 480P 低带宽版本;播放器本地缓冲不足时暂停强制定位。仍无法推进时记录手机实测下载速度、服务器上行、Tunnel 连接策略、播放器 readyState/缓冲区和 Range 请求结果,再按故障手册排查。
独立服务器部署
独立服务器 ZIP 是源码部署辅助包,不属于正式 Release 固定 8 项资产。使用时解压后编辑 SyncWatch同步观影-Data/server-config.json,Windows 双击 start-server.cmd;Linux x64 执行 ./start-server.sh 或优先使用 Docker Compose。直接部署需要 Node.js 22 或更高版本,推荐 Node.js 24 LTS;Docker 镜像已自带 Node.js 24。
纯 Node.js 控制台不显示 Electron 的“系统 / 视图 / 帮助”顶部菜单。运行 node server-standalone.js --help 查看端口、可信代理和浏览器参数;添加 --open-browser 会在服务就绪后打开带主机令牌的私密管理页面。控制台启动摘要和 SyncWatch同步观影-Data/服务器运行信息.txt 会列出同一管理 URL、配置和数据路径。网页使用 F5 刷新、F11 全屏、Ctrl+0 重置缩放;项目主页和 Wiki 可从页面“关于”进入。
Windows Server、Linux、Docker Compose、自定义端口、安全组、域名 HTTPS、Nginx/Caddy WebSocket、内网穿透、QQ 邮箱找回、数据备份迁移和升级步骤,请阅读 服务器部署与使用教程。该教程也会随独立服务器 ZIP 一起打包。
服务器数据统一位于包根目录的 SyncWatch同步观影-Data/。停止服务后请整体复制服务器包目录,不能只复制 config.json;QQ 邮箱授权码还依赖 SyncWatch同步观影-Data/.secrets/mail.key。运行地址、房主入口和实际监听端口写入 SyncWatch同步观影-Data/服务器运行信息.txt。端口可在 SyncWatch同步观影-Data/server-config.json、PORT 环境变量或 --port 参数中设置,优先级依次为命令行、环境变量、配置文件。
数据与安全
通过“系统 → 打开数据目录”可定位数据;独立服务器则直接打开包根目录的 SyncWatch同步观影-Data/。重要文件包括:
config.json:账号哈希、多房间、权限、媒体、队列和操作历史配置。chat-history.jsonl:按房间隔离的聊天历史。secrets/admin-password.json:独立的超级管理员密码哈希。停止服务后删除整个secrets/会把admin账号和服务器管理员密码重置为admin888,下次启动会重新创建该文件。uploads/、thumbnails/、subtitles/、voice/、trash/:媒体数据及支持安全回溯的临时回收数据。聊天永久保存在服务器;删除的文件、语音及相关回溯数据保留 30 天,过期后自动清理。
不要删除 .secrets/、config.json 或 chat-history.jsonl;这些文件分别保存邮件加密密钥与主机令牌、账户/房间状态和聊天记录。只有在明确需要恢复 admin/admin888 时才删除非隐藏的 secrets/ 目录。cache/、logs/、crash-dumps/ 是桌面端可再生缓存,服务器迁移时可一并复制,也可以在服务停止后清理。
EXE 未使用商业代码签名证书,首次运行仍可能出现 SmartScreen;在取得可信 Authenticode 证书前不能保证所有杀毒软件不误报。v2.3.1 有体验版和完整便携版两个用途不同的 Windows EXE,请在 GitHub Releases 中按文件名核对各自的字节数和 SHA-256。
从源代码重新生成 EXE
环境要求:Windows x64、Node.js 24 LTS(包含 npm),以及 Android Studio JBR/JDK、Android SDK 35、Build Tools 35.0.0、已缓存的 Gradle 8.13 与 Android Gradle Plugin 8.11.1。首次准备依赖时需要网络;正式发布脚本会离线构建并校验签名 APK。
powershell -ExecutionPolicy Bypass -File .\build-windows.ps1脚本先执行接口、硬化、媒体、Electron、多窗口同步、公网隧道和成品契约,再使用现有发布密钥构建并验证 Android v2.3.1 APK。Windows 与 Android 正式构建产物必须由最终 Tag 源码直接生成到根目录 dist/,不会用空文件、旧包或改名文件补齐。
electron-pink.js:桌面入口、屏幕捕获、托盘和公网隧道生命周期。server/index.js:HTTP、Socket.IO、账号、聊天、权限、文件与同步状态。public/:完全本地化的响应式界面。mobile/:Android WebView 客户端、离线签名构建脚本及最终 APK;请妥善备份.keys,否则后续版本无法覆盖安装。tests/:接口、真实媒体、Electron 和隧道验收。- 技术架构与依赖说明:桌面端、服务端、前端、Android、数据、依赖版本、构建和测试的详细说明。
版权所有 © xuan


