☰
BiliTools 技术解析:基于 Tauri 与 Rust 的轻量 Bilibili 资源解析工具箱
2026/10/2 21:00:06 网站建设 项目流程
  • 桌面应用
  • 音视频

【免费下载链接】BiliTools

本项目已停止维护。

项目地址:https://gitcode.com/GitHub_Trending/bilit/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):

就成功率而言,目前扫码登录 > 短信登录 > 密码登录。

需要了解的两个实现事实:

  1. 登录逻辑基于哔哩哔哩 Web API,实质是模拟 Chrome 浏览器的登录过程,因此登录后账号后台看到的设备提示大概率是「Chrome 浏览器」。
  2. 目前已知密码/短信登录会提示「未知设备」,且密码登录因风控问题暂不可用——这意味着在实际使用中,扫码登录是唯一推荐的稳定入口。

导入 Cookie(数据库编辑方式)

如果你已在哔哩哔哩官网获得了 Cookie 序列,可以通过编辑 SQLite 数据库直接使用(参考官方 Discussion #152,内容详见 docs/guide/login.md):

[!CAUTION] 编辑数据库有一定风险,请确保你知道自己正在做什么。

操作步骤:

  1. 使用支持 SQLite 的数据库编辑器打开应用数据库(各平台路径见下文「数据存储」一节)。
  2. 切换到cookies表。
  3. 将 Cookies 拆分成键值对后插入数据库。
  4. 其余字段(如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

本项目已停止维护。

项目地址:https://gitcode.com/GitHub_Trending/bilit/BiliTools
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询