BiliVideoDown:B站视频下载,一个桌面应用就够了

bilivideo_down 由 kangpeiqin 开发,目前在 GitHub 上获得了 861 Star。这是一个基于 Flutter 的桌面端 B 站视频下载工具,支持 Windows 10 和 macOS 两个平台,核心功能是把 B 站视频下载到本地存储。

正文顶部截图

1、 这个工具怎么用

BiliVideoDown 是一个独立桌面应用,和命令行工具、浏览器插件属于不同类型。打开后的界面是常规视频下载工具布局:粘贴 B 站视频链接,选择清晰度,开始下载。整个过程不需要配置任何参数,也不需要安装额外依赖。

底层基于 Flutter 框架,一套 Dart 代码同时在 Windows 和 macOS 上运行。Flutter 桌面端支持在其 3.0 版本之后才逐步成熟,BiliVideoDown 选择了这条路线,意味着它不像 Electron 应用那样需要打包整个 Chromium,安装包体积相对可控。

项目维护了两个分支:main 分支用 GetX 做状态管理,dev 分支用 Riverpod。对在学 Flutter 状态管理的开发者来说,同一个项目用两种方案各实现一遍,对比阅读比看两套独立项目要高效。

2、 B 站视频下载的常见方案

README区域截图

下载 B 站视频这件事,市面上方案可以分为几类。

浏览器插件最普遍,安装后在 B 站播放页直接出现下载按钮,方便但也最容易失效。B 站前端每次更新都可能改变页面结构,插件需要跟进适配,中间存在空窗期。

油猴脚本灵活度更高,用户可以自行修改匹配规则,但前提是安装脚本管理器如 Tampermonkey,对普通用户来说多了一步操作门槛。

在线解析站最简单,打开网页粘贴链接就行,不需要安装任何东西。缺点是画质通常被压缩,服务器带宽和稳定性由站点运营方决定,可能随时关闭。

命令行工具如 you-get 和 yt-dlp 功能完备,支持批量下载和自定义参数,面向的是有技术背景、习惯终端操作的用户。

桌面应用走的是另一条路线。它独立于浏览器运行,不受前端改动影响。不需要安装任何扩展或脚本管理器。下载逻辑封装在应用内部,用户操作流程缩短为粘贴链接和选择画质两步。BiliVideoDown 做的就是这个定位。

3、 项目结构与技术细节

项目基于 Flutter 开发,Dart 语言编写,一套代码覆盖 Windows 和 macOS 两个桌面平台。不支持 Linux,这一点在 README 中有明确说明。

状态管理方面有两个方案:main 分支用 GetX,dev 分支换成了 Riverpod。GetX 集成度高,路由、依赖注入、状态管理全部放在一个包里,上手快但耦合度也高。Riverpod 类型安全性更好,编译期就能发现错误,单元测试写起来也方便,但模板代码会多一些。对在 Flutter 状态管理选型阶段的人来说,看同一个项目用两种方式分别实现,对比非常直观。

项目采用 GPL 3.0 开源协议。代码结构集中在视频下载的核心逻辑和界面交互上,文件量不大,适合用来了解 Flutter 桌面应用开发的基本流程,尤其是网络请求和本地文件写入相关的实现。

本地开发和运行也很简单,安装 Flutter SDK 后执行单条命令即可:

# windows 平台
flutter run -d windows
# macOS 平台
flutter run -d macOS

4、 适合哪些人用

  • 需要下载 B 站教程类视频离线观看的用户,比如通勤途中或网络不稳定的环境下学习
  • 想研究 Flutter 桌面应用开发的人,可以参考项目架构和两种状态管理实现
  • 偏好桌面软件操作方式、不想在浏览器里折腾插件或脚本的普通用户

BiliVideoDown 目前 861 Star,数量不算高,但代码结构规整,功能定位清晰。如果需求只是把 B 站视频下载到本地,这个工具够用。

1 Star,数量不算高,但代码结构规整,功能定位清晰。如果需求只是把 B 站视频下载到本地,这个工具够用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐