--- name: music-search description: Search cloud drives for downloadable music resources (songs, albums, lossless audio). Use this skill when the user wants to download a specific song or album. Do NOT use for general music information, lyrics, or recommendations. official: false version: 1.0.2 --- # Music Search Skill 搜索音乐资源(歌曲、专辑、无损音乐),通过实时爬虫深度抓取资源页面,从各网盘平台获取公开分享的资源链接。 ## 前置条件 - **web-search** skill(必需,用于搜索发现资源页面) - **Node.js >= 18**(应用内置,无需额外安装) ## 命令 ### 搜索资源 ```bash bash "$SKILLS_ROOT/music-search/scripts/music-search.sh" search "关键词" [选项] ``` **选项:** | 参数 | 说明 | 默认值 | |------|------|--------| | `--pan ` | 筛选网盘类型: `quark`, `baidu`, `aliyun`, `uc`, `all` | `all` | | `--format ` | 筛选音频格式: `flac`, `ape`, `wav`, `dsd`, `hires`, `mp3`, `aac`, `all` | `all` | | `--limit ` | 每个平台最大结果数 | `5` | | `--engine ` | 搜索引擎: `deep`, `web` | `deep` | **引擎说明:** - `deep`(默认,推荐)— web-search 搜索发现资源页面 + JavaScript 深度页面抓取提取网盘链接和提取码,结果最准确 - `web` — 仅从 web-search 搜索引擎摘要中提取链接(速度快,但准确率较低,不做深度抓取) **示例:** ```bash # 搜索所有平台的音乐资源(默认使用深度搜索) bash "$SKILLS_ROOT/music-search/scripts/music-search.sh" search "周杰伦 范特西" # 只搜夸克网盘 FLAC 资源 bash "$SKILLS_ROOT/music-search/scripts/music-search.sh" search "周杰伦 范特西" --pan quark --format flac # 搜索 Hi-Res 高解析音乐 bash "$SKILLS_ROOT/music-search/scripts/music-search.sh" search "邓紫棋 光年之外" --format hires # 限制结果数量 bash "$SKILLS_ROOT/music-search/scripts/music-search.sh" search "林俊杰 她说" --limit 10 # 使用浅层搜索(不深度抓取页面) bash "$SKILLS_ROOT/music-search/scripts/music-search.sh" search "陈奕迅 十年" --engine web ``` Windows 系统使用 PowerShell 脚本: ```powershell powershell -File "$SKILLS_ROOT/music-search/scripts/music-search.ps1" search "周杰伦 范特西" --pan quark ``` ### 热门推荐 ```bash bash "$SKILLS_ROOT/music-search/scripts/music-search.sh" hot "2025年热门专辑" ``` 本质上是以推荐类关键词调用搜索,返回相关网盘资源。 ### 解析跳转链接 ```bash bash "$SKILLS_ROOT/music-search/scripts/music-search.sh" resolve "https://example.com/goto/xxx" ``` 当搜索结果中的链接需要二次跳转时,用此命令解析出真实网盘地址。 ## Agent 使用流程 1. 用户说「帮我找 XXX 的音乐」→ 执行 `search "XXX"` 2. 解析返回的 JSON,提取网盘链接 3. 按网盘类型和音频格式分组呈现给用户 4. 如果结果中有提取码 (`extractCode`),一并展示给用户 5. 如果结果中有 `pageUrl` 但没有直接 `url`,用 `resolve` 命令获取真实地址 **示例对话:** > 用户:帮我找一下周杰伦范特西专辑的无损资源,要FLAC格式 > > Agent: > 1. 执行 `search "周杰伦 范特西" --format flac` > 2. 从 JSON 结果中取出匹配项 > 3. 返回:标题 + 格式 + 网盘链接 + 提取码(如有) ## 输出格式 所有命令输出 JSON,结构如下: ```json { "success": true, "data": { "query": "周杰伦 范特西", "total": 5, "results": [ { "title": "资源标题", "pan": "quark", "url": "https://pan.quark.cn/s/xxx", "format": "FLAC", "extractCode": "ab12", "source": "deep-search", "pageUrl": "https://example.com/resource/123" } ] } } ``` **字段说明:** - `pan`: 网盘类型 — `quark`(夸克), `baidu`(百度), `aliyun`(阿里), `uc`(UC), `magnet`(磁力) - `format`: 检测到的音频格式 — `FLAC`, `APE`, `WAV`, `DSD`, `Hi-Res`, `AIFF`, `MP3`, `AAC`, `OGG`, 空字符串表示未检测到 - `source`: 结果来源 — `deep-search`(深度抓取), `web-search`(搜索摘要) - `url`: 网盘分享链接(可直接访问) - `extractCode`: 提取码/密码(如果检测到) - `pageUrl`: 结果来源页面 URL ## 配置 编辑 `music-search/.env` 可自定义偏好: ```bash # 偏好的网盘类型(逗号分隔,排在前面的优先展示) MUSIC_SEARCH_PREFERRED_PAN=quark,aliyun,baidu,uc # 深度搜索开关(推荐开启) MUSIC_SEARCH_DEEP_ENABLED=true # 每次搜索最多访问的结果页面数 MUSIC_SEARCH_DEEP_MAX_PAGES=6 # 并发抓取页面数 MUSIC_SEARCH_DEEP_CONCURRENCY=4 ``` ## 注意事项 - 搜索建议使用**中文歌手名+专辑名或歌曲名**,效果最好 - 深度搜索(`--engine deep`)比浅层搜索多 2-3 秒,但结果准确得多 - 深度搜索需要 web-search skill 启用 - 网盘分享链接可能随时失效,建议尽快使用 ## 免责声明 本工具仅供个人学习和研究使用。不托管、不分发、不提供任何版权内容,仅聚合搜索引擎上公开可访问的链接。请遵守所在地区的法律法规。