网盘资源搜索 Skill
功能概述
这是一个高性能网盘资源搜索 API 服务(GitHub: fish2018/pansou, 13.3k stars),提供以下核心能力:
- 多网盘支持:覆盖 14 种主流网盘类型(百度/夸克/阿里/天翼/UC/115/PikPak/迅雷/123/磁力等)
- 插件生态:内置 80+ 搜索插件,持续更新
- 智能排序:按相关度、时间、插件等级等维度综合排序
- 链接检测:验证网盘链接是否有效,过滤失效资源
- 灵活部署:Docker 一键部署,支持本地和云端
前置条件
| 依赖 | 要求 | 说明 |
|---|---|---|
| Docker | 20.10+ | 部署搜索服务(必需) |
| Python | 3.6+ | 运行脚本(仅标准库,无额外依赖) |
安装为 Skill
方式一:Hermes Agent 安装
# 克隆到 skills 目录
git clone https://github.com/godzx001-dot/NDS.git ~/.hermes/skills/netdisk-search
然后在 Hermes 对话中说"搜资源"即可触发。
方式二:OpenClaw 安装
将仓库克隆到 OpenClaw 的 skills 目录:
git clone https://github.com/godzx001-dot/NDS.git ~/.openclaw/skills/netdisk-search
或在 OpenClaw 配置中添加远程 skill 源。
方式三:手动下载
# 下载并解压
curl -L https://github.com/godzx001-dot/NDS/archive/main.zip -o nds.zip
unzip nds.zip -d ~/.hermes/skills/
mv ~/.hermes/skills/NDS-main ~/.hermes/skills/netdisk-search
rm nds.zip
首次使用:部署搜索服务
安装 skill 后,需要先部署搜索服务(一次性操作):
cd ~/.hermes/skills/netdisk-search
bash scripts/deploy.sh
或手动部署:
docker run -d --name netdisk-search -p 8888:8888 --restart unless-stopped ghcr.io/fish2018/pansou:latest
验证部署成功:
curl http://localhost:8888/api/health
Agent 中的使用方式
安装后,在 Agent 对话中可以用自然语言触发:
搜索资源
用户: 帮我搜一下 "速度与激情" 的网盘资源
用户: 找一下 Python教程,只要百度和夸克
用户: 搜个唐朝诡事录,要合集不要预告
用户: 帮我找4K电影资源
Agent 会自动调用 search.py 执行搜索并格式化展示结果。
检测链接
用户: 帮我检测一下这个链接还能不能用: https://pan.quark.cn/s/xxx
用户: 验证这几个链接是否有效(附链接列表)
Agent 会调用 check_links.py 检测并返回结果。
部署服务
用户: 帮我部署一下网盘搜索服务
用户: 把网盘搜索部署到 9000 端口
Agent 会调用 deploy.sh 完成部署。
Skill 内部调用流程
当 Agent 收到搜索请求时,执行流程:
用户: 搜一下 "Python教程"
↓
1. 探测 API 地址(NETDISK_API_URL > localhost:8888)
↓
2. 调用 scripts/search.py "Python教程"
↓
3. 解析结果,按网盘类型分组展示
↓
4. 返回格式化的搜索结果给用户
快速开始(命令行)
搜索资源
cd ~/.hermes/skills/netdisk-search
# 基础搜索
python3 scripts/search.py "速度与激情"
# 指定网盘类型
python3 scripts/search.py "Python教程" --types baidu,quark
# 过滤结果
python3 scripts/search.py "唐朝诡事录" --include "合集" --exclude "预告"
# JSON 输出
python3 scripts/search.py "机器学习" --format json --limit 10
# 只搜插件(跳过TG频道)
python3 scripts/search.py "资源" --src plugin
检测链接
# 单个链接
python3 scripts/check_links.py --url "https://pan.quark.cn/s/xxx"
# 多个链接
python3 scripts/check_links.py --url "https://pan.quark.cn/s/xxx" --url "https://pan.baidu.com/s/yyy"
# 从文件读取
python3 scripts/check_links.py --file links.txt
部署服务
# 一键部署
bash scripts/deploy.sh
# 指定端口
bash scripts/deploy.sh --port 9000
# 含前端版本
bash scripts/deploy.sh --web
# 启用认证
bash scripts/deploy.sh --auth admin:mypassword
API 端点
| 端点 | 方法 | 认证 | 说明 |
|---|---|---|---|
/api/search |
POST/GET | 可选 | 搜索资源 |
/api/check/links |
POST | 可选 | 检测链接有效性 |
/api/health |
GET | 不需要 | 健康检查 |
/api/auth/login |
POST | 不需要 | 登录获取 Token |
搜索 API 示例
# 基础搜索
curl -X POST http://localhost:8888/api/search \
-H "Content-Type: application/json" \
-d '{"kw": "速度与激情"}'
# 带过滤
curl -X POST http://localhost:8888/api/search \
-H "Content-Type: application/json" \
-d '{
"kw": "唐朝诡事录",
"cloud_types": ["baidu", "quark"],
"filter": {"include": ["合集"], "exclude": ["预告"]}
}'
详细 API 文档见 references/api-reference.md
搜索参数详解
search.py
| 参数 | 说明 | 示例 |
|---|---|---|
kw |
搜索关键词(必填) | "速度与激情" |
--types |
网盘类型过滤 | --types baidu,quark |
--include |
结果必须包含的词 | --include "合集,全集" |
--exclude |
结果排除的词 | --exclude "预告" |
--src |
数据来源: all/tg/plugin | --src plugin |
--plugins |
指定插件 | --plugins labi,zhizhen |
--refresh |
强制刷新缓存 | --refresh |
--format |
输出格式 | --format json |
--limit |
最大结果数 | --limit 50 |
--api |
API 地址 | --api http://1.2.3.4:8888 |
check_links.py
| 参数 | 说明 | 示例 |
|---|---|---|
--url |
待检测链接(可多次) | --url "https://..." |
--file |
从文件读取链接 | --file links.txt |
--type |
网盘类型 | --type quark |
--password |
提取码 | --password 1234 |
--proxy |
代理地址 | --proxy socks5://127.0.0.1:1080 |
--format |
输出格式 | --format json |
支持的网盘类型
| 网盘 | 标识 | 可检测 | 网盘 | 标识 | 可检测 | |
|---|---|---|---|---|---|---|
| 百度网盘 | baidu |
✅ | 115网盘 | 115 |
✅ | |
| 阿里云盘 | aliyun |
✅ | PikPak | pikpak |
❌ | |
| 夸克网盘 | quark |
✅ | 迅雷网盘 | xunlei |
✅ | |
| 天翼云盘 | tianyi |
✅ | 123网盘 | 123 |
✅ | |
| UC网盘 | uc |
✅ | 磁力链接 | magnet |
❌ | |
| 移动云盘 | mobile |
✅ | 电驴链接 | ed2k |
❌ |
环境变量
| 变量名 | 说明 | 默认值 |
|---|---|---|
NETDISK_API_URL |
API 服务地址 | 自动探测 |
API 地址探测优先级:
- 命令行
--api参数 - 环境变量
NETDISK_API_URL http://localhost:8888(本地默认)
故障排查
Q: 连接被拒绝
docker ps | grep netdisk-search # 检查容器是否运行
docker logs netdisk-search # 查看日志
docker restart netdisk-search # 重启
Q: 搜索结果为空
- 确认关键词是否正确,尝试更简短的词
- 检查网络连接,TG 搜索可能需要代理
- 尝试只搜插件:
--src plugin
Q: 链接检测超时
- 检查网络连接
- 使用代理:
--proxy socks5://127.0.0.1:1080 - 减少同时检测数量
与其他 Skill 的关系
| Skill | 定位 | 适用场景 |
|---|---|---|
| netdisk-search | 底层通用搜索 | 快速搜索、链接检测、API 集成 |
| pansou-resource-scraper | 业务应用 | 资源分类、网站生成、批量采集 |
- 需要快速搜索资源 → 使用 netdisk-search
- 需要构建资源库/生成网站 → 使用 pansou-resource-scraper
最佳实践
- 关键词优化:使用 2-4 个关键词,避免过于宽泛
- 类型过滤:明确指定网盘类型可提高搜索速度和精度
- 缓存利用:默认启用缓存,避免重复请求;需要最新结果时加
--refresh - 资源验证:重要资源建议先检测链接有效性再使用
- 代理配置:国内服务器搜 TG 频道需配置代理,插件搜索一般不需要
文件结构
netdisk-search/
├── SKILL.md # 本文件(Skill 主文档)
├── README.md # GitHub 项目文档
├── .gitignore
├── scripts/
│ ├── search.py # 搜索脚本(终端/JSON/Markdown 输出)
│ ├── check_links.py # 链接有效性检测脚本
│ └── deploy.sh # Docker 一键部署脚本
├── references/
│ └── api-reference.md # API 完整参考文档
└── templates/ # 预留模板目录
