多线程分片 · 断点续传 · 智能选源 · 代理自动降级 基于 hyperdownloader v1.4.1 深度定制(16 项源码级优化)—— 声明:本项目仅用于学习与技术交流,请勿用于商业用途。
- 下载 HuggingFace / GitHub 大模型文件,速度常年 200KB/s → IXZ 多连接并发,实测拉满 12.8–16.5 MB/s
- 下载到一半断网/报错 → 失败任务自动续传,.hds 控制文件无损恢复分片,不用从头再来
- 挂了代理反而更慢 → 国内镜像自动直连 + 分片级代理↔直连翻转降级,哪条路快走哪条
- 多个下载源不知道哪个能用 → 并行探测全部源,按实测响应速度排序选源,劣质源自动避开
- 误开两个下载器,任务列表莫名被清空 → 单实例锁 + state 空保护,杜绝互覆
| 场景 | 结果 |
|---|---|
| hf-mirror 64 连接 61 分片并行 | 12.8–16.5 MB/s(单连接仅 150–270KB/s) |
| 96 连接下载大模型文件(Qwen IQ4_XS) | 约 10.3 MB/s(尾段分片数减少属正常) |
- Clone 或 Download ZIP 本仓库
- 双击
IXZ.exe,开箱即用 - 粘贴 URL → 添加任务,坐等满速
从源码运行:安装 Python 3.11 +
pip install PySide6 aiohttp pillow pydantic lxml,参考启动IXZ.bat设置PYTHONPATH与IXZ_HOME后执行python -m hyperdownloader
| # | 优化 | 位置 |
|---|---|---|
| 1 | 失败任务自动续传(failed/error → WAITING,.hds 无损恢复分片) | manager.py |
| 2 | 单实例锁(msvcrt 文件锁,杜绝双开互覆任务列表) | manager.py |
| 3 | state 空列表保护(防内存空覆盖磁盘任务) | manager.py |
| 4 | 孤儿临时文件检测与报告 | manager.py |
| 5 | 断点恢复时分片状态归一化 | http_engine.py |
| 6 | 调度指数退避(5s→60s,跳过退避期任务) | manager.py |
| 7 | GUI 状态栏提示保护期(防定时器吞掉关键提示) | gui/main_window.py |
| 8 | 直链嗅探误判修复 | manager.py |
| # | 优化 | 位置 |
|---|---|---|
| 9 | 国内镜像域名强制直连(绕开代理绕远路) | http_engine.py |
| 10 | 分片级代理↔直连自动翻转降级 + 多源 URL 轮换 | http_engine.py |
| 11 | 动态分片分裂后立即 spawn worker 协程 | http_engine.py |
| 12 | gather 循环支持运行中追加任务 | http_engine.py |
| 13 | 并行探测多源 + 按响应耗时排序选源 | http_engine.py |
| 14 | 源质量自适应(失败计数、粘成功源、避开劣质源) | http_engine.py |
| 15 | 单文件最大连接数 64→96(对抗 CDN 按连接限速) | config.py |
| 16 | 写块 4MB→8MB,connect_timeout 15→8s | http_engine.py + 配置 |
- 多线程分片下载、断点续传(.hds 控制文件)
- 多源并行探测、按实测速度自动选源
- 代理 / 直连自动翻转降级
- 动态分片分裂,适应 CDN 按连接限速
- GUI(PySide6 深色主题)+ 系统托盘 + 完成通知
- 视频嗅探、直链探测
IXZ.exe 主程序(开箱即用)
启动IXZ.bat 源码启动脚本(按本机路径调整)
_internal/hyperdownloader/ 完整源码(16 项优化全部在此)
注:仓库不含用户数据目录与第三方运行库。
- 原项目:hyperdownloader v1.4.1
- 本仓库遵循 MIT License 开源
- 欢迎交流:Issues 区开放
再次声明:仅用于学习与技术交流。