feat: 声匣 —— 网易云 / QQ 音乐自托管下载服务

由 163-music-dl CLI 重构为 Web 服务:
- 下载流水线、歌词与标签逻辑沿用旧版(node-id3 / ffmpeg)
- 网易云(chksz 接口 + music.163.com 元数据)与 QQ 音乐(VIP Cookie)provider
- QQ 扫码登录与 musickey 自动续期
- SQLite 持久化的下载队列,SSE 实时进度
- 曲库工具(M3U / ZIP / 回收站 / 补全标签)、历史统计与导出、访问密码
- Vite 8 + Vue 3 前端,浅色 / 深色
- Docker 部署配置(飞牛 NAS)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Jocay
2026-10-10 22:05:30 +08:00
commit 21945cc54f
73 changed files with 12507 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
{
"name": "shengxia",
"version": "0.1.0",
"private": true,
"description": "声匣 · 网易云 / QQ 音乐自托管下载服务",
"type": "module",
"engines": {
"node": ">=22.18"
},
"scripts": {
"dev": "node scripts/dev.mjs",
"dev:server": "node --watch --disable-warning=ExperimentalWarning server/src/main.ts",
"dev:web": "vite",
"build": "vite build",
"start": "node --disable-warning=ExperimentalWarning server/src/main.ts",
"typecheck": "tsc -p tsconfig.json && vue-tsc -p web/tsconfig.json",
"smoke": "node --disable-warning=ExperimentalWarning server/scripts/smoke.ts"
},
"dependencies": {
"@koa/bodyparser": "^6.1.0",
"@koa/router": "^15.7.0",
"koa": "^3.2.1",
"koa-static": "^5.0.0",
"node-id3": "^0.2.9",
"yazl": "^3.3.1"
},
"devDependencies": {
"@types/koa": "^3.0.3",
"@types/koa-static": "^4.0.4",
"@types/node": "^24.19.2",
"@types/yazl": "^3.3.1",
"@vitejs/plugin-vue": "^6.0.10",
"@vue/tsconfig": "^0.9.1",
"typescript": "^6.0.3",
"vite": "^8.3.4",
"vue": "^3.5.43",
"vue-router": "^5.4.0",
"vue-tsc": "^3.3.12"
}
}