打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

如何搭建个人影音中心,实现多人同步观影(OpenList+SyncTV)

来自md5.pw
Air留言 | 贡献2025年12月15日 (一) 19:30的版本 (修改内容)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

本章节将详细展示如何在搬瓦工 E-Commerce 或 E-Commerce SLA 系列 VPS 上搭建一个功能完备的个人影音中心。从而实现让你和朋友在网页上同步观看影视内容,并支持弹幕和语音交流。

要实现流畅的同步观影体验,特别是多人同时观看时,对服务器的网络质量要求极高。这正是搬瓦工 CN2 GIA/CMIN2 优化线路的巨大优势所在。本项目将充分利用其延迟稳定和高带宽,打造一个稳定可靠的多人影音中心。

本次教程主要步骤为: 搭建OpenList并对接夸克网盘 -> 安装 SyncTV -> 完成 SyncTV 与 Alist 的对接。

需要准备的事项:

1.拥有一台搬瓦工的服务器(参考教程);

2.服务器在运行,且安装了debian12系统(参考教程);

3.拥有一个可以对接OpenList的不限速网盘(例如88VIP夸克网盘,咸鱼10元可开一年);

4. SSH 连接工具已准备就绪(例如 Xshell)。

一、连接服务器并安装OpenList

OpenList是一个强大的文件列表程序,用于挂载各种主流的云存储服务,包括阿里网盘,115网盘,夸克网盘等。

1.SSH 连接与基础工具安装

使用 SSH 工具连接到您的搬瓦工服务器(推荐使用 Xshell 等工具,如果你是个人或家庭使用,可以下载Xshell:下载链接),

然后执行下方命令安装必要的工具。

apt-get install wget curl vim sudo unzip -y

2.安装OpenList

执行下面命令,安装OpenList,根据提示选择 1 进行安装,然后直接输入回车键安装。

curl -fsSL https://res.oplist.org/script/v4.sh > install-openlist-v4.sh && sudo bash install-openlist-v4.sh

安装完成后,保存好访问地址(公网)和账号密码。

二、登录OpenList并设置储存

接下来将登录OpenList,并通过获取cookie的方式,添加夸克网盘作为储存。

如果你使用115或者阿里网盘,操作也类似,可以参考官方文档,https://doc.oplist.org/

1.登录OpenList

访问刚才保存的公网地址,输入账号密码登录,为了安全起见,第一次登录后请务必修改默认账号和密码

2.添加OpenList储存

刚安装好的OpenList,是没有储存的,直接点转到储存到添加管理的后台。

点击添加按钮,在驱动列表中选择 夸克,输入你的挂载路径(也就是将来在主页显示的名字)

3.获取夸克网盘cookie

这一步我们先打开一个空白的网页,访问夸克网盘官网,https://pan.quark.cn/,扫码登录你的夸克网盘。

确保登录你的网盘后,按下F12或者SHIFT+Ctrl+I,进入开发模式,根据图示操作复制cookie并保存。

4.完成OpenList添加夸克储存

回到第2步的储存添加界面,把刚才保存的cookie复制进cookie这一栏中,然后保存。

到这里,夸克网盘的储存添加就已经完成了,访问你的夸克网盘地址,就可以看到网盘,以及网盘中的数据了。

三、安装SyncTV

SyncTV是让您可以和其他人远程一起观看电影和直播的开源程序,它能提供了同步观影官能,并且支持直播、聊天、弹幕等功能。

1.使用一键脚本安装

运行下方的一键脚本,安装SyncTV,这里默认不会输出登录和用信息。

sudo -v ; curl -fsSL https://raw.githubusercontent.com/synctv-org/synctv/main/script/install.sh | sudo bash -s -- -v latest

2.启动并设置自启动

执行以下两个命令,确保SyncTV启动,并设置开机自启动。

systemctl start synctv.service
systemctl enable synctv.service

四、调试SyncTV并对接OpenList

SyncTV默认情况下是未对接储存程序的,这部分将演示如何对接OpenList,并实现多人同步观影。

1.登录SyncTV

SyncTV 默认访问地址和登录信息如下:

访问地址你的ip:8080
默认账号root
初始密码root

注意:登录后请及时修改默认用户名和密码。

2.SyncTV对接OpenList

登录后,根据图示操作,完成OpenList的绑定。

对接成功后,会显示如下。

3.添加用户

因为SyncTV是一个同步观影程序,一个人看没有意义,所以先添加一个用户。

4.创建房间

在SyncTV主页顶部的菜单栏(如果浏览器显示过窄,则在右侧侧边栏)创建房间。

5.添加影片

创建好房间后,我们可以添加影片了,根据如下操作可以添加

6.加入房间

如果你刚创建了房间,那么其他用户访问SyncTV主页后,可以看到房间并加入。

7.共同观影

观影时,房主暂停或跳转视频进度,观看者的视频也会同步暂停或跳转,实现时间轴的完全同步。

五、进阶优化

本次内容目前主要侧重部署项目和程序对接,对于一些优化放在这部分来进行讲解,SyncTV 和 Alist 还有诸多进阶优化和扩展玩法值得探索。

1.设置房间权限

有管理权限的账户,可以修改房间的设置,比如禁止访客加入,给普通用添加同步视频进度和暂停权限等,以维护观影秩序。

2.程序的原理

在使用SyncTV进行观影的过程中,默认设置下,数据源是来自openlist的,因为观看者访问openlist的视频是否流畅,决定了观影的流畅度。

对于openlist来说,挂载夸克网盘后,我们通过openlist观看夸克网盘的视频,实际上是由openlist所在服务器访问夸克网盘来实现观看,因此这个过程中会双倍消耗服务器的流量。

3.扩展玩法

SyncTV的功能非常强大,其扩展性包括:

  • 源视频代理播放: 支持将源视频进行代理播放。
  • 对接其他平台: 可以绑定 Bilibili,直接根据 BV 号播放视频。
  • 直链支持: 支持播放各种直链视频,甚至可以用于创建直播房间。

你可以进一步发掘SyncTV的全部潜力,打造更丰富的个人影音娱乐体验。

4.使用域名反向代理

SyncTV和openlist默认情况下的访问地址都是IP+端口的组合,可以参考该教程进行反向代理。以使用域名访问。

如何搭建Nginx Proxy Manager并使用反向代理和远程桌面加速

需要注意,SyncTV和openlist的反向代理都需要使用特定的配置参数,以下是来自官方文档的配置参数。

SyncTV:

 location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
client_max_body_size 20m;
proxy_http_version 1.1;
}

SyncTV的宝塔面板用户请删除以下代码段:

location ~ ^/(.user.ini|.htaccess|.git|.svn|.project|LICENSE|README.md
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
location ~ .*.(js|css)?$

Openlist:

location / {
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header Host $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Range $http_range;
  proxy_set_header If-Range $http_if_range;
  proxy_redirect off;
  proxy_pass http://127.0.0.1:5244;
  proxy_http_version 1.1;
  # the max size of file to upload
  client_max_body_size 20000m;
}

5.访问异常

如果遇到无法访问的SyncTV或者openlist的情况,请检查是否安装了防火墙或者时面板程序。

如果有,请给对应端口放行(SyncTV是8080,openlist是5244)。