ikooc / baidujiexi
git clone https://github.com/ikooc/baidujiexi.git
v1.2.8 · 3d ago
百度网盘不限大小不限速解析 - Flutter 客户端(Android arm64 / Windows x64),内嵌 Gopeed 下载引擎
—
stars, 24h
+30
stars, 7 days · #1,335
+30
stars, 30 days · #8,909
30
★ total · +30% this week
9
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageDart
License—
Created2026-10-17 (3d ago)
Last push3d ago
Watchers0
OwnerUser
Links
README excerpt
# 百度网盘不限大小不限速解析(baidujiexi) > Flutter 跨平台客户端:粘贴百度网盘分享链接 → 解析文件列表 → 取直链 → 内嵌 Gopeed 引擎多线程下载。 > 支持 Android(arm64-v8a)与 Windows x64,同一套 Dart 业务代码。 --- ## ⚠️ 免责声明 本项目仅供**个人学习与技术研究**使用,用于研究 HTTP 接口签名、Flutter 与原生桥接、Go 引擎内嵌等工程实践。 - 本项目**不提供、不托管、不分发**任何网盘账号、会员权益或侵权内容; - 解析服务由第三方站点提供,本客户端只是其接口的调用方,**不对服务可用性、合法性作任何保证**; - 请勿将本项目用于商业用途、批量抓取、二次分发或任何违反《百度网盘服务协议》及相关法律法规的行为; - 因使用本项目产生的一切后果由使用者自行承担。 如相关权利方认为本项目存在问题,请提交 Issue,仓库维护者会及时处理。 --- ## 目录 - 功能特性 - 运行截图与界面结构 - 技术栈 - 项目结构 - 快速开始 - 核心流程 - 架构设计 - 接口与签名 - 远程配置 - Gopeed 下载引擎 - WebView 密码查询 - 存储与权限 - 构建与发布 - 测试 - 版本历史 - 常见问题 - 深入文档 --- ## 功能特性 | 模块 | 能力 | | --- | --- | | 链接识别 | 支持 `https://pan.baidu.com/s/xxxx` 与 `pan.baidu.com/wap/init/?surl=xxxx`;自动从纯文本中提取链接与 `提取码:vD32` / `?pwd=vD32` | | 目录浏览 | 解析分享根目录与多级子目录,支持返回上级;文件类型/大小/修改信息展示 | | 批量解析 | 勾选多个文件后**串行**请求直链,避免触发站点限流;按站点规则过滤体积/数量 | | 图形验证码 | 服务端返回 `-20` 时自动拉取 `get_vcode`,弹窗输入后重试 | | 下载引擎 | 内嵌 Gopeed(Go)引擎,多连接多线程下载,支持暂停 / 继续 / 删除 / 删除文件 | | 断点续传 | 引擎任务元数据落盘(bolt),App 重启后通过 `GET /tasks` 恢复任务列表 | | 引擎自愈 | 连接类错误自动 `forceReset()` + 重启引擎并重试一次,避免死端口导致永久失败 | | 下载目录 | 自定义目录 / 系统公共 Download / 应用专属目录三级回退,写入探针校验可写 | | 远程配置 | 接口域名、公告、解析密码、弹窗、密码查询站地址全部云端下发,改配置无需重新发版 | | 密码查询 | 内置 WebView 走 Cloudflare Turnstile 人机验证,自动完成三步流程并回填解析密码 | | 主题 | Material 3 明/暗双主题,跟随系统或手动切换 | | 下载直链 | 解析结果支持复制直链、复制文件名、浏览器打开、一键引擎下载 | --- ## 运行截图与界面结构 [code] 主要页面: | 文件 | 职责 | | --- | --- | | `lib/ui/home_page.dart` | 首页:链接输入、目录浏览、勾选、批量解析、结果展示 | | `lib/ui/downloads_page.dart` | 下载任务列表:进度、速度、暂停/继续/删除、下载目录设置 | | `lib/ui/pwd_query_page.dart` | 内置 WebView 密码查询(Turnstile + 双层密码) | | `lib/ui/app_popup_dialog.dart` | 后台下发的启动弹窗(链接 / QQ 群) | --- ## 技术栈 | 层 | 选型 | 说明 | | --- | --- | --- | | UI | Flutter 3.44.7 / Dart 3.12.2 | Material 3,单代码库支持 Android + Windows | | 状态 | `StatefulWidget` + `ChangeNotifier` | 无第三方状态管理,降低依赖面 | | 网络 | `package:http` 1.2.2 | 超时、429 退避、错误映射统一收口 | | 存储 | `shared_preferences` | token、设备指纹、自定义下载目录 | | 签名 | `package:crypto` | SHA-1 十六进制摘要 | | 密码查询 | `webview_flutter` 4.14.1 + `webview_flutter_android` 4.12.0 | 需 Android 侧 `displayWithHybridComposition` 降级 | | 下载引擎 | Gopeed(Go) | Android 走 AAR + `Mobile.start()`;Windows 走 `gopeed-rest.exe` 子进程 | | 原生桥 | Kotlin MethodChannel | 引擎启停 / 存储权限 / WebView 内核探测 | --- ## 项目结构 [code] --- ## 快速开始 ### 环境要求 | 项 | 版本 | | --- | --- | | Flutter | 3.44.7 stable(Dart 3.12.2+) | | Android | JDK 17、Android SDK(compileSdk 跟随 Flutter)、NDK(跟随 Flutter) | | Windows | Visual Studio 2022(含「使用 C++ 的桌面开发」)、CMake 3.14+ | ### 运行 [code] ### 构建 [code] 产物位置: - `build/app/outputs/flutter-apk/app-release.apk` - `build/windows/x64/runner/Release/`(`tierflow.exe` + `gopeed-rest.exe` + `data/`) > ⚠️ `android/.gitignore` 默认忽略 `gradlew` / `gradle-wrapper.jar` / `local.properties`。 > 克隆仓库后若 Gradle 构建失败,执行 `flutter create .` 重新生成,或手动补回 wrapper 并创建 > `android/local.properties`(内容为 `flutter.sdk= `)。 --- ## 核心流程 ### 1. 启动引导 [code] `HomePage.initState()` 会再拉一次远程配置(命中进程内 `_cached`),把公告、解析密码、 密码查询站地址、启动弹窗写入本地状态,并在需要时弹出启动弹窗(每次启动仅一次)。 ### 2. 解析文件列表 [code] 点击目录 → 以 `dir = ite