星河避难所

返回

Bilibili直播监控实现Blur image

哔哩哔哩直播监控实现#

本文讲述了如何从服务器端的方向,实现对哔哩哔哩直播间的弹幕监控,进房提醒,礼物自动答谢等功能的实现,以及自动录播并分段上传

直播弹幕监控,自动欢迎进房,自动答谢礼物等功能来自 GitHub 中公开的项目:弹幕姬 点击进入 GitHub

自动录播,视频分段来自 GitHub 中公开的项目:录播姬 点击进入 GitHub

自动投稿来自于 GitHub 中公开的项目:biliup-rs 点击进入 GitHub

本文主要在于记录这些项目部署的全过程,以及一些额外小功能的实现原理


录播姬#

下载#

可以通过 GitHub Release 页面中获取自己需要的版本进行下载

无特殊情况下,使用 BililiveRecorder-CLI-linux-x64 版本即可

操作系统架构下载链接
Linuxx64BililiveRecorder-CLI-linux-x64.zip
Linuxarm32BililiveRecorder-CLI-linux-arm.zip
Linuxarm64BililiveRecorder-CLI-linux-arm64.zip
Windowsx64BililiveRecorder-CLI-win-x64.zip
macOSx64BililiveRecorder-CLI-osx-x64.zip
macOSarm64BililiveRecorder-CLI-osx-arm64.zip

安装#

下载并解压压缩包,以 Linux x64 为例:

mkdir <录播姬目录>
cd <录播姬目录>
# wget https://下载链接
unzip <下载到的 zip 压缩包>
plaintext

解压完成后,记得检查确认文件夹中的 BililiveRecorder.Cli 是否带有可执行权限,如果没有的话使用以下命令添加可执行权限:chmod +x BililiveRecorder.Cli

确认录播姬可以运行、并检查版本号

./BililiveRecorder.Cli --version
plaintext

后续录播姬的控制均由 BililiveRecorder.Cli 来处理,为了方便命令行的使用,可以将该文件缩写为其他名称,例如:brec ,方法如下:mv BililiveRecorder.Cli brec

录播姬所有命令都可以加上 —help 查看帮助

运行#

./brec run “工作目录”

后续#

录播姬需要保持后台持续运行,建议增加至 systemd 中并设置开机自动启动

创建服务#

新建一个文件 /etc/systemd/system/brec.service

[Unit]
Description=BililiveRecorder
After=network.target

[Service]
ExecStart=录播姬运行命令,注意使用根路径

[Install]
WantedBy=multi-user.target
plaintext

重载服务#

systemctl daemon-reload
plaintext

设置开机自动启动#

systemctl enable brec
plaintext

禁止开机自动启动#

systemctl disable brec
plaintext

常用指令#

# 查看运行状态
sudo systemctl status brec

# 启动
sudo systemctl start brec

# 停止
sudo systemctl stop brec

# 重启
sudo systemctl restart brec
plaintext

其他#

录播姬支持 webhook,部署成功后可以进行对应的设置 可以在直播开始/结束,文件录制开始/结束等节点对配置地址进行通知 点击查看相关文档


弹幕姬#

该项目基于 Java 环境运行,安装前请先检查服务器是否安装 Java 以及检查 Java 的版本

建议 Java 版本 >= 1.8

Java 的安装方式网上有很多教程,本文不再中间描述,以 Centos 为例,官网下载对应的包

在 /etc/profile 中增加对应的环境变量即可

export JAVA_HOME=java目录
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
plaintext

记得通过 source /etc/profile 来使环境变量生效

下载#

可以通过 GitHub Release 页面中获取自己需要的版本进行下载

版本说明
danmuji常规版本
danmuji-greenwindows 版本,无需 Java 环境,开包即用
danmuji-docker全框架 docker 镜像构建版本

安装 & 运行#

该项目无需安装,直接运行 .jar 包即可,例如:java -jar BilibiliDanmu.jar

需要关闭时,可以通过 fuser -k -n tcp 对应端口 来进行关闭


Biliup-rs#

biliup-rs 是用 Rust 编写的,所以需要 安装 Rust 才能编译它

## 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

## 更新 Rust
rustup update
plaintext

安装#

cargo install biliup

使用#

可以通过执行命令:biliup -h 来查看可以进行的操作

USAGE:
    biliup [OPTIONS] <SUBCOMMAND>

OPTIONS:
    -h, --help                         Print help information
    -u, --user-cookie <USER_COOKIE>    登录信息文件 [default: cookies.json]
    -V, --version                      Print version information

SUBCOMMANDS:
    append    是否要对某稿件追加视频
    help      Print this message or the help of the given subcommand(s)
    login     登录B站并保存登录信息
    renew     手动验证并刷新登录信息
    show      打印视频详情
    upload    上传视频
plaintext

其他#

因为录播姬支持 webhook,当文件录制完成时可以触发回调

所以建议在本地做一个小脚本,当收到文件录制完成的通知时调用 biliup 上传录制完成的文件,实现自动上传

B 站投稿线路分析

B 站 tid 分区表

Bilibili直播监控实现
https://hejunjie.life/blog/3bb1f08f
作者 何俊杰
发布时间 2023年10月15日
版权信息 CC BY-NC-SA 4.0
评论似乎卡住了,尝试刷新?✨