基于 Tauri v2 构建,支持下载解析哔哩哔哩各类资源,未来还会陆续支持更多功能
以下内容基于 BiliTools v1.3.3 撰写
设置
在左侧选项卡中,点击最下方的齿轮图标即可进入设置页面
保存路径
点击左侧深色底的按钮可以更改路径,点击右侧粉色底的按钮可以使用资源管理器(macOS 下为访达)打开所配置的路径
在下载文件时,应用的逻辑为:
使用 aria2c
从哔哩哔哩服务器开始接收数据,存储至 临时文件
目录
如果选择了 下载音视频
,重复上一步继续下载音频/视频流,随后使用 ffmpeg
将音频流与视频流合并成一个完整的视频文件
如果选择了 下载其他
中单独的视频或音频,等待下一步
如果选择了下载音视频,将合并完成的文件转移至 下载文件
目录,并更名文件
如果选择了仅下载音频/视频流或其它资源,将下载完成的原文件转移至 下载文件
目录,并更名文件
在下载清晰度、音质等等质量较好的视频时,临时文件
目录可能会占用较多空间,可以考虑更改至其他磁盘(卷)
缓存
点击左侧深色底的按钮可以使用资源管理器(macOS 下为访达)打开所配置的路径,点击右侧粉色底的按钮可以清除该缓存
- 日志
应用运行时所记录的日志,若遇到报错,可以在提交 Issue 时将该目录下的 BiliTools.log
作为附件上传
- 临时文件
即上文所提到的 临时文件
目录下的 com.btjawa.bilitools
目录 中的内容
下载完成后会自动清理临时文件,保留手动清理的选项是为了防止有漏网之鱼
请确保在所有文件下载完毕后再进行清理!
- WebView
应用前端运行时产生的缓存
- 应用数据库
即应用的数据库,包含登录信息、设置内容等等
谨慎删除,删除该数据库等同于重置应用;删除后需要重启应用
默认参数
在下载文件时,弹出选择参数的窗口时将会默认选择此处配置的参数
若某资源没有此处配置的参数选项时,将会使用此资源最高可用的参数选项
- 同时下载数
即 aria2c
下载资源时同时下载文件的数量
文件名格式
可以通过相互拖拽来添加、删除变量
目前支持以下变量:
- 资源类型
- AV号
- 标题
- 时间
YYYY-MM-DD_HH-mm-ss
- Unix 时间戳
精确至毫秒
网络代理
暂仅支持 HTTP(S)
协议, 未来会尝试支持 SOCKS
协议
代理地址的合法格式为 http(s)://server:port
,可在 地址
输入框的下面两个输入框中配置用户名与密码
更改完毕后,部分模块会立即生效,但还是建议重启应用以全局生效
Tauri核心
默认会在启动时使用系统代理中配置的参数作为全局代理源,这一点目前还无法干预
自动转换 FLAC
在哔哩哔哩获取到的 FLAC 音频默认会封装在 MPEG-4 容器内
启用此功能可以让下载 FLAC 时调用 ffmpeg 自动转换为标准 FLAC 文件
优先使用 ProtoBuf 方式下载弹幕
哔哩哔哩目前提供两种接口来获取弹幕,一种为 ProtoBuf
协议格式,一种为 XML
格式
只有 实时弹幕
依然可以使用 XML
格式,其他弹幕只可以通过 ProtoBuf
获得数据
这两种格式的区别是
XML
在哔哩哔哩服务端就已经做好了相应的筛选,比较贴近实际观看时的弹幕数量ProtoBuf
可以获得弹幕池中几乎所有弹幕,可以体验番剧弹幕密集到几乎看不见画面的效果
个人建议只是下载弹幕搭配例如 PotPlayer
的播放器离线观看时,可以使用 XML
(即将该配置选项关闭启用)
若是备份弹幕、拍摄快照等等的话,可以使用 Protobuf
(即将该配置选项打开启用)
在未来的某一天也许实时弹幕的XML也会被下架
更新
在此处可以配置更新行为,自动检查
开关可以配置每次启动应用时是否自动检测更新
不建议关闭,也许会错过某些重大BUG以及安全更新
检查更新
按钮可以立即检查更新,与关闭、再打开 自动检查
开关的行为一致
下载相关
关于 DASH / FLV / MP4
部分内容摘自 哔哩哔哩-API收集整理
DASH 格式
为目前哔哩哔哩广泛使用的格式,可以获得全分辨率的流地址(参见);但音频流与视频流是分开返回的,因此在下载音视频时需要多出一个 ffmpeg 合并音视频
的步骤
MP4 格式
可以直接获得同时有音频流与视频流的 MP4 格式视频;但由于哔哩哔哩在2023年的更新,较高分辨率均更新为了 DASH 格式,较低分辨率与老视频还保留了 MP4, 这导致较新视频无法获取 MP4 格式的高分辨率视频
FLV 格式
目前已下架,但 可能 部分视频还可以获得此格式的资源
关于漫画
近期官方的一次更新导致所有图像被额外加密,因此暂时关闭下载入口,等待进一步的开发工作
之前这个项目支持调用 Chrome
模拟抓包漫画,但是因为一些大家都知道的原因,因此暂不更新漫画
登录相关
当前的登录成功率为 扫码登录 > 短信登录 > 密码登录
已知 +1
手机号无法登录,哔哩哔哩官网也无法用 +1
手机号登录
频繁触发风控
大部分被风控的情况一般都是请求过快、频繁切换IP或是IP质量不高导致的,一般用户其实很难遇到账号被风控的情况
我测试时遇到的风控情况一般都是请求太快了,以及开发过程中测试参数有错误导致的
由于相关请求的方式都是手动抓包获得、社区讨论出来的,所以有些请求可能鉴权参数不够,导致哔哩哔哩认为账号有风险
这些问题无法彻底解决,尽量会在未来的更新中优化
遇到这种情况请写 Issue
告诉我,尽量说明做了什么操作疑似触发的风控
解决方案有下面几种
- 在应用内退出登录,在浏览器(或哔哩哔哩客户端)中退出登录,并清除相关 Cookie 与缓存,稍等几分钟后重新登录
- 若是无法使用大会员,请查看哔哩哔哩客户端大会员页面,如果提示大会员权益已被限制可按照提示解除风控
- 尽量不要过快的做一些操作
- 等待 5~15 分钟
关于B站后台提示的 “未知设备” 与 “Chrome浏览器”
登录过程实质是模拟 Chrome浏览器
的网页登录操作,哔哩哔哩会摘取请求的内容进行记录
User-Agent
照搬 Chrome浏览器
,但 buvid
的获取没有完全稳定,因此就会出现题中问题了
扫码登录由于成功率较大,在后台很大可能会看到 “Chrome浏览器”
其他
Linux
用户建议 clone
项目后自行使用 npm run tauri dev
运行应用
其实是因为我没怎么摸透 AppImage 的打包方式