📈 GH Trending Explorer 🎲 Surprise me

← all repos

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