feat: 实现网易云音乐同步服务核心功能与UI改进

添加完整的网易云音乐同步到Navidrome的功能实现,包括:
1. 新增Docker支持与相关配置文件
2. 实现歌单同步逻辑与Navidrome API集成
3. 改进前端UI界面与交互体验
4. 添加状态监控与错误处理机制
5. 实现定时同步功能与进度显示
This commit is contained in:
史悦
2026-01-12 20:03:30 +08:00
parent 89a28e1bc5
commit 50f7869a05
11 changed files with 2331 additions and 386 deletions

218
api.md
View File

@@ -148,6 +148,224 @@ TuneHub 是一个统一的音乐信息解析服务。它打破了不同音乐平
* `source`: `string` - **必需**. 平台标识.
* `id`: `string` - **必需**. 歌单 ID.
* `type`: `string` - **必需**. 固定为 `playlist`.
结果示例:
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": "2722391361",
"name": "天后 (live)",
"artist": "李佳薇",
"album": "歌手2025 第8期",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=2722391361&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=2722391361&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=2722391361&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=2722391361&type=lrc",
"types": [
"flac24bit",
"flac",
"320k",
"128k"
]
},
{
"id": "1368753797",
"name": "法兰西多士",
"artist": "告五人",
"album": "我肯定在几百年前就说过爱你",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=1368753797&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=1368753797&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=1368753797&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=1368753797&type=lrc",
"types": [
"flac24bit",
"flac",
"320k",
"128k"
]
},
{
"id": "155886",
"name": "光明",
"artist": "汪峰",
"album": "信仰在空中飘扬",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=155886&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=155886&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=155886&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=155886&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
},
{
"id": "569214247",
"name": "平凡的一天",
"artist": "毛不易",
"album": "平凡的一天",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=569214247&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=569214247&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=569214247&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=569214247&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
},
{
"id": "1810392410",
"name": "回音",
"artist": "神秘的小鸡蛋",
"album": "感觉",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=1810392410&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=1810392410&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=1810392410&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=1810392410&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
},
{
"id": "569200213",
"name": "消愁",
"artist": "毛不易",
"album": "平凡的一天",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=569200213&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=569200213&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=569200213&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=569200213&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
},
{
"id": "2083191501",
"name": "郁郁而终",
"artist": "马英杰",
"album": "郁郁而终(重制版)",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=2083191501&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=2083191501&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=2083191501&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=2083191501&type=lrc",
"types": [
"flac24bit",
"flac",
"320k",
"128k"
]
},
{
"id": "1838919030",
"name": "王招君",
"artist": "任素汐",
"album": "TA·说",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=1838919030&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=1838919030&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=1838919030&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=1838919030&type=lrc",
"types": [
"flac24bit",
"flac",
"320k",
"128k"
]
},
{
"id": "2105734399",
"name": "风过千里",
"artist": "雪域任运",
"album": "风过千里",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=2105734399&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=2105734399&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=2105734399&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=2105734399&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
},
{
"id": "1974443814",
"name": "我记得",
"artist": "赵雷",
"album": "署前街少年",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=1974443814&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=1974443814&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=1974443814&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=1974443814&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
},
{
"id": "155899",
"name": "勇敢的心",
"artist": "汪峰",
"album": "勇敢的心",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=155899&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=155899&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=155899&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=155899&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
},
{
"id": "1308081071",
"name": "作曲家 (Live)",
"artist": "刘郡格",
"album": "2018中国好声音 第8期",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=1308081071&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=1308081071&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=1308081071&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=1308081071&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
},
{
"id": "488641876",
"name": "有一个地方叫远方",
"artist": "曾昭玮",
"album": "有一个地方叫远方",
"info": "https://music-dl.sayqz.com/api/?source=netease&id=488641876&type=info",
"url": "https://music-dl.sayqz.com/api/?source=netease&id=488641876&type=url",
"pic": "https://music-dl.sayqz.com/api/?source=netease&id=488641876&type=pic",
"lrc": "https://music-dl.sayqz.com/api/?source=netease&id=488641876&type=lrc",
"types": [
"flac",
"320k",
"128k"
]
}
],
"total": 13,
"source": "netease",
"info": {
"name": "为你降次元喜欢的音乐",
"pic": "https://p1.music.126.net/Qara552B1Q3VBJnwggJA2A==/109951171404861681.jpg",
"desc": "",
"author": "为你降次元",
"playCount": 1
}
},
"timestamp": "2026-01-12T18:32:10.516+08:00"
}
### 8. 获取排行榜列表