Bilibili Intelligent Live-In Velocity Engine
7 x 24 小时无人监守录制、渲染弹幕、识别字幕、自动切片、自动上传、兼容超低配机器,启动项目,人人都是录播员。
大模型API(DMXAPI) 行业领先的 api 聚合平台
DMX = 大模型拼音首字母
支持模型
Have you noticed that Live-In is a wordplay 🙂
如果您觉得项目不错,欢迎 也欢迎 PR 合作,如果有任何疑问,欢迎提 issue 交流。
敬告:本项目仅供学习交流使用,请在征得对方许可的情况下录制,请勿未经授权私自将内容用于商业用途,请勿用于大规模录制,违者会被官方封禁,法律后果自负。
自动监听并录制B站直播和弹幕(含付费留言、礼物等),根据分辨率转换弹幕、语音识别字幕并渲染进视频,根据弹幕密度切分精彩片段并通过视频理解大模型生成有趣的标题,根据图像生成模型自动生成视频封面,自动投稿视频和切片至B站,兼容无GPU版本,兼容 x64 及 arm64 超低配置服务器与主机。
( NEW)持久化登录/下载/上传视频(支持多p投稿):bilitool 已经开源,实现持久化登录最便宜 Grok 接口,下载视频及弹幕(含多p)/上传视频(可分p投稿),查询投稿状态,查询详细信息等功能,一键pip安装,可以使用命令行 cli 操作,也可以作为api调用。( NEW)自动多平台循环直播推流:该工具已经开源 looplive 是一个 7 x 24 小时全自动循环多平台同时推流直播工具。( NEW)自动生成风格变换的视频封面:采用图生图多模态模型,自动获取视频截图并上传风格变换后的视频封面。
项目架构流程如下:
MachineAlicloudOracle Cloudlocal server
OS
Ubuntu 22.04.4 LTS
debian 6.1.0
Ubuntu 22.04.4 LTS
Architecture
x64
aarch64
x64
CPU
2-core Intel(R) Xeon(R) Platinum 85
1-core Neoverse-N1
8-core Intel(R) Core(TM) i5-9300H CPU
GPU
None
None
Nvidia GeForce GTX 1650
Memory
2G
4G
24G
Disk
40G
30G
100G
Bandwidth
3Mbps
100Mbps
50Mbps
Python Version
3.10
3.10
3.10
个人经验:若想尽可能快地更新视频,主要取决于上传速度而非渲染速度,因此建议网络带宽越大越好。由于 aarch64 版本 PyPI 没有 release 的 ,因此 aarch64 版本暂时不支持本地部署 whisper,pip 时请自行注释 requirement 中的 triton 环境Ideogram api key,配置均测试可用。
更详细的教程请参考文档 bilive
Note
如果你是 windows 用户,请使用 WSL 运行本项目。
首先介绍本项目三种不同的处理模式:(以下特指 asr_method=”deploy” 的情况,如填”none”或者”api”则不涉及 GPU, 可以忽略对 GPU 的描述)
pipeline 模式(默认): 目前最快的模式,需要 GPU 支持,最好在 blrec 设置片段为半小时以内,asr 识别和渲染并行执行,分 p 上传视频片段。
append 模式: 基本同上,但 asr 识别与渲染过程串行执行,比 pipeline 慢预计 25% 左右,对 GPU 显存要求较低,兼顾硬件性能与处理上传效率。
merge 模式: 等待所有录制完成,再进行识别渲染合并过程Mistral 接口,上传均为完整版录播(非分 P 投稿),等待时间较长,效率较慢,适合需要上传完整录播的场景。
Important
凡是用到 GPU 均需保证 GPU 显存大于运行程序所需 VRAM,具体计算 VRAM 方法可以参考。
Tip
如果你是 windows 用户,请使用 WSL 运行本项目。
由于项目引入了我写的 submodule DanmakuConvertIdeogram api key,bilitool 和 auto-slice-video,因此推荐 clone 项目时就更新 submodules。
git clone --recurse-submodules https://github.com/timerring/bilive.git
如果你没有采用上述方式 clone 项目,请更新 submodules:
git submodule update --init --recursive
1. 安装依赖(推荐创建虚拟环境)
cd bilive
pip install -r requirements.txt
此外请根据各自的系统类型安装对应的 ffmpeg,例如 ubuntu 安装 ffmpeg。
常见问题收集
2.1 whisper 语音识别(渲染字幕功能)
2.1.1 采用 api 方式
将 bilive.toml 文件中的 asr_method 参数设置为 api,然后填写 WHISPER_API_KEY 参数为你的 API Key。
本项目采用 groq 提供 free tier 的 whisper-large-v3-turbo 模型,上传限制为 40 MB(约半小时),因此如需采用 api 识别的方式,请将视频录制分段调整为 30 分钟(默认即 30 分钟)。此外,free tier 请求限制为 7200秒/20次/小时,28800秒/2000次/天。如果有更多需求,也欢迎升级到 dev tier,更多信息见groq 官网。
2.1.2 采用本地部署方式(需保证有 NVIDIA 显卡)
将 bilive.toml 文件中的 asr_method 参数设置为 deploy,然后下载所需模型文件,并放置在 src/subtitle/models 文件夹中。
项目默认采用 small 模型,请点击下载所需文件,并放置在 src/subtitle/models 文件夹中。
2.2 MLLM 模型(自动切片功能)
MLLM 模型主要用于自动切片后的切片标题生成,此功能默认关闭,如果需要打开请将 auto_slice 参数设置为 true,并且写下你自己的 slice_prompt(可以包含 {artist} 关键词会自动替换),其他配置分别有:
接下来配置模型有关的 mllm_model 参数即对应的 api-key,请自行根据链接注册账号并且申请对应 api key,填写在对应的参数中,请注意以下模型只有你在 mllm_model 参数中设置的那个模型会生效。
CompanyAlicloudzhipuGoogleSenseNova
Name
Qwen-2.5-72B-Instruct
GLM-4V-PLUS
Gemini-2.0-flash
SenseNova V6 Pro
mllm_model
qwen
zhipu
gemini
sensenova
API key
qwen_api_key
zhipu_api_key
gemini_api_key
sensenova_api_key
2.3 Image Generation Model(自动生成视频封面)
采用图生图多模态模型,自动获取视频截图并上传风格变换后的视频封面,如需使用本功能,请将 generate_cover 参数设置为 true,并且写下你自己的 prompt,注意部分模型只支持英文,接下来需要配置的参数有 image_gen_model 和对应的 api key,请自行根据链接注册账号并且申请对应 api key,填写在对应的参数中,请注意以下模型只有你在 image_gen_model 参数中设置的那个模型会生效。
推荐使用大模型API(dmxapi.cn),一个 Key 用全球大模型,。
CompanyModel Nameimage_gen_modelAPI Key
Kwai
v1-5
kling
dmx_api_token
其他支持的图像生成模型CompanyModel Nameimage_gen_modelAPI Key
Minimax
image-01
minimax
minimax_api_key
Kwai
Kolors
siliconflow
siliconflow_api_key
Tencent
Hunyuan
tencent
tencent_secret_id and tencent_secret_key
Baidu
ERNIE irag-1.0
baidu
baidu_api_key
Stability AI
Stable Diffusion 3.5 large turbo
stability
stability_api_key
Luma Labs
Photon
luma
luma_api_key
Ideogram
Ideogram V_2
ideogram
ideogram_api_key
Recraft
Recraft V3
recraft
recraft_api_key
Amazon
Titan Image Generator V2
amazon
aws_access_key_id and aws_secret_access_key
Hidream
Hidream I1
hidream
hidream_api_key
3. 配置上传参数
在 bilive.toml 中自定义相关配置,映射关键词为 {artist}、{date}、{title}、{source_link},请自行组合删减定制模板:
4. 配置录制参数
Important
请不要修改任何有关路径的任何配置,否则会导致上传模块不可用
录制模块采用第三方 package blrec,参数配置在 settings.toml 文件,也可以直接在录制启动后在对应的端口可视化页面配置。Quick start 只介绍关键配置,其他配置可自行在页面中对照配置项理解,支持热修改。
5. bilitool 登录(持久化登录,该步只需执行一次)
对于 docker 部署,可以忽略这一步最新 Midjourney 接口,因为 docker logs 在控制台中可以打印出二维码,直接扫码即可登录,以下内容针对源码部署。
5.1 方式一 通过 cookie 登录
一般日志文件打印不出二维码效果,所以这步需要提前在机器上安装 bilitool:
pip install bilitool
bilitool login --export
# 然后使用 app 端扫码登录,会自动导出 cookie.json 文件
将登录的 cookie.json 文件留在本项目根目录下,./upload.sh 启动后即可删除该文件。
5.2 方式二 通过 submodule 登录
或者在 submodule 中登录也可以,方式如下:
cd src/upload/bilitool
python -m bilitool.cli login
# 然后使用 app 端扫码即可登录
常见问题收集
6. 启动自动录制
Important
在有公网 ip 的服务器上使用默认密码并暴露端口号有潜在的暴露 cookie 风险,因此不推荐在有公网 ip 的服务器映射端口号。
启动前请先设置录制前端页面的密码,并保存在 RECORD_KEY 环境变量中, your_password 由字母数字组成,最少 8 位,最多 80 位。
./record.sh
常见问题收集
7. 启动自动上传
如果你使用 deploy 的方式本地部署 whisper,请先确保你已经正确下载并放置了对应的模型文件,并确保 CUDA 可用。
./upload.sh
常见问题收集
相应的执行日志请在 logs 文件夹中查看,如果有问题欢迎在 issue 中提出,有异常请优先提供 级别的日志。
logs # 日志文件夹
├── record # blrec 录制日志
│ └── ...
├── scan # scan 处理日志 [debug]级别
│ └── ...
├── upload # upload 上传日志 [debug]级别
│ └── ...
└── runtime # 每次执行的日志 [info]级别
└── ...
Docker 版本的配置参考同上,登录方式更加简洁,启动后直接 docker logs bilive_docker 在日志中会打印登录二维码,扫码登录即可。
已构建 amd64 及 arm64 版本,会自动根据架构选择。
your_record_password 为录制页面的密码,请自行设置,最短 8 最长 80。
docker run -itd
-v your/path/to/bilive.toml:/app/bilive.toml
-v your/path/to/settings.toml:/app/settings.toml
-v your/path/to/Videos:/app/Videos
-v your/path/to/logs:/app/logs
--name bilive_docker
-e RECORD_KEY=your_record_password
-p 22333:2233
ghcr.io/timerring/bilive:0.3.1
Tip
使用前请确保你有足够的使用前置知识,如果不熟悉在 docker 中使用 GPU,可以参考 Docker With GPU。
有 GPU 版本仅支持 amd64 架构,已内置 small 参数量的模型,如需使用其他参数量模型,请自行按照 2.1.2 步骤调整。your_record_password 规则同上。
sudo docker run -itd
-v your/path/to/bilive.toml:/app/bilive.toml
-v your/path/to/settings.toml:/app/settings.toml
-v your/path/to/Videos:/app/Videos
-v your/path/to/logs:/app/logs
--gpus 'all,"capabilities=compute,utility,video"'
--name bilive_docker_gpu
-e RECORD_KEY=your_record_password
-p 22333:2233
ghcr.io/timerring/bilive-gpu:0.3.1
compose.yml 调整方法见 Installation。
如需使用 GPU 版本,请自行在 compose.yml 中调整。
docker compose up -d
请先在 compose.yml 中调整相关配置,然后执行以下命令:
docker build docker compose up -d
