Files
netdisk-fast-download/web-service/doc/API_DOCUMENTATION.md
2025-11-15 21:49:40 +08:00

12 KiB
Raw Blame History

网盘快速下载服务 API 文档

概述

本文档描述了网盘快速下载服务的所有 REST API 接口。该服务支持多种网盘的分享链接解析,提供直链下载、预览、客户端下载链接等功能。

基础URL: http://localhost:6400 (根据实际部署情况调整)


目录


解析相关接口

1. 解析分享链接(重定向)

接口: GET /parser

描述: 解析分享链接并重定向到直链下载地址

请求参数:

  • url (必需): 分享链接
  • pwd (可选): 提取码

请求示例:

GET /parser?url=https://pan.baidu.com/s/1test123&pwd=1234

响应:

  • 302 重定向到直链下载地址
  • 响应头包含:
    • nfd-cache-hit: 是否命中缓存 (true/false)
    • nfd-cache-expires: 缓存过期时间

2. 解析分享链接JSON

接口: GET /json/parser

描述: 解析分享链接并返回JSON格式的直链信息

请求参数:

  • url (必需): 分享链接
  • pwd (可选): 提取码

请求示例:

GET /json/parser?url=https://pan.baidu.com/s/1test123&pwd=1234

响应示例:

{
  "shareKey": "pan:1test123",
  "directLink": "https://example.com/download/file.zip",
  "cacheHit": false,
  "expires": "2025-01-22 12:00:00",
  "expiration": 86400000,
  "fileInfo": {
    "fileName": "file.zip",
    "fileId": "123456",
    "size": 1024000,
    "sizeStr": "1MB",
    "fileType": "zip",
    "createTime": "2025-01-21 10:00:00"
  }
}

3. 根据类型和Key解析重定向

接口: GET /:type/:key

描述: 根据网盘类型和分享Key解析并重定向到直链

路径参数:

  • type (必需): 网盘类型标识(如: lz, pan, cow等
  • key (必需): 分享Key如果包含提取码格式为 key@pwd

请求示例:

GET /lz/ia2cntg
GET /lz/icBp6qqj82b@QAIU

响应: 302 重定向到直链下载地址


4. 根据类型和Key解析JSON

接口: GET /json/:type/:key

描述: 根据网盘类型和分享Key解析并返回JSON格式的直链信息

路径参数:

  • type (必需): 网盘类型标识
  • key (必需): 分享Key如果包含提取码格式为 key@pwd

请求示例:

GET /json/lz/ia2cntg
GET /json/lz/icBp6qqj82b@QAIU

响应格式: 同 /json/parser


5. 获取链接信息V2

接口: GET /v2/linkInfo

描述: 获取分享链接的详细信息,包括下载链接、预览链接、统计信息等

请求参数:

  • url (必需): 分享链接
  • pwd (可选): 提取码

请求示例:

GET /v2/linkInfo?url=https://pan.baidu.com/s/1test123&pwd=1234

响应示例:

{
  "downLink": "http://127.0.0.1:6400/d/pan/1test123",
  "apiLink": "http://127.0.0.1:6400/json/pan/1test123",
  "viewLink": "http://127.0.0.1:6400/v2/view/pan/1test123",
  "cacheHitTotal": 10,
  "parserTotal": 5,
  "sumTotal": 15,
  "shareLinkInfo": {
    "shareKey": "1test123",
    "panName": "百度网盘",
    "type": "pan",
    "sharePassword": "1234",
    "shareUrl": "https://pan.baidu.com/s/1test123",
    "standardUrl": "https://pan.baidu.com/s/1test123",
    "otherParam": {}
  }
}

文件列表接口

6. 获取文件列表

接口: GET /v2/getFileList

描述: 获取分享链接中的文件列表(适用于目录分享)

请求参数:

  • url (必需): 分享链接
  • pwd (可选): 提取码
  • dirId (可选): 目录ID用于获取指定目录下的文件
  • uuid (可选): UUID某些网盘需要此参数

请求示例:

GET /v2/getFileList?url=https://pan.baidu.com/s/1test123&pwd=1234&dirId=dir123

响应示例:

[
  {
    "fileName": "file1.zip",
    "fileId": "file123",
    "size": 1024000,
    "sizeStr": "1MB",
    "fileType": "zip",
    "filePath": "/folder/file1.zip",
    "createTime": "2025-01-21 10:00:00"
  },
  {
    "fileName": "file2.pdf",
    "fileId": "file456",
    "size": 2048000,
    "sizeStr": "2MB",
    "fileType": "pdf",
    "filePath": "/folder/file2.pdf",
    "createTime": "2025-01-21 11:00:00"
  }
]

预览接口

7. 预览媒体文件按类型和Key

接口: GET /v2/view/:type/:key

描述: 预览指定类型和Key的媒体文件图片、视频等

路径参数:

  • type (必需): 网盘类型标识
  • key (必需): 分享Key如果包含提取码格式为 key@pwd

请求示例:

GET /v2/view/pan/1test123
GET /v2/view/lz/ia2cntg@QAIU

响应: 302 重定向到预览页面

特殊说明:

  • WPS网盘类型(pwps)会直接重定向到原分享链接WPS支持在线预览

8. 预览媒体文件按URL

接口: GET /v2/preview

描述: 通过分享链接预览媒体文件

请求参数:

  • url (必需): 分享链接
  • pwd (可选): 提取码

请求示例:

GET /v2/preview?url=https://pan.baidu.com/s/1test123&pwd=1234

响应: 302 重定向到预览页面

特殊说明:

  • WPS网盘类型会直接重定向到原分享链接

9. 预览URL目录预览

接口: GET /v2/viewUrl/:type/:param

描述: 预览目录中的文件param为Base64编码的参数

路径参数:

  • type (必需): 网盘类型标识
  • param (必需): Base64编码的参数JSON

请求示例:

GET /v2/viewUrl/pan/eyJmaWxlSWQiOiIxMjM0NTYifQ==

响应: 302 重定向到预览页面


客户端下载链接接口

10. 获取所有客户端下载链接

接口: GET /v2/clientLinks

描述: 获取所有支持的客户端格式的下载链接

请求参数:

  • url (必需): 分享链接
  • pwd (可选): 提取码

请求示例:

GET /v2/clientLinks?url=https://pan.baidu.com/s/1test123&pwd=1234

响应示例:

{
  "success": true,
  "directLink": "https://example.com/file.zip",
  "fileName": "test-file.zip",
  "fileSize": 1024000,
  "clientLinks": {
    "CURL": "curl -L -H \"User-Agent: Mozilla/5.0...\" -o \"test-file.zip\" \"https://example.com/file.zip\"",
    "POWERSHELL": "$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession...",
    "ARIA2": "aria2c --header=\"User-Agent: Mozilla/5.0...\" --out=\"test-file.zip\" \"https://example.com/file.zip\"",
    "THUNDER": "thunder://QUFodHRwczovL2V4YW1wbGUuY29tL2ZpbGUuemlwWlo=",
    "IDM": "idm://https://example.com/file.zip",
    "WGET": "wget --header=\"User-Agent: Mozilla/5.0...\" -O \"test-file.zip\" \"https://example.com/file.zip\"",
    "BITCOMET": "bitcomet://https://example.com/file.zip",
    "MOTRIX": "{\"url\":\"https://example.com/file.zip\",\"out\":\"test-file.zip\"}",
    "FDM": "https://example.com/file.zip"
  },
  "supportedClients": {
    "curl": "cURL 命令",
    "wget": "wget 命令",
    "aria2": "Aria2",
    "idm": "IDM",
    "thunder": "迅雷",
    "bitcomet": "比特彗星",
    "motrix": "Motrix",
    "fdm": "Free Download Manager",
    "powershell": "PowerShell"
  },
  "parserInfo": "百度网盘 - pan"
}

支持的客户端类型:

  • curl: cURL 命令
  • wget: wget 命令
  • aria2: Aria2
  • idm: IDM
  • thunder: 迅雷
  • bitcomet: 比特彗星
  • motrix: Motrix
  • fdm: Free Download Manager
  • powershell: PowerShell

11. 获取指定类型的客户端下载链接

接口: GET /v2/clientLink

描述: 获取指定客户端类型的下载链接

请求参数:

  • url (必需): 分享链接
  • pwd (可选): 提取码
  • clientType (必需): 客户端类型 (curl, wget, aria2, idm, thunder, bitcomet, motrix, fdm, powershell)

请求示例:

GET /v2/clientLink?url=https://pan.baidu.com/s/1test123&pwd=1234&clientType=curl

响应: 直接返回指定类型的客户端下载链接字符串

响应示例:

curl -L -H "User-Agent: Mozilla/5.0..." -o "test-file.zip" "https://example.com/file.zip"

统计信息接口

12. 获取统计信息

接口: GET /v2/statisticsInfo

描述: 获取系统统计信息,包括解析总数、缓存总数等

请求示例:

GET /v2/statisticsInfo

响应示例:

{
  "parserTotal": 1000,
  "cacheTotal": 500,
  "total": 1500
}

网盘列表接口

13. 获取支持的网盘列表

接口: GET /v2/getPanList

描述: 获取所有支持的网盘列表及其信息

请求示例:

GET /v2/getPanList

响应示例:

[
  {
    "name": "蓝奏云",
    "type": "lz",
    "shareUrlFormat": "https://www.lanzou*.com/s/{shareKey}",
    "url": "https://www.lanzou.com"
  },
  {
    "name": "百度网盘",
    "type": "pan",
    "shareUrlFormat": "https://pan.baidu.com/s/{shareKey}",
    "url": "https://pan.baidu.com"
  }
]

版本信息接口

14. 获取版本号

接口: GET /v2/build-version

描述: 获取应用版本号

请求示例:

GET /v2/build-version

响应: 版本号字符串

响应示例:

20250121_101530

隔空喊话接口

15. 提交消息

接口: POST /v2/shout/submit

描述: 提交一条隔空喊话消息返回6位提取码

请求体:

{
  "content": "这是一条消息内容"
}

请求示例:

POST /v2/shout/submit
Content-Type: application/json

{
  "content": "Hello World!"
}

响应示例:

{
  "code": 200,
  "msg": "success",
  "success": true,
  "data": "123456",
  "timestamp": 1705896000000
}

说明:

  • data 字段为6位提取码用于后续提取消息
  • 内容不能为空

16. 检索消息

接口: GET /v2/shout/retrieve

描述: 根据提取码检索消息

请求参数:

  • code (必需): 6位提取码

请求示例:

GET /v2/shout/retrieve?code=123456

响应示例:

{
  "id": 1,
  "code": "123456",
  "content": "Hello World!",
  "ip": "127.0.0.1",
  "createTime": "2025-01-21 10:00:00",
  "expireTime": "2025-01-22 10:00:00",
  "isUsed": false
}

错误响应:

  • 如果提取码格式不正确不是6位数字返回错误信息

快捷下载接口

17. 下载重定向(短链)

接口: GET /d/:type/:key

描述: 短链形式的下载重定向,等同于 /:type/:key

路径参数:

  • type (必需): 网盘类型标识
  • key (必需): 分享Key如果包含提取码格式为 key@pwd

请求示例:

GET /d/lz/ia2cntg

响应: 302 重定向到直链下载地址


18. 重定向下载URL目录文件

接口: GET /v2/redirectUrl/:type/:param

描述: 重定向到目录中指定文件的下载地址param为Base64编码的参数

路径参数:

  • type (必需): 网盘类型标识
  • param (必需): Base64编码的参数JSON

请求示例:

GET /v2/redirectUrl/pan/eyJmaWxlSWQiOiIxMjM0NTYifQ==

响应: 302 重定向到直链下载地址


错误处理

所有接口在发生错误时会返回JSON格式的错误信息

{
  "code": 500,
  "msg": "错误描述信息",
  "success": false,
  "data": null,
  "timestamp": 1705896000000
}

常见错误:

  • 参数缺失或格式错误
  • 分享链接无效或已过期
  • 提取码错误
  • 网盘类型不支持
  • 服务器内部错误

注意事项

  1. 缓存机制: 系统会对解析结果进行缓存,响应头中包含缓存相关信息
  2. User-Agent: 某些网盘需要特定的User-Agent系统会自动处理
  3. Referer: 某些网盘如奶牛快传需要Referer请求头
  4. 提取码格式: 在路径参数中,提取码使用 @ 符号分隔,如 key@pwd
  5. Base64参数: 目录相关接口的param参数需要Base64编码
  6. WPS特殊处理: WPS网盘类型在预览时会直接使用原分享链接

支持的网盘类型

系统支持多种网盘,包括但不限于:

  • 蓝奏云 (lz)
  • 百度网盘 (pan)
  • 奶牛快传 (cow)
  • 123网盘 (ye)
  • 移动云空间 (ec)
  • 小飞机盘 (fj)
  • 360亿方云 (fc)
  • 联想乐云 (le)
  • 文叔叔 (ws)
  • Cloudreve (ce)
  • 等等...

完整列表可通过 /v2/getPanList 接口获取。


更新日志

  • 2025-01-21: 初始版本文档
  • 支持客户端下载链接功能
  • 支持隔空喊话功能