私有化部署VideoTogether一起看视频

本文折腾始于 20229 月,但因为种种原因并未写完,最近,因为有朋友需要,又重新开始捡了起来,然而,我发现官方已经把私有化部署的相关文档删了,原因不得而知。

什么是 VideoTogether ?

VideoTogether 可以让你和你的家人、朋友一起在线看视频,无论相隔多远。软件支持在任何设备上都可使用,并支持所有的在线视频网站和本地视频。

前言

如果你使用官方服务,只要下载插件就可以,例如:

chrome 插件

edge 插件

其他平台(包括移动端)的插件安装,可以看官方的安装说明:https://videotogether.github.io/zh-cn/guide/install.html

但是这些插件是不能改地址的,所以,如果你是要自己部署服务,需要的不是官方插件,而是自定义插件

本文假设你已经安装了 Tampermonkey 插件,也就是我们常说的 油猴,地址:https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo

这个插件之前在 115网盘资源下载到群晖 一文使用过,相信爱折腾的人都不陌生

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 videotogether ,选择第一个 pigeonpig/videotogether,版本选择 latest

老苏折腾时,对应的版本是 0.3.32

容器名称

因为后续还有操作,为方便你能直接使用老苏的命令,建议将容器命名为 videotogether

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5088 5000

默认没有暴露端口

需要我们点 + 号自行添加

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
# 运行容器
docker run -d \
--restart unless-stopped \
--name videotogether \
-p 5088:5000 \
pigeonpig/videotogether

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
version: '3'

services:
videotogether:
image: pigeonpig/videotogether
container_name: videotogether
restart: unless-stopped
ports:
- 5088:5000

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 videotogether 目录
mkdir -p /volume2/docker/videotogether

# 进入目录
cd /volume2/docker/videotogether

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5088 就能看到主界面

老苏还以为出了什么问题,实际上正常就是这样,因为这只是个服务,并不需要在网页上做任何配置

设置

生成油猴脚本

这一步是借助容器内的运行环境,根据你自己的主机地址,生成响应的脚本代码

1
2
3
4
5
6
7
8
# 新建文件夹 videotogether
mkdir -p /volume2/docker/videotogether

# 进入 videotogether目录
cd /volume2/docker/videotogether

# 新建 release_host 文件
touch release_host

File Station 中编辑 release_host 文件,写入主机地址 http://192.168.0.197:5088

注意请勿换行!只填一个,如果公网使用请填写域名,有端口也要带上

1
2
3
4
5
6
7
8
# 将 release_host 拷入容器内
docker cp ./release_host videotogether:/app/source/extension/config

# 检查容器内部 host 是否正确
docker exec videotogether cat /app/source/extension/config/release_host

# 构建插件脚本 vt.user.js
docker exec videotogether python /app/script/build_extension.py

接下来打开生成的 vt.user.js 文件,考虑到容器内部不好操作,所以还是要将文件拷出来

1
2
# 将 vt.user.js 拷出容器
docker cp videotogether:/app/release/vt.user.js ./

在文件中搜索 video_together_host,可以看到我们前面设置的地址

新建油猴脚本

Chrome 浏览器上打开 油猴 插件,点 添加新脚本

会打开一个新的界面

video_together_host 的内容复制、粘贴到这里

直接保存,不要改任何东西,包括脚本的名字

共享本地视频

在保证房主和成员的设备上 都有同一份视频文件 时,打开官网的 本地视频 页面

地址:https://2gether.video/zh-cn/guide/local.html

接下来 选择文件,输入房间名和房间密码,点 建房

创建房间的就是房主,你可以把房间名和密码分享给你的朋友

成员只要安装了基于 油猴 的自定义插件,只要在任意一个有视频的页面,右下角就会有 Video Together 插件界面,只要输入房主给的房间名和密码后,点 加入 就可以进入到房间

加入成功后,首先会同步网页,但还需要自己打开文件,这里要注意,必须和房主打开的是同一个文件,所以看起来 Video Together服务应该只是同步了一下视频文件的时间戳

共享网络视频

老苏试了下 bilibili,随便打开个视频,建好房间分享就可以

成员加入房间后直接可以看,不像观看本地视频一样,还需要自己打开文件,相对更简单一些

参考文档

VideoTogether/VideoTogether: Watch video together on any platform / 一起看视频,兼容所有平台
地址:https://github.com/VideoTogether/VideoTogether

VideoTogether | 一起看视频
地址:https://videotogether.github.io/zh-cn/

【已失效】服务端私有部署 | VideoTogether
地址:https://videotogether.github.io/guide/deploy.html

搭配使用Alist和VideoTogether
地址:https://memos.shaneomo.top/m/13