Skip to content

API 接口文档 ​

概述 ​

NFD Parser 提供 RESTful API 接口,支持解析多种网盘分享链接并获取直链。

基础信息 ​

  • 默认端口:
    • 6400 — API 服务端口(建议使用 Nginx 代理)
    • 6401 — 内置 Web 解析工具(个人使用可直接开放此端口)
  • 响应格式: JSON
  • 字符编码: UTF-8

接口列表 ​

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={密码}

v2 版本:

GET /v2/getFileList?url={分享链接}&pwd={密码}

4. 分享链接详情 ​

GET /v2/linkInfo?url={分享链接}

5. 解析统计信息 ​

GET /v2/statisticsInfo

使用规则 ​

  • {分享链接} 建议使用 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 结构 ​

json
{
  "authType": "cookie",
  "token": "your_cookie_here",
  "username": "",
  "password": "",
  "ext1": "",
  "ext2": ""
}
字段说明
authType认证类型: cookie / accesstoken / authorization / password / custom
tokenCookie 或 Token 内容
username用户名(password 类型时使用)
password密码(password 类型时使用)
ext1扩展字段1(custom 类型时使用)
ext2扩展字段2(custom 类型时使用)

网盘认证要求 ​

网盘认证要求说明
夸克网盘(QK)必须必须配置 Cookie 才能解析
UC网盘(UC)必须必须配置 Cookie 才能解析
小飞机网盘(FJ)可选大文件(>100MB)需要认证
蓝奏优享(IZ)可选大文件需要认证

使用示例 ​

GET /parser?url={分享链接}&pwd={密码}&auth={加密后的认证参数}

提示

Web 界面已内置认证配置功能,可自动处理加密过程,无需手动构造参数。

密钥说明 ​

server.authEncryptKey ​

  • 作用: 用于 auth 参数的 AES 加解密
  • 要求: 16位(AES-128)

server.donatedAccountFailureTokenSignKey ​

  • 作用: 用于"捐赠账号失败计数 token"的 HMAC 签名/验签
  • 目的: 防止客户端伪造失败计数请求
  • 建议: 使用高强度随机字符串,且不要与 authEncryptKey 相同

JSON 响应格式 ​

文件解析响应 ​

json
{
  "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
}
参数名类型描述
codenumber状态码,200为成功
msgstring响应消息
successboolean是否成功
data.shareKeystring全局分享key
data.directLinkstring下载直链
data.cacheHitboolean是否为缓存链接
data.expiresstring缓存到期时间
data.expirationnumber到期时间戳

分享链接详情响应 ​

json
{
    "code": 200,
    "msg": "success",
    "success": true,
    "count": 0,
    "data": {
        "downLink": "https://lz0.qaiu.top/d/fj/xx",
        "apiLink": "https://lz0.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 ..."
            },
            "cacheKey": "fj:xx"
        }
    },
    "timestamp": 1736489219402
}

文件夹解析响应 ​

json
{
  "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
    }
  ]
}

统计信息响应 ​

json
{
    "code": 200,
    "msg": "success",
    "success": true,
    "count": 0,
    "data": {
        "parserTotal": 320508,
        "cacheTotal": 5957910,
        "total": 6278418
    },
    "timestamp": 1736489378770
}

调用示例 ​

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

错误码说明 ​

错误码描述
200成功
400请求参数错误
404资源未找到
500服务器内部错误

网盘标识对照表 ​

文件网盘 ​

网盘名称标识
蓝奏云lz
蓝奏云优享iz
奶牛快传cow
移动云云空间ec
小飞机网盘fj
亿方云fc
123云盘ye
文叔叔ws
联想乐云le
QQ邮箱云盘qqw
QQ闪传qqsc
城通网盘ct
Cloudreve自建网盘ce
超星云盘pcx
WPS云文档pwps
Google云盘pgd
Onedrivepod
Dropboxpdp
iCloudpic

音乐分享 ​

平台名称标识
网易云音乐mnes
酷狗音乐mkgs
酷我音乐mkws
QQ音乐mqqs
汽水音乐qishui_music
咪咕音乐migu

其他 ​

平台名称标识
一刻相册baidu_photo

专属版 ​

网盘名称标识
夸克云盘qk
UC云盘uc
移动云盘p139
联通云盘pwo
天翼云盘p189

特殊说明 ​

  • 移动云云空间的 分享key 取分享链接中的 data 参数值
  • 移动云云空间、小飞机网盘的加密分享可忽略密码参数
  • 超星云盘需要 referer: https://pan-yz.chaoxing.com

SDK 示例 ​

JavaScript/Node.js ​

javascript
class NFDParser {
    constructor(baseUrl = 'http://localhost:6400') {
        this.baseUrl = baseUrl;
    }

    async parseLink(shareUrl, password = '') {
        const params = new URLSearchParams({ url: shareUrl });
        if (password) params.append('pwd', password);

        const response = await fetch(`${this.baseUrl}/json/parser?${params}`);
        return await response.json();
    }

    async getFileList(shareUrl, password = '') {
        const params = new URLSearchParams({ url: shareUrl });
        if (password) params.append('pwd', password);

        const response = await fetch(`${this.baseUrl}/v2/getFileList?${params}`);
        return await response.json();
    }

    async getStatistics() {
        const response = await fetch(`${this.baseUrl}/v2/statisticsInfo`);
        return await response.json();
    }
}

Python ​

python
import requests
from urllib.parse import urlencode

class NFDParser:
    def __init__(self, base_url='http://localhost:6400'):
        self.base_url = base_url

    def parse_link(self, share_url, password=''):
        params = {'url': share_url}
        if password:
            params['pwd'] = password
        response = requests.get(f'{self.base_url}/json/parser', params=params)
        return response.json()

    def get_file_list(self, share_url, password=''):
        params = {'url': share_url}
        if password:
            params['pwd'] = password
        response = requests.get(f'{self.base_url}/v2/getFileList', params=params)
        return response.json()

    def get_statistics(self):
        response = requests.get(f'{self.base_url}/v2/statisticsInfo')
        return response.json()

使用限制 ​

  1. 请求频率: 建议不要过于频繁请求,避免IP被封
  2. 文件大小: 部分网盘对大文件有限制(需认证)
  3. 登录要求: 夸克、UC 必须提供 Cookie,123 大文件需要登录
  4. 地域限制: 部分网盘对IP有地域限制,可配置代理