Watch Together 是运行在 Emby Server 内的双人同步观看插件。两位登录同一台 Emby Server 的用户可以在一个房间里一起观看同一视频,插件负责起播对齐、暂停/继续、明显的手动进度调整、主用户换集和有限的播放恢复。
本文面向 Emby Server 管理员和普通使用者。当前正式版为 v1.6.1.0,变化见发布说明。开发者和维护者请从开发者文档索引进入。
测试通道提供 v1.7.0.1 测试版,包含分页、视频信息与用户头像展示,并修正页面初始化、分页跳转和客户端下拉箭头,变化和测试重点见测试版说明。测试版使用“房间 / 创建与邀请 / 设置”三个页面,完整的真实双端功能验收仍在进行。
- 管理员可以创建两人房间并指定主用户;普通用户可以通过一次性邀请码创建自助房间。
- 两人打开同一视频后,插件会以主用户位置为基准完成暂停、定位和恢复播放。
- 主用户切换到下一集或其他视频时,参与者会先打开主用户当前视频,确认双方已打开同一视频后再重新对齐;参与者自行换片不会让主用户跟随。
- 播放中会同步明确的暂停/继续和明显的手动拖动,不会为了消除小幅差异而连续追赶跳转。
- 参与者会话短暂缺失时,插件按原用户、原会话和原视频保留有限恢复机会;持续明显漂移只会低频触发一次保守重新对齐。
- 管理页提供创建、加入、退出、暂停、继续、重新同步、删除、设置和脱敏诊断导出。
- 插件按 Emby Server 4.9 API 构建;实际宿主和客户端兼容性见客户端兼容性记录。本轮 Web 资源记录使用 Emby Web 4.10.0.40。
- 一个房间恰好两名参与者,双方必须登录同一台 Emby Server;不支持多人房间或跨服务器同步。
- 初始同步要求双方打开同一视频,并且客户端支持暂停、继续和拖动进度等远程控制。同步基于服务器会话快照,不保证每一帧完全相同。
- 不修改媒体库、转码设置或播放器客户端,也不依赖额外服务。
- 从项目的 GitHub Latest stable Release 下载
EmbyWatchTogether.zip。 - 停止 Emby Server,解压得到根目录下的
Emby.Plugins.WatchTogether.dll。 - 将 DLL 直接复制到 Emby Server 数据目录的
plugins目录,不要再套一层插件子目录。 - 启动或重启 Emby Server,进入 Dashboard → Plugins → Watch Together,确认设置页可以打开。
升级前建议保留旧 DLL 作为回滚备份。安装包是单 DLL 交付,不需要复制源码、NuGet 包或旁车进程。
- 管理员打开 Watch Together 页面,填写房间名称,选择两名用户并指定主用户。
- 让两名用户登录同一台 Emby Server,打开同一视频;必要时在房间卡片上点击“加入房间”。
- 等待页面显示“同步中”,看到提示后即可一起观看。
- 在“邀请一起观看”区域创建一次性邀请码。
- 立即把邀请码发给另一位已登录同一服务器的用户。
- 对方接受后,双方进入同一个自助房间,再分别打开同一视频。
邀请码有效期为 15 分钟且只能接受一次。服务器重启后未接受的邀请码会失效,需要重新创建。
- “暂离房间”停止参与同步,但保留房间成员关系,之后可以重新加入。
- “结束房间”解除双方的房间关系,之后才能加入或创建其他房间;不会删除媒体文件。
更新由 Emby 的“Watch Together 更新检查”计划任务处理。服务器启动后,可在 Dashboard → 计划任务 中调整运行时间、禁用任务或手动执行。插件配置页可以选择 stable 或 beta 通道;stable 使用 GitHub Latest,beta 会在公开 Releases 中从非 draft 的 stable 和 prerelease 里选择最高规范版本。
安装前会校验发布签名、文件大小、哈希、程序集名称和版本。安装成功后 Emby 会提示重启;重启完成前不要重复替换 DLL。可选 GitHub Token 只用于 beta 的 Releases API 查询,页面不会回显 Token,未配置时仍可使用匿名查询。
设置页的“播放停止行为”区域提供以下设置,默认均开启:
| 设置项 | 作用 |
|---|---|
| 停止或退出视频时暂停另一方 | 一方被持续确认停止后,暂停另一方 |
| 停止或退出视频时发送文字提示 | 同一停止状态确认后向另一方发送提示 |
| 同步操作时向播放端发送文字提示 | 在暂停、继续、进度调整、重新同步、加入、退出、视频不一致和同步完成时显示提示 |
这些设置由 Emby 保存,保存后在下一轮同步中生效。
- 页面一直显示等待:确认两人已加入、在线会话打开同一视频,并且客户端支持暂停、继续和拖动进度。
- 提示视频不一致:两端当前视频不同。重新让双方打开同一视频即可触发新的同步;主用户换片会由插件发起有限的换集流程。
- 显示同步未完成或没有跟随:等待一轮状态刷新,确认 Emby 能返回更新后的播放状态;必要时使用房间卡片上的“重新同步”。
- 频繁跳转:检查其他插件、客户端或遥控器是否在发送 Seek。插件不会进行连续追帧。
- 停止后没有暂停或提示:检查“播放停止行为”中的两个设置,以及目标客户端是否支持暂停和文字提示。
- 需要进一步定位:先查看房间状态和脱敏诊断 JSON,再把操作时间、房间状态、预期与实际结果交给维护者。不要提交 Token、完整服务器日志或包含账号信息的内容。
开发者和维护者需要的详细说明见技术文档。