开播自动录,下播自动停:在飞牛 NAS 部署 Bililive-go

1

前言

如果你经常观看直播,可能也遇到过想把某场内容保存下来,却刚好错过开播时间的情况。比如想留着以后回看、整理直播中的重要内容,或者为后续制作切片准备素材,都需要尽可能完整地录下整场直播。

手动录屏看起来简单,实际使用时却有不少麻烦。不仅需要提前打开软件,还要让电脑长时间保持运行,一旦忘记操作、程序中途退出或者网络出现波动,最终保存下来的内容就可能并不完整。

更麻烦的是,想要关注的直播间可能来自不同平台。有的在哔哩哔哩,有的在抖音、斗鱼或虎牙;如果还需要同时关注多个主播,仅靠手动打开页面、等待开播和逐个录制,很难全部兼顾。

这时候就可以使用 Bililive-go。它是一款支持多个直播平台的开源录制工具,可以持续监控指定直播间,在检测到主播开播后自动开始录制,下播后自动停止并保存文件。将它部署到 NAS 上,就能让录制任务在后台持续运行,不需要一直守在电脑旁边。

1 什么是Bililive-go?

github地址:https://github.com/bililive-go/bililive-go/

Bililive-go 是一款使用 Go 语言开发的开源直播录制工具。虽然名称中带有“Bili”,但它并不只能录制哔哩哔哩直播,还支持多个主流直播平台(如:抖音、虎牙等),具体兼容范围可以在项目官方文档中查看。

添加直播间地址后,Bililive-go 会在后台持续检测开播状态。检测到主播开播时,程序会自动获取直播流并开始保存;主播下播后,录制任务随之停止,文件会保存在提前设置好的目录中。随后,程序继续等待下一次开播。

image-20260723155926857

与普通屏幕录制不同,Bililive-go 并不需要一直打开直播页面,而是直接获取直播流并保存。因此,录制内容中不会出现桌面通知、鼠标操作等无关画面,也更适合同时监控多个直播间。

项目还提供了 Web 管理界面,可以直接在浏览器中添加直播间、查看监控状态、管理录制任务和访问已经保存的文件。将它部署到NAS后,录制任务可以在后台持续运行,视频则直接保存在 NAS 的指定目录中,后续回看、整理素材或者制作直播切片都会更加方便。

2 部署前准备

本文以飞牛 NAS 为例,通过 Docker 部署 Bililive-go。开始之前,需要准备一台已经安装飞牛系统并启用 Docker 的 NAS。如果使用的是其他 NAS 或 Linux 设备,只要能够正常运行 Docker,也可以参考本文进行部署:
image-20260708172008640

本期使用的设备是rk3566刷入的arm版飞牛系统,设备内存约为 4GB,内置 eMMC 存储约为 8GB。虽然存储才8G,但是可以内置插入一块SATA 硬盘用来存储录像。Bililive-go 官方 Docker 镜像提供了linux/arm64架构版本,因此可以在 RK3566 这类 ARM64 设备上运行。

如果也想尝试使用 RK3566 小主机安装 ARM 版飞牛 NAS,可以参考下面这篇教程:

https://www.cpolar.com/blog/tutorial-on-installing-arm-version-of-feibo-nas-system-on-rk3566-device-even-beginners-can-easily-complete-it

有详细的图文教程,简单且好上手:
image-20260723161438885

准备好飞牛 NAS、Docker 环境和录像存储目录后,接下来就可以开始部署 Bililive-go。

3 使用Docker部署Bililive-go

首先,访问你的飞牛Nas首页,然后点击Docker图标进入,确保Docker服务是【开启】状态:
image-20260708180310377

接着选择【镜像仓库】菜单,来到镜像仓库页面,搜索【Bililive-go】回车,然后点击chigusa/bililive-go这行末尾的下载图标,进行下载该镜像,镜像标签默认latest即可:

image-20260723162748433

下载完成后,切换到【本地镜像】菜单,点击启动的图标按钮:

image-20260723164754989

进入容器创建页面后,勾选【开机自动启动】。这样飞牛 NAS 重启后,Bililive-go 容器也会自动恢复运行。其他设置暂时保持默认,然后点击【下一步】:

image-20260723164829479

接下来在端口设置中,左侧是飞牛 NAS 的本地端口,右侧是容器内部端口。如果本地的 8080 端口已经被其他应用占用,可以将左侧修改为其他空闲端口,例如 80818082;右侧的容器端口保持 8080 不变。

然后在【存储位置】中点击文件夹按钮,选择或者创建一个新的目录。容器路径保持 /srv/bililive,权限保持默认的【读写】:

image-20260723165531791

然后点击下一步:
image-20260723165655893

接着,勾选【创建后启动】,然后点击创建容器:
image-20260723165852969

容器创建并启动后,切换到左侧的【容器】页面。找到 bililive-go,将鼠标移动到访问链接图标上,然后点击对应的本地端口:

image-20260723170256072

浏览器能够正常打开下面的页面,就说明 Bililive-go 已经成功运行:

image-20260723170432426

至此,Bililive-go 已经部署完成。接下来只需要添加需要监控的直播间,就可以开始自动录制了!

4 添加录制直播间

在菜单监控列表中,点击右侧的添加房间按钮,然后在弹出的窗口中,输入你想要录制的直播间地址(也就是顶部地址栏的链接),然后点击ok按钮:
image-20260723172410999

确认后,即可看到列表中显示了一条直播间信息,包括主播名称、直播间名称、直播的平台、运行状态等:

image-20260723172433125

点击【文件】按钮,可以进入到详情页面:
image-20260723172612327

可以看到录制的文件名称和文件大小,点击该文件,可以直接进行播放:
image-20260723172652256

除了单个直播间,Bililive-go 还可以同时添加多个录制任务。无论这些直播间是否处于同一平台,程序都会分别检测它们的开播状态:
image-20260723173001755

由于前面已经将 /srv/bililive 映射到 NAS 的录像目录,因此保存下来的文件也可以直接通过飞牛文件管理器查看:
image-20260723173634190

完成直播间添加后,后面基本不需要再手动操作。主播没有开播时,Bililive-go 会继续在后台监控;检测到开播后,任务状态会自动切换为录制中:
image-20260723173817844

这是之前的,可以看到实际录制的直播接近 4 个小时,最终生成了一个超过 20GB 的视频文件。从开播、持续录制到下播保存,整个过程都由 Bililive-go 自动完成,不需要提前打开直播页面,也不用手动点击开始和停止:

image-20260723174049606

不过,这个结果也能看出,直播录像对存储空间的消耗并不小。直播画质越高、持续时间越长,同时录制的直播间越多,产生的文件也会越大。如果准备长期使用,建议将录像目录放在容量较大的硬盘中,并定期整理不再需要的文件,避免占满存储空间。

5 下载安装cpolar

到这里,Bililive-go 已经在飞牛 NAS 上部署完成,也可以正常添加直播间和自动保存录像。即使离开当前网络,NAS 上的录制任务仍然会继续运行,不会因此中断。

不过,Bililive-go 的 Web 管理页面目前只能通过局域网地址访问。如果人在外面,临时想添加新的直播间、查看当前录制状态,或者确认录像文件是否已经保存,就无法直接打开这个页面。

接下来可以在飞牛 NAS 上安装 cpolar,将 Bililive-go 的本地 Web 服务映射到公网。完成配置后,不需要公网 IP,也不用修改路由器端口,就可以通过生成的公网地址远程访问 Bililive-go。

5.1 什么是 cpolar?

cpolar

cpolar 是一款内网穿透工具,可以把局域网内运行的服务映射到公网。

简单来说,只要服务已经在本地跑起来,比如本文中的 Bililive-go Web 管理页面。就可以通过 cpolar 创建公网访问地址。这样外部设备不需要配置路由器端口转发,也能远程访问本地服务。

cpolar 支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台,也适合飞牛 NAS 这类支持 SSH 和 Docker 的设备使用。

5.2 安装 cpolar

首先,进入【系统设置】中,选择【SSH】,将其启用:

image-20260505174623872

接着,电脑摁下【Win + X】键,选择【终端(管理员)】打开PowerShell窗口:

image-20260505174939658

然后在终端输入如下ssh命令,进行远程连接你的飞牛Nas终端:

ssh rk3566@192.168.50.212

如下图所示:

111

接着,在终端执行如下命令,切换至root用户(输入密码时不会显示):

sudo -i

image-20260505180939492

然后,执行下面命令安装 cpolar:

sudo curl https://get.cpolar.sh | sh

如下图所示:

image-20260509152034028

安装完成后,执行下面命令查看 cpolar 服务状态:

sudo systemctl status cpolar

如下图所示:

image-20260509152054654

如果状态中显示 【active (running) 】就说明 cpolar 已经正常启动。

接着,在浏览器中输入下面地址,访问 cpolar 的 Web UI 控制台,例如我这里的飞牛 NAS IP 是 192.168.50.212,所以访问地址就是:

http://192.168.50.212:9200

如下图所示:

image-20260509152129581

可以看到,已经成功进入 cpolar 的 Web UI 页面。如果还没有注册 cpolar 账号,也可以点击页面底部的注册入口先完成账号注册。

6 穿透Bililive-go以支持公网访问

6.1 随机域名方式

随机域名方式更适合临时测试或短期使用。使用该方式时,公网访问地址会在一段时间后发生变化,通常不适合长期固定访问。不过它的优点是配置简单、可以免费体验。如果后续需要长期访问 Bililive-go,或者希望团队成员使用同一个稳定地址,可以继续参考后面的 固定域名方式,访问体验也会更稳定。

首先,点击左侧菜单栏的【隧道管理】,展开进入【隧道列表】页面,页面下默认会有 2 个隧道:

  • ssh隧道,指向22端口,tcp协议
  • website隧道,指向8080端口,http协议(http协议默认会生成2个公网地址,一个是http,另一个https,免去配置ssl证书的繁琐步骤)

image-20260509152805723

点击编辑【website】隧道或创建一条新的隧道,设置一个隧道名称(自定义即可),协议选择【http】,本地地址填写 Bililive-go 的访问端口【8080】,地区这里选择的【China VIP】,最后点击更新:

image-20260724100547446

创建或者更新完成后,接着点击【状态>在线隧道列表】,可以看到同一个隧道生成了两个不同协议的公网访问地址,一个是 http,另一个是 https:

image-20260724100955324

这里以https为例,访问测试一下:

image-20260724101021449

浏览器能够正常打开 Bililive-go 的管理页面,说明公网隧道已经配置成功。此时即使不在飞牛 NAS 所在的局域网内,也可以通过生成的公网地址查看录制状态、添加直播间和管理录像文件。

6.2 固定二级子域名方式

通过前面的随机域名方式,我们已经验证 Bililive-go 可以正常通过公网访问。不过,随机生成的公网地址会周期性变化。地址更新后,之前收藏的书签或保存在手机中的访问入口也会随之失效,需要重新进入 cpolar 的在线隧道列表获取新地址。

如果准备长期使用 Bililive-go,并希望随时在外面查看录制状态、添加直播间或管理录像文件,可以继续配置固定二级子域名。完成设置后,公网访问地址将保持固定,后续可以直接收藏到浏览器中,不需要反复更换。

首先,登录 cpolar 官网后台,进入 预留 页面:

https://dashboard.cpolar.com/reserved

在左侧菜单中选择【预留】,找到【保留二级子域名】配置项。

image-20260724103229199按照下面信息填写:

配置项 填写说明
地区 选择和前面隧道一致的地区
名称 自定义二级子域名,例如 bililive注意:该项不能重复,二级子域名名称是唯一的
描述 填写任意方便辨识的备注即可

填写完成后,点击【保留】按钮。保留成功后,会得到一个固定的二级子域名。接着回到【隧道管理>隧道列表】下,点击编辑bililive这条隧道:
image-20260724103414608

将域名类型修改为【二级子域名】,并填写刚才在官网后台保留的二级子域名,然后点击更新按钮:

image-20260724112849725

更新完成后,点击左侧菜单【状态>在线隧道列表】,可以看到 bililive隧道已经变成固定公网地址:

image-20260724112928152

复制生成的固定公网地址,在浏览器中访问:

image-20260724112959187

可以看到,通过固定公网地址同样可以正常打开 Bililive-go 管理页面。这样后续就不需要担心随机地址发生变化,无论是在电脑还是手机上,都可以通过同一个地址查看录制状态、添加直播间和管理录像文件。

不过,固定地址方便长期访问,也意味着管理页面会持续暴露在公网。为了避免其他人直接访问,接下来可以通过 cpolar 的 HTTP Auth 功能增加一层访问认证。

7 配置HTTP Auth添加访问认证

完成固定二级子域名配置后,Bililive-go 已经可以通过固定公网地址长期访问。不过,它的 Web 管理页面包含直播间添加、录制状态查看和录像文件管理等功能,如果不设置访问保护,其他人在获得公网地址后也可能直接打开页面。

为提高远程访问的安全性,可以使用 cpolar 提供的 HTTP Auth 功能,为公网隧道增加一层账号密码认证。配置完成后,访问 Bililive-go 公网地址时,浏览器会先要求输入用户名和密码,验证通过后才能进入管理页面。

首先,进入 cpolar Web UI 的【隧道管理>隧道列表】,找到前面配置的 bililive 隧道,然后点击右侧的【编辑】:
image-20260724113443409

在隧道编辑页面中展开【高级】设置,找到【HTTP Auth】配置项,按照下面的格式填写用户名和密码:

注意:HTTP Auth 属于公网隧道的访问保护,并不是 Bililive-go 本身的用户系统。建议设置不容易被猜到的独立密码,并优先使用 HTTPS 公网地址访问。

用户名:密码

如下图:

image-20260724113628043

接着重新打开 Bililive-go 的 HTTPS 公网地址。此时浏览器会弹出身份验证窗口:

image-20260724113713711

这样,就成功的给Bililive添加上了登录认证功能啦!

总结

至此,Bililive-go 已经成功部署到飞牛 NAS,并完成了直播间添加、自动录制、文件保存和公网访问等配置。

添加直播间地址后,Bililive-go 会在后台持续检测开播状态。主播开播时自动开始录制,下播后自动停止并保存文件,不需要提前打开直播页面,也不用一直守在电脑旁边。对于需要回看直播、整理内容或制作切片素材的用户来说,这种方式会比手动录屏省事不少。

通过 cpolar 生成的公网地址,还可以在外面查看录制状态、临时添加直播间和管理录像文件。配合固定二级子域名和 HTTP Auth 访问认证,既能保持访问地址稳定,也能为管理页面增加一层安全保护。

感谢您阅读本篇文章,有任何问题欢迎留言交流。 cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站

Share:

发表回复

目录

On Key

推荐文章