Tra b9ff408bdd fix: UC subdirectory listing fails due to missing stoken parameter
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.
2026-07-24 18:04:52 +08:00
2024-09-19 09:37:01 +08:00
2024-10-25 18:18:17 +08:00
2026-05-29 14:23:01 +08:00
2026-07-22 10:25:10 +08:00
2023-06-14 15:23:59 +08:00
2024-06-07 09:33:57 +08:00
2025-02-06 16:52:06 +08:00

一款网盘分享链接云解析快速下载服务

QQ交流群:1017480890

GitHub Stars AtomGit

qaiu%2Fnetdisk-fast-download | Trendshift

alt text

介绍

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网盘解析失效,需要登录

网盘名称-网盘标识:

专业版提供

API接口

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_key202616字节)
  • 流程: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.ymlauths.<网盘标识> 节点 服务端长期生效,所有未携带 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 + 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服务部署

  1. 下载并解压releases版本netdisk-fast-download-bin.zip
  2. 进入netdisk-fast-download下的bin目录
  3. 使用管理员权限运行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

Star History Chart

免责声明

  • 用户在使用本项目时,应自行承担风险,并确保其行为符合当地法律法规。开发者不对用户因使用本项目而导致的任何后果负责。

支持该项目

开源不易,用爱发电,本项目长期维护如果觉得有帮助, 可以请作者喝杯咖啡, 感谢支持

本项目的服务器由林枫云提供赞助

S
Description
No description provided
Readme MIT 11 MiB
Languages
Java 71%
Vue 13.6%
JavaScript 11.8%
HTML 2.2%
Python 0.9%
Other 0.4%