- 桌面应用
- 音视频
【免费下载链接】BiliTools
本项目已停止维护。
导读:本文以 BiliTools 文档站首页 docs/index.md 为核心骨架,系统拆解这个“简约 & 轻量”哔哩哔哩工具箱的定位与技术底座——从 Tauri + TypeScript + Rust 的混合架构,到约 30 MB 应用本体的轻量化原理,再到明暗主题、全量资源解析与四语言国际化四大特性的实现证据。读完本文,你将掌握 BiliTools 的整体架构脉络、功能边界与源码级佐证路径,可直接作为阅读文档站、定位功能模块与二次开发的地图。
| 暗色主题 | 亮色主题 |
|---|---|
一、项目定位:一个基于用户账号解析资源的工具箱
BiliTools 的官方定位是一句“简约 & 轻量的哔哩哔哩工具箱”,由docs/index.md首页的 hero 区块定义:应用名BiliTools,副标题“简约 & 轻量的哔哩哔哩工具箱”,技术底座标注为“基于 Tauri & Typescript & Rust 构建”。这一定位在仓库中可得到完全印证:
- 前端:Vue 3 + TypeScript + Pinia + Vue Router + vue-i18n,见 package.json 中
vue: 3.5.25、pinia: ^3.0.4、vue-i18n: ^11.2.2、vue-router: 4.6.4等依赖; - 后端:Rust + Tauri 2.x,见 src-tauri/Cargo.toml 中
tauri = "2.9.5"、sqlx(SQLite)、tokio、specta等核心依赖; - 桌面壳:src-tauri/tauri.conf.json 声明应用标识符
com.btjawa.bilitools、版本1.4.7,并启用macOSPrivateApi、内建更新器(updater)配置。
需要特别说明的前提是:本项目基于用户账号解析资源,因此若要解析大会员限定内容或付费内容,必须先登录具备相应权限的账号(详见 docs/guide/login.md 的登录说明与 docs/guide/about.md 的 IMPORTANT 提示)。
此外,仓库 README 与 docs/guide/about.md 均注明:项目在v1.4.0正式版发布后进入稳定状态、暂缓更新;当前仓库版本号为1.4.7(package.json、src-tauri/Cargo.toml、src-tauri/tauri.conf.json 三处一致)。它同时是一个独立的第三方工具,与哔哩哔哩官方无关联、合作或授权关系,获取内容的版权归原权利人所有,仅供学习技术与测试代码使用。
二、技术栈与整体架构:Tauri 混合式桌面应用的三层结构
docs/index.md将技术栈概括为 “Tauri & TypeScript & Rust”。结合仓库目录,可将 BiliTools 划分为三层:
2.1 前端层(TypeScript / Vue 3)
前端代码位于 src/,由 src/main.ts 启动:createApp(App).use(store).use(router).use(i18n).mount('#app'),并注册了全局错误处理(window.onerror、onunhandledrejection)与AppError上报机制。
路由由 src/router/index.ts 定义,共 6 个页面,对应应用六大模块:
| 路由 | name | 页面组件 |
|---|---|---|
/ | searchPage | src/views/SearchPage.vue(搜索 / 解析) |
/user-page | userPage | src/views/UserPage.vue(用户空间) |
/history-page | historyPage | src/views/HistoryPage.vue(历史记录) |
/down-page | downPage | src/views/DownPage.vue(下载队列) |
/settings-page | settingsPage | src/views/SettingsPage.vue(设置页) |
/info-page | infoPage | src/views/InfoPage.vue(关于 / 信息) |
状态管理采用 Pinia,按域拆分:app、components、queue、settings、user,见 src/store/。业务逻辑封装在 src/services/ 中,包括auth(鉴权)、login(登录)、queue(队列)、clipboard(剪贴板监听)、media(媒体数据解析)与backend(Tauri 命令桥接)。
2.2 Rust 后端层(Tauri 命令与持久化)
后端位于 src-tauri/,核心模块包括:
- 服务层src-tauri/src/services/:
queue/(任务队列的 manager、scheduler、runtime、handler 等)、aria2c.rs(下载引擎封装)、ffmpeg.rs(媒体处理)、login.rs(登录与会话); - 存储层src-tauri/src/storage/:
config.rs、cookies.rs、db.rs、migrate.rs(数据库迁移)、queue.rs、schedulers.rs、tasks.rs,持久化采用 SQLite(sqlx运行时); - 命令入口src-tauri/src/commands.rs 通过
tauri-specta生成类型安全的 TypeScript 绑定,供前端commands直接调用。
2.3 内置第三方二进制
“开箱即用”背后是 src-tauri/binaries/ 中按平台(Windows / macOS / Linux × x86_64 / aarch64)分发的三个核心工具:aria2c(轻量多协议下载器)、ffmpeg(多媒体处理)、DanmakuFactory(弹幕 XML→ASS 转换),分别对应 docs/guide/download.md 的下载处理流程与 docs/guide/stream.md 的格式说明。
三、特性一:轻量 —— 约 30 MB 应用本体的原理
docs/index.md的“轻量”特性卡原文为:“得益于 Tauri 框架及 WebView2 的灵活性,应用本体仅有 ~30 MB。”其技术原理可从仓库中得到三点佐证:
- 复用系统 WebView:Tauri 不打包 Chromium,而是调用操作系统原生 WebView(Windows 上为 WebView2),因此免去了 Electron 式的大体积运行时;
- Rust 发布优化:src-tauri/Cargo.toml 的
[profile.release]配置了opt-level = "s"(体积优先优化)、lto = true(链接期优化)、codegen-units = 1,从编译期控制二进制体积; - 按需分发二进制:aria2c / ffmpeg / DanmakuFactory 均按目标平台单独打包(见 scripts/binaries.mjs),避免跨平台冗余。
需要指出的是,“~30 MB”为首页文档给出的应用本体量级描述;具体安装包体积会随平台、架构与依赖版本略有差异,应以实际构建产物为准。
四、特性二:简约 —— 明暗主题与开箱即用
“简约”特性卡强调“界面轻盈简洁,支持明暗主题,开箱即用”。这一定位在源码中有明确落点:
- 明暗主题:根组件 src/App.vue 监听
settings.isDark,动态切换 Font Awesome 图标字重(fa-solid/fa-light)并联动全局样式;主题偏好保存在设置 store(src/store/settings.ts)中,并在 docs/guide/settings.md 有对应说明; - 开箱即用:应用启动时(src/App.vue 的
onMounted)依次调用commands.meta()恢复任务/调度器状态、commands.init()初始化环境、fetchUser()拉取用户信息、activateCookies()激活会话; - 剪贴板即搜即解析:
clipboard.register(...)监听剪贴板内容,一旦识别出 B 站链接/ID 便自动跳转搜索页并触发解析,这是“简约”交互体验的直接体现。
界面效果可对照本文开头两张截图:暗色/亮色两套主题均保持一致的轻盈观感。
五、特性三:功能 —— 从番剧到收藏夹,弹幕到 NFO
“功能”特性卡原文为“从番剧到收藏夹,弹幕到 NFO,尽数支持”。以 docs/guide/about.md 的功能矩阵为准,可细分为三大类(全部标注为“已完成”):
5.1 资源类
| 资源 | 能力要点 |
|---|---|
| 视频 | 合集 / 分P / 互动、番剧 / 课程 / 电影;DASH、MP4、FLV;4K、8K、HDR、杜比视界 |
| 音频 | AVC、HEVC、AV1;杜比全景声、Hi-Res |
| 实时弹幕 | ASS / XML 格式,可解析弹幕池中几乎所有弹幕 |
| 历史弹幕 | ASS / XML 格式 |
| 音乐 | 无损 FLAC、320Kbps 音乐 / 歌单 |
| 封面 | 番剧 / 电影海报 / 合集封面 / 课程预览等 |
| 字幕 | SRT 格式 |
| 用户投稿 | 视频 / 图文 / 专栏 / 动态 / 音频 |
| 稍后再看 | 列表与单项 |
| 收藏夹 | 任意用户收藏夹 |
| NFO 刮削 | 合集/剧集刮削、单集刮削 |
| 元数据 | ID3v2 / Vorbis Comments |
| AI 总结 | Markdown 格式,来自哔哩哔哩 AI 小助手 |
这些能力对应 docs/guide/parsing.md(解析链接)、docs/guide/resource.md(选择资源)、docs/guide/download.md(下载与处理)三个文档的完整操作流程。
5.2 账号类
扫码登录、密码登录、短信登录、刷新登录、参数签名、风控验证、指纹验证,全部标注完成。登录与会话管理由 src/services/login.ts 与后端 src-tauri/src/services/login.rs 协同实现,其使用细节与风险提示见 docs/guide/login.md 和 docs/guide/risk.md。
5.3 其他能力
明暗主题、监听剪贴板、HTTP 代理、过滤 PCDN、音频转 MP3、命名格式、历史记录。其中下载队列、任务调度与命名格式等底层实现分别位于 src-tauri/src/services/queue/(manager / scheduler / runtime / task)与前端 src/components/DownPage/ 系列组件中。
六、特性四:国际化 —— 四种语言与翻译源策略
“国际化”特性卡声明支持“简体中文、繁体中文、英语与日语”,仓库证据确凿:国际化入口 src/i18n/index.ts 注册了 4 个 locale——zh-CN、zh-HK、en-US、ja-JP,对应语言包位于 src/i18n/locales/,并将zh-CN设为fallbackLocale(回退语言)。
README 进一步说明维护策略:简体中文(zh-CN)为主要维护语言并作为其他语言的翻译源,多数翻译由 AI 生成后再人工润色。这一多语言架构也延续到了文档站本身——docs/config.ts 以lang: 'zh-CN'组织文档导航,而仓库同时维护 README_EN.md 与 README_JA.md。
七、数据存储与合规边界
根据 docs/guide/about.md 与 README 的声明,BiliTools 产生的所有数据(任务、配置、Cookie 等)均以SQLite 格式明文存储于用户本地,具体路径按平台区分:
- Windows:
%APPDATA%\com.btjawa.bilitools - macOS:
$HOME/Library/Application Support/com.btjawa.bilitools - Linux:
$HOME/.local/share/com.btjawa.bilitools
后端存储实现与数据库迁移逻辑可在 src-tauri/src/storage/(db.rs、migrate.rs、tasks.rs等)中查阅。
合规边界同样值得注意:本项目遵守 LICENSE 的GPL-3.0-or-later开源协议,任何形式的二次分发必须继续开源、遵守相同协议并保留原作者与版权信息;项目明确不会绕过身份验证机制、破解付费资源,且不纵容盗版、非法转载与黑产用途——因使用本项目产生的账号风控或其他后果由用户自行承担。这也是“基于用户账号解析资源”设计的前提约束。
八、文档导航:从快速开始到深入使用
文档站首页的两个入口——“快速开始”(/guide/about)与“博客 / 其他信息”——对应到仓库即为完整的文档体系。若想快速上手,推荐按以下顺序阅读:
- 安装:docs/guide/install.md——下载与安装说明;
- 登录:docs/guide/login.md——扫码 / 密码 / 短信登录与会话刷新;
- 解析与下载:docs/guide/parsing.md → docs/guide/resource.md → docs/guide/download.md——从解析链接、选择资源到下载与后处理;
- 格式须知:docs/guide/stream.md——DASH / MP4 / FLV 的差异与取舍;
- 设置:docs/guide/settings.md + docs/help/index.md——配置项总览与常见问题。
结语
从docs/index.md首页的四个特性出发,可以看到 BiliTools 在“轻量、简约、功能、国际化”四个维度上均有扎实的源码与配置支撑:Tauri + Rust 保证小体积与高性能,Vue 3 + TypeScript 提供轻盈可维护的界面,内置 aria2c / ffmpeg / DanmakuFactory 让下载与处理开箱即用,四语言 i18n 与 SQLite 本地明文存储则定义了清晰的边界与可审计性。对于想研究 Tauri 2.x 混合式桌面应用架构、B 站 API 客户端实现或 Vue 3 国际化方案的开发者而言,这份仓库是一份结构清晰、可直接对照源码阅读的参考实现。
- 桌面应用
- 音视频
【免费下载链接】BiliTools
本项目已停止维护。
相关推荐
BiliTools:跨平台哔哩哔哩工具箱全面解析
BiliTools:跨平台哔哩哔哩工具箱全面解析 BiliTools是一个基于Tauri框架构建的跨平台哔哩哔哩工具箱,采用Rust后端和Vue.js前端技术栈
桌面应用音视频从零到一:构建nanomsg安全防护金字塔的演进之路
从零到一:构建nanomsg安全防护金字塔的演进之路 在分布式系统的星辰大海中,nanomsg安全防护如同精密的防御工事,守护着消息传递的生命线。作为高性能消息
消息队列通信如何在5分钟内使用Python-zeep快速调用SOAP服务
如何在5分钟内使用Python zeep快速调用SOAP服务 Python zeep是一个强大的Python SOAP客户端,能够帮助开发者轻松地与SOAP服务
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考