snowy-yang
|
800871ef6e
|
refactor(qs)!: 汽水拆分为独立服务端 SodaServer
BREAKING CHANGE: /search/qs、/url/qs、/stream/qs、/login/qs/* 不再由本服务提供,
改由独立服务端 SodaServer(gitea.4i.hk/hhhge/SodaServer)承载,API 路径兼容。
- 删除 sdk/qs/(7 文件)与 sdk/apis/qs.ts,平台数 15 → 14
- /stream 路由收窄为 mg 咪咕加密流单平台
- /login 与 /login/status 移除 qs;README/docs 同步清理,汽水专节改指 SodaServer
- smoke 测试移除 qs 用例(流签名样本路径改 /stream/mg/123)
|
2026-10-21 23:08:04 +08:00 |
|
snowy-yang
|
e1357dd412
|
refactor(api)!: 平台 id 回退——joox/5sing/bili/apple 恢复全名,目录对齐 bd/mg
- 撤销 3381e9b/1b972ec 中 jx/5s/bl/ap 四个短码,恢复 joox/5sing/bili/apple;
qian→bd、migu→mg 保留
- 目录与文件对齐保留的新 id:sdk/qian/→sdk/bd/、sdk/migu/→sdk/mg/、
sdk/apis/qian.ts→bd.ts、migu.ts→mg.ts、src/http/migu-stream.ts→mg-stream.ts
(规则改为「目录=对外 id」,聚合入口的模块变量同步更名;music.migu.cn 等域名、
上游 music-lib 对照注释、miguGet 等功能标识符不动)
- 对外 id 全表:kw kg tx wy qs xm me qt lr mg bd joox 5sing bili apple
**破坏性变更**:joox/5sing/bili/apple 四平台的 URL、/sources 返回与
data/auth.json 凭据键恢复全名,已存短码键的登录态需重新登录。
验证:typecheck ✓、pnpm test 112/112 ✓
|
2026-10-03 21:04:55 +08:00 |
|
snowy-yang
|
ecca1b8458
|
feat(qs): PC 签名改双模式供给,签名工具链迁出独立仓库 qs-signer
- mssdk.ts:进程内 bdms.node 加载移除;优先 QS_SIGN_SERVER 调签名服务
(兼容 qs-signer 仓库 server.mjs 与 mssdk-sign 两个实现,/sign 契约互通),
无服务时 QS_HELIOS/QS_MEDUSA 或 data/qs-sign.json 固定值兜底,都没有走安卓自签
- musicSearch:PC 通道签名失败/请求异常/风控空结果自动降级安卓通道(原为同通道重试)
- signer/、tools/mssdk-sign/、scripts/qs-local-login.mjs 迁至 qs-signer
(gitea.4i.hk/hhhge/qs-signer),soda-mssdk/ 二进制目录一并挪走
|
2026-10-03 20:45:22 +08:00 |
|
snowy-yang
|
1b972ec4dd
|
refactor(api)!: 平台 id 收尾统一——migu→mg、apple→ap
补上最后两个多字母 id,至此 15 个平台对外 id 全部为两字母:
kw kg tx wy qs xm me qt lr mg bd jx bl 5s ap
**破坏性变更**:id 出现在所有 URL、/sources 返回以及 data/auth.json 的
凭据键里,咪咕与 Apple Music 已存的登录态会失效,需重新登录。
- sdk/index.ts:id 与 supportQuality 映射键(展示名 `咪咕音乐` /
`Apple Music` 保持不动)
- sdk/types.ts:Source 联合类型
- src/routes.ts:/stream 的 enum ['qs','migu'] → ['qs','mg'],以及
/url/mg、/stream/mg 等路径与 schema 描述
- src/http/migu-stream.ts、src/routes-login.ts、src/server.ts
- test/smoke-test.ts、README.md、docs/API.md 同步
有意未改:域名与 API 路径(music.migu.cn、music.apple.com、
amp-api.music.apple.com、/v1/catalog/cn/apple-curators/…)、
标识符(registerMiguStream、appleAmpGet、APPLE_AMP_API_URL 等)、
sdk/migu 与 sdk/apple 的目录与文件名、错误文案里的平台名。
验证:typecheck ✓、pnpm test 112/112 ✓;另起临时实例实证 /sources
(15/15 平台 id 与展示名全对)与 /login/status,旧 id 零残留。
|
2026-10-03 11:07:21 +08:00 |
|
snowy-yang
|
3381e9b906
|
refactor(api)!: 平台 id 改两字母短码——qian→bd、joox→jx、5sing→5s、bili→bl
对外 id 统一为两字母短码,与既有的 kw/kg/tx/wy/qs/xm/me/qt/lr 对齐;
migu 与 apple 保持原样(Apple Music 没有自然的短码)。
**破坏性变更**:id 出现在所有 URL、/sources 返回、OpenAPI 示例以及
data/auth.json 的凭据键里,这四个平台已存的登录态会失效,需重新登录。
- sdk/index.ts:id 与 supportQuality 映射键
- sdk/types.ts:Source 联合类型
- src/routes.ts 与 routes-login.ts:路由路径与 schema 描述
(/login/bili/qr → /login/bl/qr 等)、/login/status 的响应键
- test/smoke-test.ts、README.md、docs/API.md 同步
有意未改:sdk 目录与文件名仍用平台名(sdk/qian/、sdk/apis/joox.ts …),
规则定为「目录=平台名,id=对外短码」,映射只在 SUPPORTED_SOURCES 一处声明。
域名与正则(joox.com、5sing.kugou.com、/joox\.com\//)、jooxSign 等标识符、
错误文案里的中文平台名、以及 kg 榜单名(含「joox本地热歌榜」)全部保持原样——
它们只是恰好含平台名,并不是 id。
验证:typecheck ✓、pnpm test 112/112 ✓;另起临时实例实证 /sources 与
/login/status 的新 id 与展示名,新旧 id 均无残留。
|
2026-10-03 11:03:06 +08:00 |
|
snowy-yang
|
dd28ba157c
|
docs: 文档与实现对齐,并收录全量代码检查报告
- README:平台能力表按实际能力位修正(qs 歌单/专辑改 —、kw/kg/tx/wy 的
parse 改 ✅、qt/lr 封面改 ✅),接口表补 album 分页位、parse/playlist
支持平台、user-playlist 仅 tx/wy、DELETE 登录端点、qs 扫码方式;
项目结构补 http/ 下 4 个文件与 routes-login 的 bili/lr
- docs/API.md:整篇改为指向 /openapi.json 的速查版,把唯一的接口事实
来源收敛到 JSON Schema;平台数按实际 15 个更新
- CODE-AUDIT.md:新增,记录 2026-10-03 全量检查的 P0/P1/P2 与文档不一致项,
顶部标注修复状态(已修 P0/P1,未动项明确列出)
为什么改写而不是逐条打补丁:文档与实现双向失配的地方太多,逐条修补会留下
自相矛盾的段落;改成「能力以 /sources 与 /openapi.json 为准,文档只做索引」
后,漂移的结构性来源就被消除了。
|
2026-10-03 00:27:30 +08:00 |
|
snowy-yang
|
436b102ae2
|
feat(api): 列表接口分页统一 path 段——boards/song-list/singer songs与albums/album 支持可选 /:page,弃用 ?page=
|
2026-10-02 20:57:31 +08:00 |
|
snowy-yang
|
baa34a501c
|
feat(api): search/find 改 path 风格——/search/:source/:keyword[/:page] 与 /url 同构,find 支持单平台/all
|
2026-10-02 20:51:50 +08:00 |
|
snowy-yang
|
cf0874fc15
|
feat(auth): 流代理升级短时签名 URL——?exp=&sig=(HMAC 派生 10 分钟有效)替代裸 ?key=,秘钥不再落入 URL/日志
|
2026-10-02 20:39:25 +08:00 |
|
snowy-yang
|
415a04dea8
|
feat(auth): 统一 X-Server-Key 全路径鉴权(防扫描探测)+ per-IP 滑动窗口限流
|
2026-10-02 20:31:59 +08:00 |
|
snowy-yang
|
649ebbe12b
|
feat(auth): 调用秘钥鉴权——AUTH_KEY 环境变量启用,Bearer/X-Api-Key/?key= 三种携带方式,流地址自动附带 key
|
2026-10-02 20:15:36 +08:00 |
|
snowy-yang
|
1fec828547
|
feat: 平台注册与路由收尾——9 平台(含 xm/me/qt/lr 有声)、复合 id 约定、64k 档位、测试与文档
|
2026-10-02 19:43:21 +08:00 |
|
snowy-yang
|
e796e622f2
|
docs(readme): 补齐 qs 平台与双通道后的过期内容
- 平台列表/接口表补 qs(抖音扫码登录、/stream/qs 解密流代理)与取流链说明
- 歌曲 ID 约定补 qs,删掉已失效的 kg 风控告示(2026-10-01 /v5/url 已修复,
VIP 歌改为需登录的准确表述)
- 外部音源章节说明候选链只覆盖 kw/kg/tx/wy、失败回落 SDK 与酷我兜底
- 已知限制重写:kg 登录取流、kw 严格档位校验与降级链、qs 试听/解密代理
- 项目结构注释补 qs 目录与 auth 续期描述
|
2026-10-01 22:54:05 +08:00 |
|
snowy-yang
|
0f9989b26f
|
feat(login): kg 扫码/短信验证码登录、QQ 扫码登录
- kg:sdk/auth 新增 qrKey/qrCheck 扫码与 sendCaptcha/cellphoneLogin 短信登录,路由接线
- tx:新增 /login/tx/qr(/check)(移植 sansenjian/qq-music-api):ptlogin 扫码 →
check_sig 换 p_skey → OAuth authorize 换 code → QQConnectLogin 换凭据;
状态码对齐 wy(800 过期/801 等待/802 已扫/803 成功),qrsig 失效 403 映射 800;
成功凭据入库(通常含 openid/refresh_key,可走自动续期)
|
2026-10-01 16:35:08 +08:00 |
|
snowy-yang
|
3c51e4d06a
|
feat(dev): 热重载开发模式(node --watch 限定 src/sdk/sources 目录)
- package.json 新增 dev 脚本;--watch-path 限定监视范围,
规避 @fastify/swagger-ui 启动时写 node_modules 触发的多余重启
- start.bat 支持 dev 参数(保留 SOURCE_ENABLED 外部音源开关)
- README 快速开始补充 pnpm dev
|
2026-09-29 20:24:40 +08:00 |
|
snowy-yang
|
354df2e739
|
refactor: 架构整固——分层单向化、全量 TypeScript、直接运行
- 移除 bd/mg 两平台及磁盘残留产物;清理 api-test 死脚本、musicSdk/message+options 死模块、infSign vendor
- musicSdk/ 改名 sdk/;src/common、src/auth、src/apis 整体移入 sdk/,依赖方向定为 src → sdk 严格单向
- src/ 手写 JS 全量转 .ts,删除 JS 类型垫片 modules.d.ts;源码 import 统一 .ts 后缀
- Node 原生类型剥离直接运行 .ts(engines >=22.18),取消 tsc 发射产物,tsc 仅类型检查(pnpm typecheck)
- 删除 kwdes 备用实现与 src/index.ts 转发垫片;测试移至 test/smoke-test.ts
- common/request.ts 补显式导出类型;修复 set-cookie 单值形态、ApiError 类字段等隐患
验证:tsc 零错误,smoke-test 41/41
|
2026-09-25 23:06:23 +08:00 |
|
snowy-yang
|
45f3a4b989
|
feat(login): 新增网易云扫码/手机号登录与酷狗 token 绑定
|
2026-09-18 19:15:11 +08:00 |
|
snowy-yang
|
0f2585e5bd
|
feat(album): 新增 QQ 音乐(tx)专辑支持
|
2026-09-17 06:20:37 +08:00 |
|
snowy-yang
|
b06769dbbd
|
fix(album): 修复 kw 专辑接口——上游通道可用,故障为路由误传参数
|
2026-09-16 22:34:41 +08:00 |
|
snowy-yang
|
23c7ad91e4
|
feat(api): 新增歌手与专辑接口,修复各平台死代码中的多处隐藏 bug
|
2026-09-16 22:23:22 +08:00 |
|
snowy-yang
|
5dd0468860
|
refactor!: 移除品牌字样,音源改为 sources/ 目录自动加载,脚本不入库
|
2026-09-16 21:28:50 +08:00 |
|
snowy-yang
|
f548e5990b
|
chore: 切换包管理器为 pnpm
|
2026-09-16 21:14:33 +08:00 |
|
snowy-yang
|
c1c8aa4b94
|
refactor(routes)!: 移除旧版 query 风格路由
|
2026-09-16 21:07:01 +08:00 |
|
snowy-yang
|
ab90c5b4c4
|
docs: 移除 lx 音源签名分析与逆向相关表述
|
2026-09-16 20:29:18 +08:00 |
|
snowy-yang
|
2b4bb16e02
|
refactor(server): 迁移到 Fastify 5 + 完善文档与路由参数适配
|
2026-09-09 21:56:06 +08:00 |
|
archive
|
f289df4cd7
|
存档:TS 重构前基线(lx 聚合源 = isolated-vm 加载器,签名方案已移除)
|
2026-08-28 23:24:49 +08:00 |
|