Skip to content

2026 年 9 月上游接入路线

基于 2026-09-07 审计,实施基线为 dab254e。本路线按用户要求先记录,再逐项实施;每项分别记录代码、离线测试和真实服务验收,不能把上游宣称可用等同于 TuneWeave 验收通过。

接入范围

顺序工作项实施与验收要求状态
1汽水公开搜索、详情链Android 歌曲搜索;SEO 详情、歌词、可听性、播放下载;完整保留资源身份、分页、明文/加密音频和试听限制。验证免费全曲、付费试听、跨页和统一 Provider。代码与单项真实验证完成;联合分页/HTTP 验收待第 8 步
2网易云 NMTID保留已有值;采集服务器签发值;EAPI 头与 Cookie 一致;匿名/账户/调用方隔离与适当持久化;有限请求、并发与重启测试。基本链路、回归与真实签发通过;最终并发审查待第 8 步
3网易云音质vivid 的客户端身份和编码参数;c512/ste2/aac2 强类型;同步 HTTP、Provider、下载/302、实际音质与 resolver;保留其他平台兼容行为。已接入并通过离线/真实请求验收
4网易云新版喜欢接入 XEAPI V3 /api/v1/radio/like,复用统一喜欢/取消喜欢语义,验证账户选择、布尔值和喜欢歌单一致性。已接入;真实账户写入未执行
5网易云易盾 V2使用官方 SDK 业务 Token,停止把配置串作为 Token;明确 Token 获取契约、版本和生命周期;修正跨账户共享与失效分支。不得引入上游全局 jsdom 架构或将空值当成功。已接入适配服务并真实验证
6酷狗公开播放差异核验新 Auth 链对匿名公开播放的适用性,只接入能服务现有公开能力的部分;不创建登录/授权账户层,不接二维码授权、设备踢出、QQ 登录及个人媒体库。已核验并按公开能力边界排除账户 Auth/Web 授权签名
7咪咕公开播放链独立接入并验证 Android M2、按 songId 下载、TV 鉴权与响应解密;保留 H5 兼容、真实权限和音质;只接受平台返回的媒体地址,不改目录伪造音质、不删除签名。已接入并通过离线/真实受限场景验收
8联合验收与文档更新接口说明、路由账本和实际采用的协议/许可证记录;运行格式、全仓 Clippy、workspace 测试与构建;真实受限项如实记录。workspace 测试/构建完成;文档收口待继续

边界

  • 本轮包括上次答复表格的六项及网易云新版喜欢。网易云百科、插播相似、酷狗/咪咕新增目录及账户业务不由本路线自动扩展接入。
  • 酷狗签名与 Auth 若只服务账户接口,记录证据并从当前公开能力实施范围排除,不为了“同步”引入未使用的框架或占位端点。
  • 参考代码只用于提取协议事实;使用强类型 Rust 与统一 HTTP/Provider 契约独立实现,不复制或机械翻译参考结构。
  • 实际账户与调用方凭证遵循既有所有权边界;真实验证优先匿名只读。远端写操作必须具有明确授权与可恢复条件;不自动发送评论或批量操作账户。
  • 不触发发布。参考快照的“已审查”和各项“已接入/已验收”分别记录。

实施记录

  • 2026-09-07:路线建立。审计复现汽水旧歌曲搜索与详情请求返回非 JSON;新 Android 搜索及 SEO 单曲详情返回有效结构,完整媒体尚待验证。
  • 2026-09-08 / 步骤 1:切换官方 Android 歌曲搜索与 SEO 详情;建立 SEO 包装类型,保留根级歌词优先级,拒绝身份冲突与业务错误。图片模板仅允许有界安全后缀;复用既有明文/加密媒体及试听分类,不增加外部解析服务。
  • 步骤 1 离线验证:cargo test -p tuneweave-provider-soda --lib,37 passed、9 ignored。新增 SEO 身份/歌词优先级与错误响应、图片模板边界测试。
  • 步骤 1 真实验证:匿名搜索、详情、逐字歌词、免费全曲与付费试听音频 4 项通过;可听性首次暴露免费流已改为明文,更新旧测试的加密断言后单独复测通过。新搜索分页与服务端 HTTP 联合验收仍留在第 8 步,未冒充全量验收。
  • 步骤 2 当前进度:已取消 WeAPI 随机覆盖 NMTID,加入 EAPI 数据头/Cookie 传递与按会话所有权隔离的身份存储;正在检查重启、迟到响应、调用方隔离及真实签发。编译与测试尚未收口,暂不标记完成。
  • 步骤 2.1:身份存储首轮定向测试通过,cargo test -p tuneweave-provider-netease identity --lib 为 15 passed、1 ignored;验证账户隔离、会话替换后的迟到响应丢弃、调用方显式 NMTID 优先、非法值拒绝和磁盘重启恢复。继续补实际 HTTP 往返验证及全 Provider 回归。
  • 步骤 2.2:实际本地 HTTP 往返测试通过,解密第二次 EAPI 请求验证 NMTID 与 HTTP Cookie 一致,并验证调用方脱离持久池。网易云全库回归为 310 passed、101 ignored;真实平台签发尚未据此宣称通过。
  • 步骤 2.3:真实匿名 EAPI 搜索通过,并增加断言确认本次响应确实签发 NMTID、客户端已采集;未输出身份值。开始步骤 3 的强类型音质接入,最后统一检查并发注销与旧客户端生命周期。
  • 步骤 3.1:加入统一 Quality::VividC512/Ste2/Aac2,接入 HTTP 参数、resolver 缓存区分、网易云播放和下载请求以及实际音质映射。vivid 播放使用 MP3,并为对应 EAPI/XEAPI 请求设置 Android 9.5.61 身份;其他请求保持既有身份。全仓 all-targets 类型检查通过,音质回归正在进行。
  • 步骤 3.2:网易云全库离线回归 310 passed、101 ignored;真实网络的全部现代音质(含 vivid)、全部沉浸声子类型(含新版三类)及 legacy/modern 下载请求均通过现有业务响应/权限分类断言。匿名响应允许降级或受限,不能据此宣称获得付费 vivid 全曲。
  • 步骤 4.1:新版喜欢已接到现有 set_track_subscription,使用 XEAPI 与 V3 checkToken,声明 TrackSubscriptionWrite 能力,喜欢/取消喜欢传递真正布尔值;先校验歌曲 ID 与所选账户认证,再请求平台。正在补回归,未用真实账户执行写操作。
  • 步骤 4.2:新版喜欢定向测试通过,覆盖 true/false 的完整协议字段、无登录和指定缺失账户、非法歌曲 ID。真实账户写入未执行;最终联合验收会补现有 HTTP 路由与说明。
  • 步骤 5 设计:V2 必须由官方 Watchman SDK 生成业务 Token;采用独立可选浏览器适配服务,每次使用隔离上下文获取新值,不向适配服务转发 MUSIC_U/MUSIC_A,也不复用全局 SDK 实例。Rust 保留服务器配置入口,未配置时明确报错,禁止回退旧配置串或空 Token。
  • 步骤 5.1:Rust 已拒绝旧配置串,V2 每次向受限环回适配入口获取新 Token;真实本地 HTTP 测试确认 POST、不转发凭据、不缓存。V3 缓存改为会话隔离与 120 秒保守上限。网易云回归 312 passed、102 ignored。
  • 步骤 5.2:新增 tools/netease-watchman 与部署说明,固定 Playwright 依赖;适配服务测试通过,覆盖新值、凭据/Origin 拒绝、并发上限和失败不泄漏。浏览器运行时下载及真实 SDK 获取仍待验证,尚不标记真实验收完成。
  • 步骤 5.3:用本机已有 Chromium 独立上下文真实加载官方 SDK,获得非空业务 Token;随后 live_v2_sdk_adapter_returns_fresh_business_token 通过,覆盖 Rust → 本地 HTTP → 官方 SDK 完整链路。仅记录成功与长度,不记录 Token。默认 Playwright 浏览器版本下载较慢,本次使用已有 Chromium 可执行文件;部署仍按适配服务 README 安装配套浏览器。
  • 步骤 6:审查新 user_verify → authorization → tracker Auth 链;使用 TuneWeave 已注册匿名设备和现有 Android 签名真实请求 user_verify,返回 status=0/error_code=35002、无 auth,专项真实测试通过。现有公开播放已经使用 v5 tracker;Web POST 签名变更用于新增二维码授权,当前公开请求无此路径。按用户边界排除账户 Auth/登录路由,不新增闲置签名或绕过权限的代码。
  • 步骤 7.1:真实探测确认 Android M2 返回实际 formatType,部分高音质请求返回权限拒绝;按 songId 下载返回独立下载地址及 formatId。TV 3DES 鉴权/解密真实成功,但示例 songId 下的部分 TV 变体 contentId/copyrightId 与请求不符,必须拒绝。已加入独立 Rust TV 协议模块、M2 有界兼容链和专用下载映射,初步 Migu 离线回归 31 passed、8 ignored;身份冲突、格式和联合媒体验收仍在继续。
  • 步骤 7.2:专用下载真实验证通过免费全曲与受限试听场景。自动音质遇到 HQ 的 VIP 拒绝后,仅追加一次 PQ 下载请求;保持 requested_quality,按返回 formatId 与资源元数据确认 actual_quality。试听下载返回 unavailable,不使用试听流伪造全曲。TV 加密增加独立 .NET 3DES 已知向量验证。
  • 步骤 7.3:Migu 全部离线测试 32 passed、9 ignored;全仓 cargo check --workspace --all-targets 通过。真实 M2 PQ、VIP HQ 拒绝、按 songId 下载和 TV 解密均可复现;TV 相关版权/内容身份不一致时专项测试确认拒绝,未改写成“可播放”。
  • 步骤 8.1:cargo test --workspace --all-targets --quiet 通过。各包汇总:TuneWeave 核心/服务与 Provider 测试均无失败;网易云 312 passed、102 ignored,咪咕 32 passed、9 ignored,酷狗 37 passed、9 ignored,汽水 37 passed、9 ignored。cargo check --workspace --all-targets 同样通过。