重要声明:本仓库是基于 VideoTogether 的 fork, 仅修改房主(host)端代码。服务端、协议、成员端均未改动。
基于 VideoTogether 的房主端改造: 复用原版协议与公共服务器,成员端无需任何改动,装原版插件即可跟随。
- URL 批量导入:面板「播放列表」里粘贴多个视频 URL(每行一个,支持逗号/空格分隔),去重后存本地。
- 列表手动开始播放:每条 URL 有「播放」按钮,点击后房主页面跳到该 URL 并同步给成员。
- 自动播放下一个:当前视频播完(
ended事件)→ 房主跳到列表下一个 URL → 等待 → 自动播放。 - 手动设置人数:面板里填「总人数(含房主)」。当房间在线人数达到设定值且所有成员加载完成
(复用原版
waitForLoadding协议字段)时自动开始播放。
说明:房主自己的页面也会跟随跳转(跨站同样支持)。公共服务器仅作协议中转,播放列表全部存在房主浏览器本地。
# 依赖: python3, git
git clone https://github.com/VideoTogether/localvideo local # 构建依赖(不提交到仓库)
python3 build.py # 生成 release/
# 打包 Chrome 插件
rm -rf dist && mkdir -p dist/videotogether-playlist
cp chrome/manifest.json chrome/pre.js chrome/preInjected.js chrome/popup.html chrome/popup.js dist/videotogether-playlist/
cp -r chrome/icon dist/videotogether-playlist/
cp release/extension.chrome.user.js release/background.chrome.js dist/videotogether-playlist/
cp release/vt.en-us.user.js release/vt.zh-cn.user.js release/vt.ja-jp.user.js dist/videotogether-playlist/
cp release/load.js release/load.en-us.js release/load.zh-cn.js release/load.ja-jp.js dist/videotogether-playlist/
(cd dist && zip -r videotogether-playlist-chrome.zip videotogether-playlist)- 解压
dist/videotogether-playlist-chrome.zip - Chrome 打开
chrome://extensions(Edge 打开edge://extensions),开启「开发者模式」 - 「加载已解压的扩展程序」→ 选择解压出的
videotogether-playlist目录
- 房主:打开任意视频页面 → 面板建房 → 点「播放列表」→ 粘贴 URL 批量导入 → 填总人数 → 点某条「播放」。
- 成员:用原版 VideoTogether 插件加入同一房间(无需安装本改造版)。
- 房主端等待人数满足 → 加载完成 → 自动播放;视频结束后自动跳列表下一条并重复等待流程。
extension/html/pannel.html:播放列表面板 UIextension/vt.js:新增PlaylistManager(导入/状态机/自动切集/人数等待),在SyncMasterVideo、WS.onmessage、存储同步等处接线extension/localization/*.json:新增文案chrome/manifest.json:插件名/版本- 服务端与成员端:零改动
基于 VideoTogether(MIT License,Copyright (c) 2025 VideoTogether)。 本仓库同样遵循 MIT License,详见 LICENSE。