When the frontend requests subdirectory contents for UC drive shares, the stoken query parameter is mishandled in two places, breaking directory browsing: 1. URLParamUtil.handleTruncatedUrl() does not exclude stoken from the URL construction loop. As a result, the stoken value gets appended to the share URL (e.g. https://drive.uc.cn/s/xxx?stoken=yyy). The extra query string breaks the UC URL regex match in PanDomainTemplate, causing the parser to fall back to the default IPanTool.parseFileList() which returns "Not implemented yet". 2. ParserApi.getFileList() does not accept stoken as a method parameter and does not forward it to ShareLinkInfo.otherParam. Even when the stoken is present in the request URL, UcTool.parseFileList() cannot find it and must re-authenticate against the UC API — which fails without proper auth cookies. The fix: - URLParamUtil: add stoken to the param exclusion list - ParserApi: add String stoken parameter and put it into otherParam Both first-level and nested directory listing work correctly after this fix.
一款网盘分享链接云解析快速下载服务
QQ交流群:1017480890
介绍
netdisk-fast-download网盘直链解析可以把云盘分享链接转为直链,可广泛应用于各类下载站,资源站,个人博客,图床,APP下载更新,视频点播等领域。支持市面各大主流云盘的文件分享以及文件夹分享链接,已支持蓝奏云/蓝奏云优享/移动云云空间/小飞机盘/亿方云/123云盘/Cloudreve等,支持加密分享,以及部分网盘文件夹分享。
官方文档
API接入
公益解析,lz站
公益解析,lz0站
专业版
快速开始
命令行下载分享文件:
curl -LOJ "https://lz.qaiu.top/parser?url=https://share.feijipan.com/s/Tk1F2kGQ&pwd=1234"
或者使用wget:
wget -O bilibili.mp4 "https://lz.qaiu.top/parser?url=https://share.feijipan.com/s/Tk1F2kGQ&pwd=1234"
或者使用浏览器直接访问:
### 调用演示站下载:
https://lz.qaiu.top/parser?url=https://www.ilanzou.com/s/CDx6xKbT&pwd=1234
### 调用演示站预览:
https://nfd-parser.github.io/nfd-preview/preview.html?src=https%3A%2F%2Flz.qaiu.top%2Fparser%3Furl%3Dhttps%3A%2F%2Fwww.ilanzou.com%2Fs%2FCDx6xKbT&name=bilibili.mp4&ext=mp4
解析器模块文档: parser/README.md
JavaScript解析器文档: JavaScript解析器开发指南 | 自定义解析器扩展指南 | 快速开始
Playground功能: JS解析器演练场密码保护说明
注意⚠️小飞机解析有IP限制,多数云服务商的大陆IP会被拦截(可以自行配置代理),和本程序无关
注意⚠️收到很多用户反馈,小飞机近期封号频繁,请尽可能选择其他网盘分享
注意⚠️请不要过度依赖 lz.qaiu.top,建议本地搭建或者云服务器自行搭建。请求量过多的话服务器可能会被云盘厂商限制,遇到解析失败的分享链接不要着急提issues,请先检查分享是否有效。
网盘支持情况:
20230824 123云盘解析大文件(>100MB)失效,需要登录
20230722 UC网盘解析失效,需要登录
网盘名称-网盘标识:
- 蓝奏云-lz
- 蓝奏云优享-iz
- 移动云云空间-ec
- 小飞机网盘-fj
- 亿方云-fc
- 123云盘-ye ⚠️仅建议本地部署使用,需登录认证,公共/云端服务器风控严格建议自行部署(Windows 可直接用 run.bat 一键运行)
115网盘(失效)-p115- 文叔叔-ws
- 联想乐云-le
- QQ邮箱云盘-qqw
- QQ闪传-qqsc
- 城通网盘-ct
- 网易云音乐分享链接-mnes
- 酷狗音乐分享链接-mkgs
- 酷我音乐分享链接-mkws
- QQ音乐分享链接-mqqs
- Cloudreve自建网盘-ce
微雨云存储-pvvy- 超星云盘(需要referer: https://pan-yz.chaoxing.com)-pcx
- 飞书云盘-fs
- WPS云文档-pwps
- 汽水音乐-qishui_music
- 咪咕音乐-migu
- Google云盘-pgd
- Onedrive-pod
- Dropbox-pdp
- iCloud-pic
专业版提供
API接口
服务端口
- 6400: API 服务端口(建议使用 Nginx 代理)
- 6401: 内置 Web 解析工具(个人使用可直接开放此端口)
接口说明
1. 302 自动跳转下载
通用接口
GET /parser?url={分享链接}&pwd={密码}
标志短链
GET /d/{网盘标识}/{分享key}@{密码}
2. 获取直链 JSON
通用接口
GET /json/parser?url={分享链接}&pwd={密码}
标志短链
GET /json/{网盘标识}/{分享key}@{密码}
3. 文件夹解析(v0.1.8fixed3+)
GET /json/getFileList?url={分享链接}&pwd={密码}
使用规则
{分享链接}建议使用 URL 编码{密码}无密码时省略&pwd=或@密码部分{网盘标识}参考支持的网盘列表your_host替换为您的域名或 IP
认证参数(v0.2.1+)
可以使用在线认证参数加密
部分网盘(如夸克、UC)需要登录后的 Cookie 才能解析和下载。可通过 auth 参数传递认证信息:
参数格式:auth 参数值为 AES 加密后的 JSON 字符串,经过 Base64 编码和 URL 编码
加密方式:
- 算法:AES/ECB/PKCS5Padding
- 密钥:
nfd_auth_key2026(16字节) - 流程:JSON → AES加密 → Base64 → URL编码
JSON 结构:
{
"authType": "cookie", // 认证类型: cookie/accesstoken/authorization/password/custom
"token": "your_cookie_here", // Cookie 或 Token 内容
"username": "", // 用户名(password 类型时使用)
"password": "", // 密码(password 类型时使用)
"ext1": "", // 扩展字段1(custom 类型时使用)
"ext2": "" // 扩展字段2(custom 类型时使用)
}
网盘认证要求:
| 网盘 | 认证要求 | 说明 |
|---|---|---|
| 夸克网盘(QK) | 必须 | 必须配置 Cookie 才能解析 |
| UC网盘(UC) | 必须 | 必须配置 Cookie 才能解析 |
| 小飞机网盘(FJ) | 可选 | 大文件(>100MB)需要认证 |
| 蓝奏优享(IZ) | 可选 | 大文件需要认证 |
| 123网盘(YE) | 可选 | 需要下载大文件/需要登录的分享时才需要认证,支持账号密码或 token/authorization |
使用示例:
GET /parser?url={分享链接}&pwd={密码}&auth={加密后的认证参数}
💡 提示:Web 界面已内置认证配置功能,可自动处理加密过程,无需手动构造参数。 可以使用在线认证参数加密
密钥作用说明
-
server.authEncryptKey- 作用:用于
auth参数的 AES 加解密 - 要求:16位(AES-128)
- 作用:用于
-
server.donatedAccountFailureTokenSignKey- 作用:用于“捐赠账号失败计数 token”的 HMAC 签名/验签
- 目的:防止客户端伪造失败计数请求
- 建议:使用高强度随机字符串,且不要与
authEncryptKey相同
auth 临时认证参数 与 auths 静态配置认证 的区别
本项目存在两种互相独立的认证配置方式,作用范围不同,不要混淆:
| 方式 | 配置位置 | 生效范围 | 适用场景 |
|---|---|---|---|
auth 临时认证参数 |
请求 URL 上的 auth 查询参数 |
仅当次请求,优先级高于 app-dev.yml 中的静态配置 | 调用方按用户临时提供的账号/Cookie/token 解析,不同请求可携带不同认证信息 |
auths 静态配置认证 |
app-dev.yml 的 auths.<网盘标识> 节点 |
服务端长期生效,所有未携带 auth 参数的请求都会复用 |
部署方自己长期配置一份账号,供所有请求默认使用 |
以 123网盘(ye)为例,app-dev.yml 中支持以下几种写法(三选一即可):
auths:
ye:
username: 你的123网盘账号
password: 你的123网盘密码
auths:
ye:
token: 已登录后获取的 Authorization/AccessToken
auths:
ye:
authorization: 已登录后获取的 Authorization/AccessToken # 与 token 等价,二选一
⚠️ 注意:YAML 中 key 后面不写值(如
authorization:空着)等同于没配置,不会生效,必须填入真实的账号密码或 token 内容。
如果只是临时调用一次,不想改动服务端配置,也可以用上面提到的 auth 参数临时传递(authType 可选 password/accesstoken/authorization),无需重启服务,仅本次请求生效。
特殊说明
- 移动云云空间的
分享key取分享链接中的data参数值 - 移动云云空间、小飞机网盘的加密分享可忽略密码参数
示例
# 302 跳转(通用接口 - 有密码)
http://your_host/parser?url=https%3A%2F%2Fwww.ilanzou.com%2Fs%2FlGFndCM&pwd=KMnv
# 302 跳转(标志短链 - 有密码)
http://your_host/d/iz/lGFndCM@KMnv
# 获取 JSON(通用接口 - 无密码)
http://your_host/json/parser?url=https%3A%2F%2Fwww.ilanzou.com%2Fs%2FLEBZySxF
# 获取 JSON(标志短链 - 无密码)
http://your_host/json/iz/LEBZySxF
json接口详细说明
1. 文件解析:/json/parser?url=分享链接&pwd=xxx
json返回数据格式示例:
shareKey: 全局分享key
directLink: 下载链接
cacheHit: 是否为缓存链接
expires: 缓存到期时间
{
"code": 200,
"msg": "success",
"success": true,
"count": 0,
"data": {
"shareKey": "lz:xxx",
"directLink": "下载直链",
"cacheHit": true,
"expires": "2024-09-18 01:48:02",
"expiration": 1726638482825
},
"timestamp": 1726637151902
}
2. 分享链接详情接口 /v2/linkInfo?url=分享链接
{
"code": 200,
"msg": "success",
"success": true,
"count": 0,
"data": {
"downLink": "https://lz.qaiu.top/d/fj/xx",
"apiLink": "https://lz.qaiu.top/json/fj/xx",
"cacheHitTotal": 5,
"parserTotal": 2,
"sumTotal": 7,
"shareLinkInfo": {
"shareKey": "xx",
"panName": "小飞机网盘",
"type": "fj",
"sharePassword": "",
"shareUrl": "https://share.feijipan.com/s/xx",
"standardUrl": "https://www.feijix.com/s/xx",
"otherParam": {
"UA": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
},
"cacheKey": "fj:xx"
}
},
"timestamp": 1736489219402
}
3. 文件夹解析(仅支持蓝奏云/蓝奏优享/小飞机网盘)
/v2/getFileList?url=分享链接&pwd=分享密码
{
"code": 200,
"msg": "success",
"success": true,
"data": [
{
"fileName": "xxx",
"fileId": "xxx",
"fileIcon": null,
"size": 999,
"sizeStr": "999 M",
"fileType": "file/folder",
"filePath": null,
"createTime": "17 小时前",
"updateTime": null,
"createBy": null,
"description": null,
"downloadCount": "下载次数",
"panType": "lz",
"parserUrl": "下载链接/文件夹链接",
"extParameters": null
}
]
}
4. 解析次数统计接口 /v2/statisticsInfo
{
"code": 200,
"msg": "success",
"success": true,
"count": 0,
"data": {
"parserTotal": 320508,
"cacheTotal": 5957910,
"total": 6278418
},
"timestamp": 1736489378770
}
网盘对比
| 网盘名称 | 免登陆下载分享 | 加密分享 | 初始网盘空间 | 单文件大小限制 |
|---|---|---|---|---|
| 蓝奏云 | √ | √ | 不限空间 | 100M |
| 移动云云空间(个人版) | √ | √(密码可忽略) | 5G(个人) | 不限大小 |
| 小飞机网盘 | √ | √ | 10G | 不限大小 |
| 360亿方云 | √ | √ | 100G(须实名) | 不限大小 |
| 123云盘 | √ | √ | 2T | 100G(>100M需要登录) |
| 文叔叔 | √ | √ | 10G | 5GB |
| WPS云文档 | √ | X | 5G(免费) | 10M(免费)/2G(会员) |
| 夸克网盘 | x | √ | 10G | 不限大小 |
| UC网盘 | x | √ | 10G | 不限大小 |
| 飞书云盘 | √ | X | 15G | 不限大小 |
打包部署
JDK下载(lz.qaiu.top提供直链云解析服务)
- 阿里jdk17(Dragonwell17-windows-x86)
- 阿里jdk17(Dragonwell17-linux-x86)
- 阿里jdk17(Dragonwell17-linux-aarch64)
- 解析有效性测试-移动云云空间-阿里jdk17-linux-x86
开发和打包
# 环境要求: Jdk17 + maven;
mvn clean
mvn package -DskipTests
打包好的文件位于 web-service/target/netdisk-fast-download-bin.zip
🚀 快速部署
Linux服务部署
Docker 部署(Main分支)
海外服务器Docker部署
# 创建目录
mkdir -p netdisk-fast-download
cd netdisk-fast-download
# 拉取镜像
docker pull ghcr.io/qaiu/netdisk-fast-download:latest
# 复制配置文件(或下载仓库web-service\src\main\resources)
docker create --name netdisk-fast-download ghcr.io/qaiu/netdisk-fast-download:latest
docker cp netdisk-fast-download:/app/resources ./resources
docker rm netdisk-fast-download
# 启动容器
docker run -d -it --name netdisk-fast-download -p 6401:6401 --restart unless-stopped -e TZ=Asia/Shanghai -v ./resources:/app/resources -v ./db:/app/db -v ./logs:/app/logs ghcr.io/qaiu/netdisk-fast-download:latest
# 反代6401端口
# 升级容器
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once netdisk-fast-download
国内Docker部署
# 创建目录
mkdir -p netdisk-fast-download
cd netdisk-fast-download
# 拉取镜像
docker pull ghcr.nju.edu.cn/qaiu/netdisk-fast-download:latest
# 复制配置文件(或下载仓库web-service\src\main\resources)
docker create --name netdisk-fast-download ghcr.nju.edu.cn/qaiu/netdisk-fast-download:latest
docker cp netdisk-fast-download:/app/resources ./resources
docker rm netdisk-fast-download
# 启动容器
docker run -d -it --name netdisk-fast-download -p 6401:6401 --restart unless-stopped -e TZ=Asia/Shanghai -v ./resources:/app/resources -v ./db:/app/db -v ./logs:/app/logs ghcr.nju.edu.cn/qaiu/netdisk-fast-download:latest
# 反代6401端口
# 升级容器
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --cleanup --run-once netdisk-fast-download
宝塔部署指引 -> 点击进入宝塔部署教程
Linux命令行部署
注意: netdisk-fast-download.service中的ExecStart的路径改为实际路径
cd ~
wget -O netdisk-fast-download.zip https://github.com/qaiu/netdisk-fast-download/releases/download/v3.0.2/netdisk-fast-download-bin.zip
unzip netdisk-fast-download-bin.zip
cd netdisk-fast-download
bash service-install.sh
服务相关命令:
查看服务状态
systemctl status netdisk-fast-download.service
启动服务
systemctl start netdisk-fast-download.service
重启服务
systemctl restart netdisk-fast-download.service
停止服务
systemctl stop netdisk-fast-download.service
开机启动服务
systemctl enable netdisk-fast-download.service
停止开机启动
systemctl disable netdisk-fast-download.service
Windows服务部署
- 下载并解压releases版本netdisk-fast-download-bin.zip
- 进入netdisk-fast-download下的bin目录
- 使用管理员权限运行nfd-service-install.bat 如果不想使用服务运行可以直接运行run.bat
注意: 如果jdk环境变量的java版本不是17请修改nfd-service-template.xml中的java命令的路径改为实际路径
相关配置说明
resources目录下包含服务端配置文件 配置文件自带说明,具体请查看配置文件内容,
app-dev.yml 可以配置解析服务相关信息, 包括端口,域名,缓存时长等
server-proxy.yml 可以配置代理服务运行的相关信息, 包括前端反向代理端口,路径等
ip代理配置说明
有时候解析量很大,IP容易被ban,这时候可以使用其他服务器搭建nfd-proxy代理服务。
修改配置文件: app-dev.yml
proxy:
- panTypes: pgd,pdb,pod # 网盘标识
type: http # 支持http/socks4/socks5
host: 127.0.0.1 # 代理IP
port: 7890 # 端口
username: # 用户名
password: # 密码
nfd-proxy搭建http代理服务器 参考https://github.com/nfd-parser/nfd-proxy
认证信息配置说明
部分网盘(如123)解析大文件时需要登录认证,可以在配置文件中添加认证信息。
修改配置文件: app-dev.yml
### 解析认证相关
auths:
# 123:配置用户名密码
ye:
username: 你的用户名
password: 你的密码
注意: 目前仅支持 123(ye)的认证配置。
技术栈: Jdk17+Vert.x4 Core模块集成Vert.x实现类似spring的注解式路由API
Star History
免责声明
- 用户在使用本项目时,应自行承担风险,并确保其行为符合当地法律法规。开发者不对用户因使用本项目而导致的任何后果负责。
支持该项目
开源不易,用爱发电,本项目长期维护如果觉得有帮助, 可以请作者喝杯咖啡, 感谢支持
