秒搜鸭搜索API

返回首页

通过一个接口按关键词检索站内网盘资源,返回结果为事件流(SSE),可直接用于脚本、机器人或第三方工具。

接口概览

GET /miov1/search?keyword=关键词 参数放在查询串,便于浏览器与命令行直接调用
POST /miov1/search JSON 请求体,适合关键词含特殊字符或较长时使用

两种方式返回结构完全一致:Content-Type: text/event-stream,依次返回 snapshot 与 done 两个事件。

请求参数

参数 位置 类型 必填 说明
keyword GET 查询串 / POST 请求体 string 是 检索关键词
Content-Type POST 请求头 string 否 POST 建议设置为 application/json,请求体上限 64KB

关键词规则:

  • 首尾空白会被忽略
  • 结尾的 .html 会被忽略,便于直接复用页面地址中的关键词
  • 不能为空,且不超过 128 个字符

响应结构

响应为事件流,每行以 event: 声明事件名、data: 携带 JSON 数据,事件之间以空行分隔。按行读取即可解析,无需等待完整响应结束。

snapshot首个快照:命中资源
event: snapshot
data: {"total":1,"merged_by_type":{"quark":[{"url":"https://pan.quark.cn/s/xxxxxxxxxxxx","note":"资源名称","keyword":"流浪地球","stream_key":"quark|https://pan.quark.cn/s/xxxxxxxxxxxx"}]}}
done结束事件:本次命中总数
event: done
data: {"total":1}

字段说明:

字段 类型 说明
total number 本次命中的资源条数
merged_by_type object 按网盘类型分组的资源集合,当前提供 quark 分组
merged_by_type.quark[].url string 网盘分享链接
merged_by_type.quark[].note string 资源名称
merged_by_type.quark[].keyword string 该资源对应的关键词
merged_by_type.quark[].stream_key string 资源唯一标识,格式为 网盘类型|链接,可用于去重

调用示例

GET 请求(-N 关闭 curl 缓冲,便于逐行查看事件):

curl -N --get --data-urlencode "keyword=流浪地球" https://msouy.com/miov1/search

POST 请求:

curl -N -X POST https://msouy.com/miov1/search \
  -H 'Content-Type: application/json' \
  -d '{"keyword":"流浪地球"}'

浏览器 / Node 读取事件流:

const res = await fetch('https://msouy.com/miov1/search?keyword=' + encodeURIComponent('流浪地球'))
const reader = res.body.getReader()
const decoder = new TextDecoder()
let buffer = ''

while (true) {
  const { done, value } = await reader.read()
  if (done) break
  buffer += decoder.decode(value, { stream: true })

  const blocks = buffer.split('\n\n')
  buffer = blocks.pop() || ''

  for (const block of blocks) {
    const event = block.match(/^event: (.+)$/m)?.[1]
    const data = block.match(/^data: (.+)$/m)?.[1]
    if (!data) continue
    console.log(event, JSON.parse(data))
  }
}

限流规则

每个 IP 每秒最多 5 次请求,允许 10 次突发。超出限制时接口返回 HTTP 429,请降低请求频率或稍后重试;持续高频访问会被持续拒绝。
  • 建议客户端串行或小并发调用,并对 429 做退避重试
  • 同一关键词重复检索可直接复用上次结果,避免无意义请求

地区限制

接口按来源地区开放,以下地区可直接调用:

  • 中国大陆
  • 香港
  • 澳门
  • 台湾
  • 韩国
  • 日本
  • 美国
  • 澳大利亚
  • 新西兰

其它地区请求会返回 HTTP 451:

{"error":"当前地区访问受限"}

错误码

HTTP 返回体 说明
400 {"error":"关键词不能为空"} 未传关键词或关键词为空
400 {"error":"关键词过长"} 关键词超过 128 个字符
400 {"error":"无效的请求体"} POST 请求体不是合法 JSON,或超过 64KB
429 — 触发限流(每 IP 5 次/秒、突发 10)
451 {"error":"当前地区访问受限"} 当前地区不在开放范围
500 {"error":"搜索服务暂时不可用,请稍候再试"} 服务临时不可用,可稍后重试

使用须知

接口仅用于资源检索。返回的分享链接来自网络公开信息,本站不提供存储、上传或托管服务;请在法律法规允许的范围内使用,并自行甄别内容。

如需在应用中展示检索结果,请遵守上述限流与地区规则;因违规高频调用导致的拒绝访问,需自行承担。