- 从 Release 中选择一种安装包:
*.mirai2.jar是单插件包(首次启动时由 Mirai 下载第三方依赖);*-with-dependencies.mirai.jar已内置第三方 JVM 依赖,适合服务器无法下载依赖时使用。 - 将Jar文件放入 %mirai文件根目录%/Plugins/ 中
- 重新启动你的mirai-console
- 同一时间只安装其中一种包,更新时移除旧版本和另一种包。
- FFmpeg:高画质 DASH 音视频合并需要;普通单文件 MP4 下载无需安装。
- Mirai-console 2.16版本 或 Overflow
Important
两种插件包均不包含 FFmpeg 可执行文件。无需安装 yt-dlp。
- 视频解析下载
- 封面图下载并单独发送
- 视频链接解析
- 视频详细信息解析
- 自动删除下载视频
- Config文件
- 长链接bilibili.com/video/BVxxx 和 短链接b23.tv/xxxx 的选择
- 指令支持
- 设置管理员
- 群组黑白名单控制
- 下载前询问用户
- 专栏解析
- 动态解析
- 视频分p解析
- 更多自定义配置支持
- 清晰度选择
- 扫码登录、会话保存和大会员清晰度
- 更多...
- /bilivideoparser
- /bvp
- 用法: /bvp [option] [value]
可用选项:
enable # 开关插件
shortlink # 开关短链接
info # 开关详细信息
download # 开关下载视频
addadmin # 添加管理员
removeadmin # 移除管理员
listadmins # 管理员列表
addwhite # 添加群白名单
addblack # 添加群黑名单
removewhite # 移除白名单
removeblack # 移除黑名单
listgroups # 查看群组列表
sendlink # 是否发送解析后的视频链接
askdownload # 是否开启询问
thumbnail # 开关下载封面
setminduration # 设置最小时长(分钟)
setmaxduration # 设置最大时长(分钟)
login # 扫码登录B站
loginstatus # 查看登录账号和大会员状态
logout # 取消扫码并清除本地登录和手动 Cookie
setquality # 设置清晰度 (16,32,64,74,80,112,116,120,127)
| Config | 介绍 | Default | 可改参数 |
|---|---|---|---|
| configVersion | 配置版本号,用于自动检测和更新旧版配置,请勿自行修改 | IGNORE | |
| enableParsing | 是否启用解析功能 | true | false |
| useShortLink | 是否使用短链接(b23.tv);若为 false 则使用长链接(bilibili.com) | true | false |
| enableDetailedInfo | 是否显示详细视频信息(包括up主、播放量、评论数、简介、点赞、收藏、投币、转发) | true | false |
| enableDownload | 是否启用视频下载功能 | true | false |
| adminQQs | 管理员QQ | 123456789 | %QQ号% |
| groupWhiteList | 白名单群号列表(优先生效) | [] | %群号% |
| groupBlackList | 黑名单群号列表 | [] | %群号% |
| sendlink | 是否发送解析后的视频链接 | true | false |
| askBeforeDownload | 是否在下载前询问用户 | false | true |
| enableThumbnail | 是否下载并发送视频封面图 | false | true |
| minimumDuration | 允许解析的视频最小时长(分钟),0为不限制 | 0 | &number& |
| maximumDuration | 允许解析的视频最大时长(分钟),0为不限制 | 25 | &number& |
| minDurationTip | 视频过短时的提示语 | '视频太短啦!不看不看~' | / |
| maxDurationTip | 视频过长时的提示语 | '视频太长啦!内容还是去B站看吧~' | / |
| videoQuality | 视频清晰度:16=360P、32=480P、64=720P、74=720P60、80=1080P、112=1080P+、116=1080P60、120=4K、127=8K | 16 | 对应数字 |
| bilibiliCookie | 可选的 B站 Cookie;服务器遇到 HTTP 412/-352 风控时可配置,留空为游客模式 | 空字符串 | 浏览器 Cookie |
| ffmpegPath | FFmpeg 可执行文件路径,用于合并 DASH 音视频 | ffmpeg | PATH 中的命令或完整路径 |
- 在机器人控制台或配置中
adminQQs管理员的聊天中执行/bvp login。聊天中会发送二维码;控制台会输出data/com.bcz.bilivideoparser/login-qrcode.png的本机路径。 - 使用哔哩哔哩 APP 扫码,并在手机上确认登录。二维码有效期约 3 分钟,同一时间只允许一项扫码任务;超时后重新执行命令。
- 登录成功后,会话自动写入插件数据目录的
bilibili-session.json,重启后自动恢复,无需将 Cookie 粘贴进 YAML。扫码过程使用新会话;保存成功后替换旧会话并清空手动 Cookie,避免新登录与旧票据混用。视频、动态、专栏请求共用新会话及设备 Cookie。 - 执行
/bvp loginstatus可查看当前账号及大会员状态。会话失效后重新执行/bvp login。执行/bvp logout会取消扫码并删除本地会话、清空手动 Cookie,之后使用游客模式;它不会注销手机或浏览器上的账号。
登录管理命令仅允许 adminQQs 中的管理员及控制台使用,不会因为授予了普通配置命令权限就允许修改登录账号。登录二维码与会话文件请仅交给账号使用者,不要提交到仓库。
大会员清晰度需要使用已开通大会员的账号,并且视频本身提供对应画质。例如 /bvp setquality 116 选择 1080P60,/bvp setquality 120 选择 4K。高画质优先获取 DASH 视频和音频,用 FFmpeg 无损合并后发送;无法使用所选画质时,会提示实际选用的较低画质。部分高分辨率流采用 HEVC/AV1,播放兼容性取决于 QQ 客户端。
安装 FFmpeg 并加入 PATH,或在配置中设置完整路径,例如 ffmpegPath: 'C:\tools\ffmpeg\bin\ffmpeg.exe'。未安装时仍可下载单文件 MP4,但可能降级到较低画质。
请求客户端使用共享的 Cookie 容器、连接池和压缩响应解码,并初始化站点下发的设备 Cookie。扫码登录可更新会话,但不能保证解除所有风控;浏览器与 JVM 的网络行为仍有差异。若仍出现 HTTP 412/-352,请提供错误码和 /bvp loginstatus 的结果,不要提供会话文件或完整 Cookie。
视频详情优先使用 WBI 签名接口,失败后依次尝试旧接口和视频网页内的数据。播放解析同样使用签名接口,并尝试 B站返回的备用 CDN 地址。v2.4.0 起支持上述扫码登录及高画质 DASH 合并;单文件 MP4 仍无需 FFmpeg。
若机器人所在服务器仍受到风控,在 config/com.bcz.bilivideoparser/BiliVideoParserConfig.yml 中配置 Cookie 后重启机器人。推荐使用 YAML 字面量块,避免 Cookie 内的引号、竖线等字符破坏配置格式:
bilibiliCookie: |-
buvid3=示例值; rpdid=示例值; SESSDATA=示例值; bili_jct=示例值用自己的完整 Cookie 替换示例第二行,保持为一个实际文本行,并保留行首两个空格;|- 后不要填写 Cookie。Cookie 的值应原样保留,不需要额外添加引号或转义。不要直接用单引号包裹整段 Cookie,因为 Cookie 本身可能含有单引号,导致 YamlDecodingException 和插件启动失败。
Cookie 可从自己已登录的 B站网页开发者工具 → Network → 发往 api.bilibili.com 的请求 → Request Headers → Cookie 复制。Cookie 属于登录凭据,请仅保存在机器人本地配置中,不要提交到仓库或发送到群聊;过期后需更新。签名和 Cookie 无法保证解除服务器 IP 层面的风控。
若全部解析方式失败,插件会显示失败提示并记录各次请求的 HTTP 状态或接口错误码,且不会把失败结果放入 30 秒冷却。排查时请提供错误码,不要提供 Cookie。
使用 JDK 17 执行 ./gradlew clean verifyReleaseArtifacts(Windows 使用 gradlew.bat)。该命令运行测试并在 build/release 中生成及检查两种安装包。正式 Release 和 AutoBuild 均上传这里的两种 JAR;普通开发用的 build/libs JAR 不作为安装包发布。
扫码协议与会话处理参考:登录功能需求 #16、bilibili-dynamic-mirai-plugin、扫码登录接口。
