免订阅听 YouTube Music,一周 835 颗星的桌面客户端到底能不能用
用 TypeScript 写的轻量 YouTube Music 桌面客户端,支持后台播放和搜索,但免订阅听歌这条路并不好走。

适合:愿意折腾、能接受接口随时变动、且只用于个人备份播放的用户。
先说结论
sohaibdevv/youtube-music 是个一周拿到 835 颗星的 TypeScript 桌面项目,本质是反编译 YouTube Music 的网页接口,再套一个本地壳。它的卖点很直接:无广告、可后台播放、可搜索和自建歌单,理论上不需要会员。
但“免费听歌”这件事并不像 README 写得那么轻松。真用起来有几个绕不过去的问题:版权、登录态、官方客户端的更新频率。
真正的问题
最大的矛盾不是功能,而是合规和稳定性。YouTube Music 并没有开放第三方客户端的官方接口,这个项目走的是逆向工程路线。逆向工程不是不能用,但它有两个先天短板:
一是被识别。一旦官方接口加了鉴权、签名或风控参数,本地客户端就可能突然登不上、放不了歌,这事用户没法提前预判,只能被动等作者修。
二是合规灰区。免订阅拿到的音频流,对终端用户来说多数情况下没问题,但严格说绕过了 YouTube Music 的付费协议,长期使用仍然属于灰色地带,商业发布、录屏分发都不建议。
第二个问题是体验层面。这个项目自称“轻量”,但它仍然要依赖你的 YouTube/Google 账号登录,不登录就只能听预览片段。所谓“免订阅”,免的是 Premium 钱,不是账号体系。
第三个问题容易被忽略:它依赖 Electron 或类似容器,启动后是独立窗口,和浏览器扩展版完全不是一种形态。如果你只是想关掉浏览器广告顺便后台播,它不是最优解。
怎么做更省力
如果只是想关广告、关前台播放,不愿意折腾逆向客户端,更省力的路线是浏览器用户脚本:在浏览器里跑一段脚本,把网页版 YouTube Music 的广告位屏蔽掉,再让浏览器后台保持运行。这一类方案不修改官方接口,被风控的概率低很多,缺点是不能独立成窗口。
如果就是想要桌面客户端,那下载前先做三件事:第一,看最近一次提交时间,超过三个月没动的版本慎用;第二,看 issue 区有没有“突然无法播放”“登录失效”这类集中反馈;第三,自己手里有一个可放弃的备用 Google 账号,不要拿主力号登录。
| 方案 | 后台播放 | 维护成本 | 风险 |
|---|---|---|---|
| 浏览器 + 用户脚本 | 依赖浏览器保活 | 低 | 极低 |
| sohaibdevv 客户端 | 原生支持 | 中 | 接口变动 |
| 官方 Premium 客户端 | 原生支持 | 零 | 订阅费用 |
哪些坑要避开
第一,别在项目 issue 里公开自己的登录 token 或 cookie 截图求帮助,哪怕打了码也别贴,OCR 能解一部分。
第二,别把它当成“永久免费”的工具。逆向项目最怕官方一次大改,作者如果不再维护,分支就会停滞,到时候你得自己回滚版本或换方案。
第三,桌面客户端版本众多,这个 repo 只是其中之一。同类项目还有 ytmdesktop、th-ch 等,它们之间的差异主要在 UI、是否支持主题和是否带下载功能,但合规风险是一致的,选哪个看个人喜好,别误以为换一个就合法了。
第四,TypeScript 写的不等于安全。它只是源码语言,不代表运行时不会请求额外接口,安装前最好翻一遍 network 请求,确认没有夹带上传。
现在就能动手
打开 https://github.com/sohaibdevv/youtube-music ,先看右上角的最新 release 时间,再看 issue 区“播放失败”类反馈的密度。如果一周内有维护且反馈不多,再拉到本地跑:装 Node、克隆仓库、跑安装命令、按提示登录备用号。跑通之后立刻试三件事:后台播放、切歌、关掉网络重新打开。能稳定通过,再考虑日常用。
如果只是想解决“边写代码边听歌不切窗口”这一件事,先去评估浏览器用户脚本路线,省得为了省订阅钱多养一个会随时坏掉的客户端。
如果你的核心需求是稳定且省心地把 YouTube Music 当主力播放器,官方 Premium + 桌面客户端仍然是性价比最高的路径,逆向项目只能作为备份,不要把工作流完全压在它上面。