BiliUpForJava 是一个全自动的 B站录播投稿工具,配合录播姬(BililiveRecorder/blrec)使用,通过 Webhook 机制实现录播文件的自动上传和投稿。
重要说明:本程序只负责录播文件的上传投稿,不支持直播录制功能,需要配合录播姬使用。
- 🖥️ NAS / 服务器 24小时录播监控
- 🎬 直播录制后自动投稿
- 💾 边录边传*,节省磁盘空间
- ☁️ 录播文件自动上传至云盘
- 🎨 支持自定义封面和云剪辑
| 功能 | 说明 |
|---|---|
| 🎯 WebUI 配置 | 友好的网页管理界面,无需修改配置文件 |
| 💾 边录边传 | 支持录制一个文件后上传一个文件,减少硬盘占用 |
| 🖼️ 智能封面 | 支持直播封面和自定义封面 |
| 💬 弹幕转移 | 可将直播弹幕转移到录播视频(非压制) |
| ✂️ |
|
| 📤 云盘路径支持 | 支持文件处理后移动,配合 rclone/WebDAV 上传云盘 |
| 🐳 Docker 部署 | 提供 Docker 镜像,支持一键部署 |
| 🖥️ 跨平台 | 支持 Windows、Linux、NAS 等多种环境 |
graph TD
subgraph Env ["你的环境"]
direction TB
Recorder["录播姬 / blrec"]
Plugin["biliupforjava (本项目)"]
Disk[("共享存储 (硬盘/映射卷)")]
Recorder -- "1. 录制视频写入" --> Disk
Recorder -- "2. 发送 Webhook 通知" --> Plugin
Plugin -- "3. 根据通知读取文件" --> Disk
end
Live["B站直播间"] -- "直播流" --> Recorder
Plugin -- "4. 上传视频" --> Bilibili["B站投稿服务器"]
style Disk fill:#f96,stroke:#333,stroke-width:4px
style Plugin fill:#69f,stroke:#333,stroke-width:2px
style Recorder fill:#6f9,stroke:#333,stroke-width:2px
- 录播姬 负责监控直播并录制视频文件
- 录播姬 通过 Webhook 通知本项目录制完成(携带文件路径)
- 本项目 收到通知后读取文件并自动上传到 B站
⚠️ 关键:录播姬和本项目必须能访问同一个文件路径(Docker 部署需映射同一��主机目录)
- Docker 环境(推荐)或 Java 17+ 环境
- 录播姬(BililiveRecorder 或 blrec)
- B站账号
展开查看 Docker 部署步骤
| 参数项 | 容器内默认值 | 推荐设置 | 作用说明 |
|---|---|---|---|
| 端口映射 | 80 |
-p 12380:80 |
映射宿主机端口到容器 80 端口 |
| 存储卷 | 无 | -v /path/to/recordings:/bilirecord |
挂载录制文件目录(必须与录播姬一致) |
| 内存限制 | 无限制 | -m 512M |
限制容器最大内存使用,最低 400MB |
| 时区 | Asia/Shanghai |
已内置 | 已在镜像中设置中国时区 |
| 重启策略 | 无 | --restart always |
容器异常退出时自动重启 |
| 参数 | 默认值 | 推荐值 | 说明 |
|---|---|---|---|
-Drecord.userName |
无 | admin |
Web 管理界面登录用户名 |
-Drecord.password |
无 | your_password |
Web 管理界面登录密码 |
-Dfile.encoding |
系统默认 | UTF-8 |
强烈推荐设置,避免中文乱码 |
-Duser.timezone |
Asia/Shanghai |
Asia/Shanghai |
已内置,无需额外设置 |
⚠️ 重要提示
- 建议添加
-Dfile.encoding=UTF-8参数,避免文件名或日志出现乱码- 时区已在 Docker 镜像中设置为
Asia/Shanghai,无需额外配置
docker pull FQrabbit/biliupforjava:latestdocker run -d \
--name bup \
-p 12380:80 \
-v /path/to/recordings:/bilirecord \
-m 512M \
--restart always \
FQrabbit/biliupforjava:latestdocker run -d \
--name bup \
-p 12380:80 \
-v /path/to/recordings:/bilirecord \
-e JAVA_OPTS='-Drecord.userName=admin -Drecord.password=your_password -Dfile.encoding=UTF-8' \
-m 512M \
--restart always \
FQrabbit/biliupforjava:latest💡 路径提示:
/path/to/recordings必须和录播姬的录制目录保持一致
展开查看本地部署步骤
- Java 17 或更高版本
- 下载最新的 WAR 文件:
阿里云盘或 GitHub Release
java -Dserver.port=12380 \
-Drecord.work-path=/path/to/recordings \
-Drecord.userName=你的用户名admin \
-Drecord.password=你的密码your_password \
-Duser.timezone=Asia/Shanghai \
-Dfile.encoding=UTF-8 \
-jar biliupforjava.war🔒 安全提示
- 强烈建议通过
-Drecord.userName和-Drecord.password参数设置 Web 管理界面的登录密码- 如果部署在公网服务器,务必配置强密码或使用 SSH 隧道/VPN 访问
- 默认无密码模式存在安全风险,任何人都可以访问管理界面
录播姬 WebHook v2: http://192.168.x.x:12380/recordWebHook
blrec WebHook: http://192.168.x.x:12380/recordWebHook
⚠️ 重要提示
- ✅ 使用容器名称
bup(需配置网络)- ✅ 或使用局域网 IP:
http://192.168.x.x:12380/recordWebHook- ❌ 不要使用
localhost或127.0.0.1- ❌ 不要使用容器内部 IP
选择以下任一录播姬:
选项 A:BililiveRecorder(推荐)
📖 官方文档
# 拉取镜像
docker pull bililive/recorder:latest
# 运行容器
docker run -d \
--name brec \
-v /path/to/recordings:/rec \
-p 2356:2356 \
--restart always \
bililive/recorder推荐文件名格式:
{{ roomId }}-{{ name }}/{{ json.room_info.live_start_time | time_zone: "Asia/Shanghai" | format_date: "yyyy年" }}/{{ json.room_info.live_start_time | time_zone: "Asia/Shanghai" | format_date: "MM月" }}/{{ json.room_info.live_start_time | time_zone: "Asia/Shanghai" | format_date: "dd号" }}/{{ json.room_info.live_start_time | time_zone: 'Asia/Shanghai' | format_date: "yyyy年MM月dd号-HH点mm分ss秒开播" }}/{{ title }}-{{ "now" | time_zone: 'Asia/Shanghai' | format_date: "yyyy年MM月dd号-HH点mm分ss秒" }}-{{ partIndex | format_number: "000" }}.flv
选项 B:blrec
# 拉取镜像
docker pull acgnhiki/blrec
# 运行容器
docker run -d \
--name blrec \
-v /path/to/recordings:/rec \
-p 2233:2233 \
--restart always \
acgnhiki/blrec推荐文件名格式:
{roomid} - {uname}/{year}年/{month}月/{day}号/{year}年{month}月{day}号{hour}{minute}{second}
为了让录播姬和本项目能够相互通信,需要配置同一网络:
# 创建网络
docker network create bili-net
# 连接容器到网络
docker network connect bili-net brec # 或 blrec
docker network connect bili-net bup打开录播姬的 WebUI(默认端口 2356 或 2233),找到 Webhook 配置:
| 录播姬类型 | Webhook URL |
|---|---|
| BililiveRecorder | http://bup/recordWebHook |
| blrec | http://bup/recordWebHook |
⚠️ 重要提示
- ✅ 使用容器名称
bup(需配置网络)- ✅ 或使用局域网 IP:
http://192.168.x.x:12380/recordWebHook- ❌ 不要使用
localhost或127.0.0.1- ❌ 不要使用容器内部 IP
- 访问 Web 管理界面:
http://localhost:12380 - 首次使用请先登录(默认无密码,建议配置)
- 进入用户页面进行 B站账号登录
- 配置直播间设置:
- 是否自动上传
- 是否删除源文件
- 上传用户选择
- 标题、标签等投稿信息
Q: Webhook 通知失败怎么办?
A: 检查以下几点:
- 确认两个容器在同一 Docker 网络中
- 在浏览器访问 Webhook URL 测试连通性
- 查看录播姬日志是否有错误信息
- 使用局域网 IP 而非 localhost
Q: 上传失败或卡住怎么办?
A: 可能的原因:
- B站 Cookie 过期,需重新登录
- 网络不稳定,检查上传带宽
- ���件过大,检查磁盘空间
- 查看日志获取详细错误信息
Q: 如何配置路径映射?
A: 确保路径一致性:
宿主机路径: /data/recordings
录播姬映射: /data/recordings:/rec
本项目映射: /data/recordings:/bilirecord
或在 Web 界面配置路径替换规则
Q: 支持多账号投稿吗?
A: 支持!在用户页面可以添加多个 B站账号,并在房间配置中选择对应的投稿账号。
Q: 内存占用多少?
A:
- 最低需求:400MB
- 推荐配置:512MB 或更高
- 可通过
-m参数限制:-m 512M
-
问题反馈:GitHub Issues
-
下载地址:阿里云盘
| 项目 | 说明 |
|---|---|
| BililiveRecorder | mikufans 录播姬 |
| blrec | 另一款优秀的 B站录播工具 |
本项目采用 LICENSE 许可证。
如果这个项目对你有帮助,欢迎给个 Star ⭐
Made with ❤️ for biliupforjava




