Files
Mymusic2/需求.md
2026-01-06 09:46:52 +08:00

22 KiB
Raw Permalink Blame History

角色与目标你是一名资深的前端架构师。请帮我构建一个单文件Single-File的 React 应用,这是一个具有“音乐搜索下载播放”功能的 Progressive Web App (PWA)。 技术栈1.Framework: React (使用 Functional Components + Hooks) 2.Styling: Tailwind CSS (追求现代、干净、移动端优先的 UI) 3.Icons: Font Awesome 核心功能根据我提供的API实现音乐的搜索、下载、在线播放; 搜索直接 aggregateSearch 全局检索即可,然后显示音乐信息列表 最好显示专辑封面 其他信息你可以自己选择,支持查看歌曲的专辑列表;下载,支持单个音乐的下载,支持专辑的批量下载;在线播放,支持当前列表的播放,支持单独音乐加入歌单,只保留一个歌单即可,支持歌单的清理,支持专辑的批量播放;围绕这三个主需求的其他需求你可以自己补充; 输出要求:请生成一个完整的 .html 文件(包含 React 和 Babel 的 CDN 链接,以便单文件运行),代码需要有详细的注释。 注意我提供的API文档比较旧返回的信息不可信你自己测试下看看真实的返回结果aggregateSearch 是真实的,我测了; TuneHub API v1.0.0 概览 服务介绍 实时看板 (Live) 支持平台 核心 API

  1. 歌曲信息
  2. 音乐链接 (文件)
  3. 专辑封面
  4. 歌词获取
  5. 歌曲搜索
  6. 聚合搜索
  7. 歌单详情
  8. 排行榜列表
  9. 排行榜歌曲 10-11. 系统监控 统计 API
  10. 获取统计数据
  11. 统计摘要
  12. 平台统计概览
  13. QPS 统计
  14. 趋势数据
  15. 请求类型统计 TuneHub API 接口文档

TuneHub 是一个统一的音乐信息解析服务。它打破了不同音乐平台之间的壁垒,提供了一套标准化的 API 接口。 Base URL: https://music-dl.sayqz.com | Version: 1.0.0 实时统计看板 今日总调用

成功率

平均耗时

ms 平均 QPS

平台调用占比 (Today) 等待数据... Top 5 接口类型 (Today) 接口 调用量 成功率 ... 支持的平台 平台标识 (source) 平台名称 状态 netease 网易云音乐 已启用 kuwo 酷我音乐 已启用 qq QQ音乐 已启用

  1. 获取歌曲基本信息 GET GET /api/?source={source}&id={id}&type=info

获取歌曲的名称、歌手、专辑等基本元数据信息。 Response Example

{ "code": 200, "message": "success", "data": { "name": "歌曲名称", "artist": "歌手名称", "album": "专辑名称", "url": "https://music-dl.sayqz.com/api/?source=netease&id=123456&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=123456&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=123456&type=lrc" }, "timestamp": "2025-11-23T12:00:00.000+08:00" }

  1. 获取音乐文件链接 GET GET /api/?source={source}&id={id}&type=url&br=[320k] 音质参数 (br) 对照表 值 说明 比特率 128k 标准音质 128kbps 320k 高品质 320kbps flac 无损音质 ~1000kbps flac24bit Hi-Res 音质 ~1400kbps 💡 响应说明 (Response)

    成功时返回 302 Redirect 到实际的音乐文件 URL。 自动换源:当请求的原平台失败时,系统会自动尝试其他平台。此时响应头会包含 X-Source-Switch 字段例如netease -> kuwo

  2. 获取专辑封面 GET

获取歌曲的专辑封面图片。 GET /api/?source={source}&id={id}&type=pic Response: 302 Redirect to image URL. 4. 获取歌词 GET

获取歌曲的 LRC 格式歌词。 GET /api/?source={source}&id={id}&type=lrc Response Example (Text/Plain)

[00:00.00]歌词第一行 [00:05.50]歌词第二行 [00:10.20]歌词第三行

  1. 搜索歌曲 GET GET /api/?source={source}&type=search&keyword={keyword}&limit=[20] Response Example

{ "code": 200, "message": "success", "data": { "keyword": "周杰伦", "total": 10, "results": [ { "id": "123456", "name": "歌曲名称", "artist": "周杰伦", "album": "专辑名称", "url": "https://music-dl.sayqz.com/api/?...", "platform": "netease" } ] } }

  1. 聚合搜索 GET GET /api/?type=aggregateSearch&keyword={keyword} Response Example

{ "code": 200, "message": "success", "data": { "keyword": "周杰伦", "limit": 10, "page": 1, "platforms": [ "netease", "qq", "kuwo" ], "platformStats": { "netease": { "success": true, "count": 10, "duration": 160, "error": null }, "qq": { "success": true, "count": 10, "duration": 133, "error": null }, "kuwo": { "success": true, "count": 10, "duration": 59, "error": null } }, "total": 30, "results": [ { "id": "509781655", "name": "想你就写信 (Live)", "artist": "周杰伦、李硕、张鑫", "album": "中国新歌声第二季 第13期", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=509781655&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=509781655&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=509781655&type=lrc" }, { "id": "0039MnYb0qxYhV", "name": "晴天", "artist": "周杰伦", "album": "叶惠美", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=0039MnYb0qxYhV&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=0039MnYb0qxYhV&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=0039MnYb0qxYhV&type=lrc" }, { "id": "228908", "name": "晴天", "artist": "周杰伦", "album": "叶惠美", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=228908&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=228908&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=228908&type=lrc" }, { "id": "5257138", "name": "屋顶", "artist": "周杰伦、温岚、吴宗宪", "album": "男女情歌对唱冠军全记录", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=5257138&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=5257138&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=5257138&type=lrc" }, { "id": "001Bbywq2gicae", "name": "搁浅", "artist": "周杰伦", "album": "七里香", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=001Bbywq2gicae&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=001Bbywq2gicae&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=001Bbywq2gicae&type=lrc" }, { "id": "324244", "name": "青花瓷", "artist": "周杰伦", "album": "我很忙", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=324244&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=324244&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=324244&type=lrc" }, { "id": "1888354230", "name": "默 (Live)", "artist": "李荣浩、周杰伦", "album": "2021中国好声音 第1期", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=1888354230&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=1888354230&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=1888354230&type=lrc" }, { "id": "002tNzue0g8xQA", "name": "爱你没差", "artist": "周杰伦", "album": "十二新作", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=002tNzue0g8xQA&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=002tNzue0g8xQA&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=002tNzue0g8xQA&type=lrc" }, { "id": "440615", "name": "花海", "artist": "周杰伦", "album": "魔杰座", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=440615&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=440615&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=440615&type=lrc" }, { "id": "210049", "name": "布拉格广场", "artist": "蔡依林、周杰伦", "album": "看我72变", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=210049&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=210049&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=210049&type=lrc" }, { "id": "003aAYrm3GE0Ac", "name": "稻香", "artist": "周杰伦", "album": "魔杰座", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=003aAYrm3GE0Ac&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=003aAYrm3GE0Ac&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=003aAYrm3GE0Ac&type=lrc" }, { "id": "118987", "name": "枫", "artist": "周杰伦", "album": "十一月的萧邦", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=118987&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=118987&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=118987&type=lrc" }, { "id": "490595315", "name": "因为爱情 (Live)", "artist": "周杰伦、那英", "album": "中国新歌声第二季 第1期", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=490595315&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=490595315&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=490595315&type=lrc" }, { "id": "002qU5aY3Qu24y", "name": "青花瓷", "artist": "周杰伦", "album": "我很忙", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=002qU5aY3Qu24y&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=002qU5aY3Qu24y&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=002qU5aY3Qu24y&type=lrc" }, { "id": "94237", "name": "七里香", "artist": "周杰伦", "album": "七里香", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=94237&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=94237&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=94237&type=lrc" }, { "id": "255020", "name": "刀马旦", "artist": "李玟、周杰伦", "album": "Promise", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=255020&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=255020&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=255020&type=lrc" }, { "id": "004Z8Ihr0JIu5s", "name": "七里香", "artist": "周杰伦", "album": "七里香", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=004Z8Ihr0JIu5s&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=004Z8Ihr0JIu5s&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=004Z8Ihr0JIu5s&type=lrc" }, { "id": "94239", "name": "搁浅", "artist": "周杰伦", "album": "七里香", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=94239&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=94239&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=94239&type=lrc" }, { "id": "210062", "name": "骑士精神", "artist": "蔡依林、周杰伦", "album": "看我72变", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=210062&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=210062&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=210062&type=lrc" }, { "id": "003KtYhg4frNXC", "name": "枫", "artist": "周杰伦", "album": "十一月的萧邦", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=003KtYhg4frNXC&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=003KtYhg4frNXC&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=003KtYhg4frNXC&type=lrc" }, { "id": "440613", "name": "稻香", "artist": "周杰伦", "album": "魔杰座", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=440613&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=440613&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=440613&type=lrc" }, { "id": "490602328", "name": "沧海一声笑 (Live)", "artist": "那英、周杰伦、刘欢、陈奕迅", "album": "中国新歌声第二季 第1期", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=490602328&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=490602328&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=490602328&type=lrc" }, { "id": "003cI52o4daJJL", "name": "花海", "artist": "周杰伦", "album": "魔杰座", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=003cI52o4daJJL&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=003cI52o4daJJL&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=003cI52o4daJJL&type=lrc" }, { "id": "118980", "name": "夜曲", "artist": "周杰伦", "album": "十一月的萧邦", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=118980&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=118980&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=118980&type=lrc" }, { "id": "1317494434", "name": "屋顶 (Live)", "artist": "周杰伦、宿涵、张神儿", "album": "2018中国好声音 澳门演唱会", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=1317494434&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=1317494434&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=1317494434&type=lrc" }, { "id": "001zMQr71F1Qo8", "name": "夜曲", "artist": "周杰伦", "album": "十一月的萧邦", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=001zMQr71F1Qo8&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=001zMQr71F1Qo8&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=001zMQr71F1Qo8&type=lrc" }, { "id": "3211586", "name": "爱你没差", "artist": "周杰伦", "album": "十二新作", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=3211586&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=3211586&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=3211586&type=lrc" }, { "id": "5234479", "name": "布拉格广场", "artist": "蔡依林、周杰伦", "album": "跨世纪金曲精选", "platform": "netease", "url": "https://music-dl.sayqz.com/api/?source=netease&id=5234479&type=url", "pic": "https://music-dl.sayqz.com/api/?source=netease&id=5234479&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=netease&id=5234479&type=lrc" }, { "id": "001xd0HI0X9GNq", "name": "一路向北", "artist": "周杰伦", "album": "J III MP3 Player", "platform": "qq", "url": "https://music-dl.sayqz.com/api/?source=qq&id=001xd0HI0X9GNq&type=url", "pic": "https://music-dl.sayqz.com/api/?source=qq&id=001xd0HI0X9GNq&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=qq&id=001xd0HI0X9GNq&type=lrc" }, { "id": "440616", "name": "兰亭序", "artist": "周杰伦", "album": "魔杰座", "platform": "kuwo", "url": "https://music-dl.sayqz.com/api/?source=kuwo&id=440616&type=url", "pic": "https://music-dl.sayqz.com/api/?source=kuwo&id=440616&type=pic", "lrc": "https://music-dl.sayqz.com/api/?source=kuwo&id=440616&type=lrc" } ] }, "timestamp": "2026-01-05T14:09:25.068+08:00" }

7-9. 歌单与排行榜 7. 获取歌单详情 GET /api/?source={source}&id={id}&type=playlist

{ "code": 200, "data": { "list": [ { "id": "123456", "name": "歌曲名称", "types": ["flac", "320k", "128k"] } ], "info": { "name": "歌单名称", "author": "创建者" } } }

  1. 获取排行榜列表 GET /api/?source={source}&type=toplists

{ "code": 200, "data": { "list": [ { "id": "19723756", "name": "飙升榜", "updateFrequency": "每天更新" } ] } }

  1. 获取排行榜歌曲 GET /api/?source={source}&id={id}&type=toplist

{ "code": 200, "data": { "list": [ { "id": "123456", "name": "歌曲名称" } ], "source": "netease" } }

10-11. 系统监控 GET /status

{ "code": 200, "data": { "status": "running", "platforms": { "netease": { "enabled": true } } } }

GET /health

{ "code": 200, "data": { "status": "healthy" } }

统计分析 API 详解

TuneHub 提供完整的 API 调用统计分析功能。所有数据均使用 UTC+8北京时间 时区。 12. 获取统计数据 GET GET /stats?period=[today]&groupBy=[platform] Response Example

{ "code": 200, "data": { "period": "today", "overall": { "total_calls": 15420, "success_calls": 14856, "success_rate": 96.34, "avg_duration": 245.67 }, "breakdown": [ { "group_key": "netease", "total_calls": 8234, "success_rate": 97.13 } ], "qps": { "avg_qps": 0.1785, "peak_qps": 2.4567 } } }

  1. 获取统计摘要 GET GET /stats/summary

{ "code": 200, "data": { "today": { "total_calls": 15420, "success_rate": 96.34 }, "week": { "total_calls": 98765 }, "top_platforms_today": [ { "group_key": "netease", "total_calls": 8234 } ] } }

  1. 平台统计概览 GET GET /stats/platforms?period=[today]

{ "code": 200, "data": { "platforms": { "netease": { "total_calls": 8234, "success_rate": 97.13 }, "kuwo": { "total_calls": 4521, "success_rate": 97.08 } } } }

  1. QPS 统计 GET GET /stats/qps?period=[today]

{ "code": 200, "data": { "qps": { "avg_qps": 0.1785, "peak_qps": 2.4567, "hourly_data": [ { "date": "2025-11-24", "hour": 14, "calls": 8845, "qps": "2.4569" } ] } } }

  1. 趋势数据 GET GET /stats/trends?period=[week]

{ "code": 200, "data": { "trends": [ { "date": "2025-11-17", "total_calls": 12345, "success_rate": 96.20 }, { "date": "2025-11-18", "total_calls": 13567, "success_rate": 96.48 } ] } }

  1. 请求类型统计 GET GET /stats/types?period=[today]

{ "code": 200, "data": { "requestTypes": { "url": { "total_calls": 6234, "success_rate": 96.21 }, "info": { "total_calls": 4521, "success_rate": 98.56 } } } }

高级特性 🔄 自动换源 (Auto-Switch)

当请求 type=url 时,如果原平台获取失败,系统会自动按配置优先级尝试其他平台。 换源优先级:

kuwo (酷我音乐)
netease (网易云音乐)
qq (QQ音乐)

🔍 聚合搜索 (Aggregate Search)

使用 aggregateSearch 可以一次性并发请求所有启用的平台,并对结果进行智能混合排列。 特性:

并发请求,速度快
自动去重
支持统一分页

© 2025 TuneHub API Documentation