- 桌面应用
- 音视频
【免费下载链接】BiliTools
本项目已停止维护。
导读
BiliTools 是一款基于 Tauri 构建的简约轻量级哔哩哔哩(Bilibili 中国版)工具箱,前端采用 TypeScript/Vue,后端核心逻辑由 Rust 实现。本文以其官方日文说明文档(README_JA.md)为核心骨架,结合仓库源码(src-tauri/src、src/services)与官方指南(docs/guide),系统拆解其资源解析能力、登录验证机制、任务队列架构、数据存储方案与合规边界,帮助你快速判断它能否满足自己的下载、刮削与整理需求,并理解其底层实现原理。
[!IMPORTANT] 项目信息注明本项目已停止维护;官方说明也指出,自
1.4.0正式版发布后项目进入稳定状态、暂缓更新。本文介绍的是其现有能力与实现,读者可将其作为可复用的开源实现参考。
项目定位与目标平台
BiliTools 的定位是「简约、轻量的 Bilibili 工具箱」,与同类下载器相比,其技术选型有两个显著特征:
- 基于 Tauri 构建:应用体积小、内存占用低,官方文档(docs/index.md)注明应用本体仅约 30 MB,受益于 Tauri 框架与 WebView2 的灵活性。
- 前端 + Rust 后端的混合架构:前端负责界面交互(src/App.vue),下载、解析、队列调度等重逻辑由 Rust 实现(src-tauri/src/services)。
文档明确声明了支持范围:
[!IMPORTANT]本项目面向哔哩哔哩中国版(bilibili.com),不支持海外版(bilibili.tv)。付费/VIP 内容的解析与下载,仅限已订阅相应服务的账号。
同时,由于应用基于用户账号解析资源,若要下载大会员专属内容,需要先订阅大会员或购买对应内容(见 docs/guide/about.md)。
核心功能矩阵
README_JA.md 以功能表格的形式给出了完整的能力清单(中文部分为翻译未完成的原文),以下完整继承并按「资源解析 / 登录与验证 / 其他功能」三组展开。
资源解析能力
| 资源 | 状态 | 备注 |
|---|---|---|
| 视频 | ✅ 已完成 | 支持合集 / 分P / 互动、番剧 / 课程 / 电影;支持 DASH、MP4、FLV;支持 4K、8K、HDR、杜比视界 |
| 音频 | ✅ 已完成 | 支持 AVC、HEVC、AV1;支持杜比全景声、Hi-Res |
| 实时弹幕 | ✅ 已完成 | ASS / XML 格式;可解析弹幕池中几乎所有弹幕 |
| 历史弹幕 | ✅ 已完成 | ASS / XML 格式 |
| 音乐 | ✅ 已完成 | 支持无损 FLAC、320Kbps 音乐 / 歌单 |
| 封面 | ✅ 已完成 | 支持番剧 / 电影海报 / 合集封面 / 课程预览等 |
| 字幕 | ✅ 已完成 | SRT 格式 |
| 收藏夹 | ✅ 已完成 | FID 号解析 |
| NFO 刮削 | ✅ 已完成 | 合集 / 剧集刮削、单集刮削 |
| 元数据 | ✅ 已完成 | 音频文件支持写入基本元数据 |
| AI 总结 | ✅ 已完成 | Markdown 格式,来自哔哩哔哩「AI 小助手」 |
登录与验证能力
| 登录 & 验证 | 状态 | 杂项 | 状态 |
|---|---|---|---|
| 扫码登录 | ✅ 已完成 | 明暗主题 | ✅ 已完成 |
| 密码登录 | ✅ 已完成 | 监听剪切板 | ✅ 已完成 |
| 短信登录 | ✅ 已完成 | HTTP 代理 | ✅ 已完成 |
| 自动刷新登录状态 | ✅ 已完成 | 过滤 PCDN | ✅ 已完成 |
| 参数签名 | ✅ 已完成 | 音频转 MP3 | ✅ 已完成 |
| 风控验证 | ✅ 已完成 | 命名格式 | ✅ 已完成 |
| 指纹验证 | ✅ 已完成 | 历史记录 | ✅ 已完成 |
[!TIP] 中文版说明(docs/guide/about.md)在「其他」分类中还补充了「用户投稿、稍后再看、监听拖拽链接、WebView 缓存清理」等能力,是日文版表格的扩展。解析支持的输入形式详见 docs/guide/parsing.md(支持 AV 号、BV 号、B23.TV 短链、分享链接、SS/EP/MD 号、AU/AM 号、图文合集、用户空间与收藏夹等)。
登录机制与 Cookie 导入
三种登录方式的成功率
官方说明给出了明确的优先级结论(docs/guide/login.md):
就成功率而言,目前扫码登录 > 短信登录 > 密码登录。
需要了解的两个实现事实:
- 登录逻辑基于哔哩哔哩 Web API,实质是模拟 Chrome 浏览器的登录过程,因此登录后账号后台看到的设备提示大概率是「Chrome 浏览器」。
- 目前已知密码/短信登录会提示「未知设备」,且密码登录因风控问题暂不可用——这意味着在实际使用中,扫码登录是唯一推荐的稳定入口。
导入 Cookie(数据库编辑方式)
如果你已在哔哩哔哩官网获得了 Cookie 序列,可以通过编辑 SQLite 数据库直接使用(参考官方 Discussion #152,内容详见 docs/guide/login.md):
[!CAUTION] 编辑数据库有一定风险,请确保你知道自己正在做什么。
操作步骤:
- 使用支持 SQLite 的数据库编辑器打开应用数据库(各平台路径见下文「数据存储」一节)。
- 切换到
cookies表。 - 将 Cookies 拆分成键值对后插入数据库。
- 其余字段(如
path、domain等)可留空;如果你知道如何获取这些字段,也可一并填入。
数据存储:SQLite 与本地路径
应用产生的所有配置、下载信息、登录信息与缓存数据,均以SQLite 格式明文存储于用户本地。各平台默认数据目录如下(来自 README_JA.md 与 docs/guide/about.md):
| 平台 | 路径 |
|---|---|
| Windows | %AppData%\com.btjawa.bilitools |
| macOS | $HOME/Library/Application Support/com.btjawa.bilitools |
| Linux | $HOME/.local/share/com.btjawa.bilitools |
源码级佐证
Rust 侧的数据目录与缓存管理实现在 src-tauri/src/storage/config.rs:
- 数据库文件路径:
path.app_data_dir()?.join("Storage")(config.rs:67),即各平台app_data_dir下的Storage子目录,与应用标识com.btjawa.bilitools对应(队列管理器中使用.app_id("com.btjawa.bilitools"),见 manager.rs:221)。 - 临时目录:
self.temp_dir.join("com.btjawa.bilitools")(config.rs:84),与官方提示「临时文件的真实存放路径为临时文件/com.btjawa.bilitools」完全一致。 app_data_dir的获取实现在 src-tauri/src/shared.rs。
在设置页的「存储」区域,可以分别管理路径(输出目录与临时目录)与缓存(日志、临时文件、WebView 缓存、数据库),其中删除数据库即等于重置应用;也可以导出/导入数据库进行备份与恢复(详见 docs/guide/settings.md)。
国际化(I18N)
项目以简体中文(zh-CN)为主开发语言,同时也是其他语言翻译的母本。仓库 src/i18n/index.ts 中的实现确认了完整的语言支持矩阵:
| 代码 | 语言 | 支持状态 |
|---|---|---|
| zh-CN | 简体中文 | ✅ 已支持 |
| zh-HK | 繁体中文 | ✅ 已支持 |
| en-US | 英文 | ✅ 已支持 |
| ja-JP | 日文 | ✅ 已支持 |
实现细节:createI18n配置中fallbackLocale: 'zh-CN',即当某语言缺失翻译条目时会回退到简体中文;四种语言的翻译文件位于 src/i18n/locales(zh-CN.json、zh-HK.json、en-US.json、ja-JP.json)。
下载与任务队列:队列 → 任务组 → 任务 → 子任务
虽然 README_JA.md 未展开,但下载页是工具箱的核心使用场景。任务管理基于队列与任务组机制,层级关系(docs/guide/download.md):
队列 └── 任务组 └── 任务 └── 子任务关键设计:
- 并发以任务为单位,可跨任务组并发;子任务考虑连续性,选择串行执行。
- 任务组的本质是「调度器(Scheduler)」,负责组织并调度其中的任务——这对应 Rust 侧 src-tauri/src/services/queue/scheduler.rs 与 manager.rs 的实现。
- 备选区机制:等待队列中始终存在一个特殊任务组「备选区」,其中的任务仅作缓冲,不会立即开始下载,只有手动点击「开始执行」后才进入进行队列;也可以在 docs/guide/settings.md 的「通用 → 自动开始下载」中开启自动下载。
- 任务状态通过卡片描边颜色提示:灰色(pending 等待)、蓝色(active 进行中)、绿色(completed 成功)、黄色(paused 暂停)、红色(failed 失败)。
下载引擎与 Sidecar 二进制
下载与媒体处理并不由应用自行实现,而是内置三个开源 Sidecar 二进制(src-tauri/binaries 按 Windows/macOS/Linux 三平台分架构提供):
| Sidecar | 用途 |
|---|---|
| aria2 | 轻量多协议、多源、跨平台下载工具,负责实际下载(DASH 分片等) |
| FFmpeg | 媒体处理,用于音视频混流、FLAC 标准化、MP4/MP3 强制转换等 |
| DanmakuFactory | 将 XML 弹幕转换为 ASS 外挂字幕 |
- 下载限速(单位为 KiB/s,填 0 取消限速)与 aria2c 的自定义执行路径,均需要重启应用才能生效,因为 aria2c 是后台服务(docs/guide/settings.md)。
- DanmakuFactory 的转换参数可通过各平台数据目录下的
DanmakuFactory.json自定义(分辨率、滚动时长、字体、透明度、描边/阴影等,完整示例见 docs/guide/settings.md)。 - 自
v1.4.0起,弹幕请求全面迁移至 ProtoBuf 协议接口,应用自动转换为 XML 格式,转换逻辑见 src/services/media/dm.ts 的DanmakuEventToXML。
风控(Risk Control)须知
项目本质是模拟 Chrome 浏览器向哔哩哔哩 API 发起请求,各种参数的使用方式大多来自个人抓包与社区讨论,因此无法保证每个参数都符合接口预期,存在被识别为爬虫而触发风控的可能(docs/guide/risk.md)。
官方给出的实际建议:
- 应用内会提示不要一次性选择超过 30 个任务,勾选大量任务时有概率触发
412 Precondition Failed及其他风控。 - 倡导「少量多次」:大量内容需要下载时,建议每次勾选不超过 15 个任务,以最大程度保障账号安全。
- 被风控后的处理:大会员权限被限制时按官方网站指引解除;应用内提示
412时,要么等半小时,要么更换 IP,官方更推荐前者。
安装与平台支持
唯一官方发行渠道为 GitHub Releases(详见 docs/guide/install.md,安装页当前标注版本1.4.7):
- Windows:提供 x64 的
setup.exe安装包;不支持 Windows ARM 与 Windows 7,需安装 WebView2 运行时。 - macOS:支持 macOS 11.0+,Intel(x64)与 Apple 芯片(aarch64)分别提供
dmg镜像;官方明确切勿直接使用tar.gz包。 - Linux:Debian/Ubuntu(Ubuntu 22.04+、Debian 12+)使用
apt安装deb包;CentOS/Fedora 使用dnf安装rpm包(官方标注尚未测试可用性)。
# Debian / Ubuntu sudo apt-get install -y ./bilitools_x.y.z_arch.deb # CentOS / Fedora sudo dnf install -y ./bilitools_x.y.z_arch.rpm合规边界与免责声明
README_JA.md 以「声明・免責事項」章节明确了项目边界,这是使用前必须知悉的内容:
[!IMPORTANT] 本项目遵循GPL-3.0-or-later开源协议(LICENSE),免费公开:任何形式的二次分发必须继续开源、遵守相同协议、保留原作者及版权信息。
其他关键声明:
- 项目仅供技术学习与代码验证,强烈反对且不纵容任何形式的盗版、非法转载、黑产及其他违法用途。
- 因使用本项目产生的任何后果(包括但不限于非法用途、账号风控或其他损失),均由用户个人承担,与作者无关。
- 项目开源免费,作者未从中获得经济收益;不会绕过身份验证机制、破解付费资源或实施其他非法行为。
- 所有数据使用 SQLite 格式明文存储于本地(路径见上文)。
- 项目是独立的第三方工具,与哔哩哔哩及其关联公司无任何关联、合作、授权或背书关系;「哔哩哔哩」「Bilibili」名称、LOGO 及相关图形是上海幻电信息科技有限公司的注册商标或商标。
- 通过本项目获取的内容,版权归原权利人所有,请遵守相关法律法规及平台服务协议。
延伸阅读
- 完整功能说明与界面截图:docs/guide/about.md
- 解析输入形式与导出数据结构(
interface MediaInfo定义于 src/types/shared.d.ts):docs/guide/parsing.md - 下载与任务管理、状态颜色:docs/guide/download.md
- 参数选择(分辨率、编码、比特率、流媒体格式)与 NFO 刮削:docs/guide/resource.md
- DASH / MP4 / FLV 三种串流格式的取舍:docs/guide/stream.md
- 全部设置项(通用、存储、下载、策略、命名):docs/guide/settings.md
- 更新历史:CHANGELOG.md
- 桌面应用
- 音视频
【免费下载链接】BiliTools
本项目已停止维护。
相关推荐
BiliTools 项目全景:基于 Tauri & TypeScript & Rust 的轻量哔哩哔哩工具箱解析
BiliTools 项目全景:基于 Tauri & TypeScript & Rust 的轻量哔哩哔哩工具箱解析 导读 :本文以 BiliTools 文档站首页
桌面应用音视频BiliTools 深度解析:基于 Tauri v2 的跨平台哔哩哔哩资源下载与登录工具箱
BiliTools 深度解析:基于 Tauri v2 的跨平台哔哩哔哩资源下载与登录工具箱 本文以 BiliTools 官方英文 README( README_
桌面应用音视频BiliTools 全解析:基于 Tauri 的哔哩哔哩跨平台资源工具箱安装、解析与下载实战指南
BiliTools 全解析:基于 Tauri 的哔哩哔哩跨平台资源工具箱安装、解析与下载实战指南 BiliTools 是一个基于 Tauri 构建的简约、轻量的
桌面应用音视频
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考