Stash:用 Cookie 登录绕过官方 API,把 Spotify 和 YouTube Music 变成手机里的 FLAC 库
您的 Spotify + YouTube 音乐库和日常合辑。以无损 FLAC 格式流式传输或下载。永远免费和开源。
秒懂
- 它是什么?
- Stash 是一款 Android 端开源应用,用 Cookie 登录绕过 Spotify 与 YouTube Music 的官方 API,把两个平台的曲库镜像到手机,支持离线 FLAC 下载与在线流式索引两种模式。它不建服务器、不搞订阅,但依赖第三方下载工具,且 Cookie 方案有明确的使用边界。
- 适合谁用?
- Stash 适合那些同时使用 Spotify 和 YouTube Music、且愿意为无损文件牺牲一定便利性的 Android 用户。它不适合依赖官方 API 稳定性、不愿手动提取 Cookie、或者对第三方下载工具(QBDLX、arcod)持保留态度的人。
- 能商用吗?
- 可以,但有条件。GPL-3.0 是 copyleft 许可证:如果你分发包含它的软件,就必须以同一许可证公开该软件的源代码。只在内部运行、不对外分发,则不会触发这项义务。
- 还在维护吗?
- 在维护。仓库最近一次提交在 5 天前。
- 用什么语言写的?
- 主要是 Kotlin(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决的问题:官方 API 做不了的事
Stash 的核心机制是 Cookie 认证。Spotify 的移动登录 API 不开放给第三方,YouTube 则依赖多个 Cookie 联合认证。因此 Stash 提供了两种连接方式:在应用内直接登录,或者手动从浏览器开发者工具中复制 Cookie。Spotify 只需要 `sp_dc` 这一个值,YouTube 则需要完整的 `cookie:` 请求头。这些 Cookie 被 AES-256-GCM 加密后存在设备上,使用 Google 的 Tink 库。Stash 不会把 Cookie 发送到任何第三方服务器,因为根本没有 Stash 服务器。这个方案的风险在于 Cookie 是会话级的,一旦你在网页端退出登录,Cookie 就会失效,需要重新连接。
两种模式:离线 FLAC 与在线索引的取舍
Stash 的同步行为由模式决定。离线模式会把每首歌下载为 FLAC 文件,或者尽可能接近无损的源,然后存储在手机里。一旦下载完成,播放不再需要网络,但会占用存储空间。README 估计一个中等规模的曲库需要大约 9 到 15 GB。在线模式则几乎不占存储,它构建一个可流式播放的本地索引,但播放时必须联网。两种模式可以在一个界面里切换,适合不同场景:通勤时用离线,在家用在线省空间。这个设计很直接,但注意 README 没有说明在线模式是否缓存部分数据,也没有说明切换模式时索引的迁移成本。
FLAC 来源:依赖第三方下载工具
Stash 能输出真正的 FLAC,而不是重新编码,这要归功于两个外部工具:QBDLX(QobuzDownloaderX)和 arcod。QBDLX 从 Qobuz 直接下载流,arcod 的具体作用在 README 中只有链接没有说明。这意味着 Stash 的离线质量不取决于 Spotify 或 YouTube 的源,而取决于 Qobuz 的可用性和这些第三方工具的稳定性。README 明确提到这些工具由个人维护,免费但可能不稳定。如果 QBDLX 或 arcod 停止维护,Stash 的离线模式就会失去核心支撑。这是采用 Stash 前必须评估的风险:你的无损文件链路上有一个你无法控制的第三方环节。
安装与构建:三条路径都可行
Stash 提供三种安装方式。直接下载 APK 最简单,从 Releases 页面获取最新版本,允许未知来源后安装。Obtainium 可以追踪 GitHub Releases 并自动更新,适合喜欢频繁升级的人。从源码构建需要 Android Studio Hedgehog(2023.1.1)或更高版本、JDK 17 和 Android SDK 35,命令是 `git clone` 后运行 `./gradlew assembleDebug`,APK 会生成在 `app/build/outputs/apk/debug/`。构建过程不算复杂,但要求开发者环境匹配特定版本。注意 README 没有提供任何关于签名或校验和的说明,所以从 Releases 下载时你需要信任 GitHub 的传输安全。
隐私设计:没有服务器,但 Cookie 是双刃剑
Stash 的隐私卖点很明确:无 Stash 服务器、无账号、无分析、无第三方崩溃报告。所有 Cookie 只存在于设备上,且加密。但 Cookie 登录本身意味着你的 Spotify 或 YouTube 会话凭证被复制到了应用里。虽然 README 强调 Cookie 只发送回官方服务,但任何持有 Cookie 的人都能访问你的账号。Stash 的代码是 GPL-3.0,理论上你可以审计它,但普通用户无法验证应用是否真的只与官方通信。另一个实际限制是,Cookie 可能因官方会话过期而失效,需要重新提取。README 也提醒,从隐私窗口复制的 Cookie 有时会同步失败,建议使用普通浏览器窗口。
功能细节:匹配与错误标记
Stash 声称匹配准确率高达 99%,但 README 没有给出验证方法。它提供了错误匹配标记功能:如果 Stash 选错了版本,你可以从正在播放的界面一键标记,它会重新搜索。这个功能很实用,因为无损下载的匹配错误会导致文件无法播放。另一个亮点是 Last.fm scrobbling,默认关闭。它还支持将点赞和播放历史镜像回 Spotify 和 YouTube 账号,但这需要你在设置中启用。播放功能包括 5 段均衡器、低音增强、虚拟器、交叉淡入淡出和归一化。歌词从 LRCLIB 获取并随歌曲滚动。这些功能都写在 README 中,但没有任何截图或演示,实际体验未知。
维护与许可:GPL-3.0 下的持续更新
Stash 的仓库在 2026 年 8 月仍有活跃推送,最近三个版本间隔约一周到十天,说明项目处于活跃维护状态。它使用 GPL-3.0 许可证,这意味着任何分发或修改后的版本都必须开源。对于个人使用,这没有额外负担,但如果你打算二次开发并分发,就需要遵守 GPL 的传染性条款。维护成本方面,由于依赖 QBDLX 和 arcod,Stash 的维护者需要跟进这些工具的变化。此外,Cookie 认证方式可能随时被 Spotify 或 YouTube 的反制措施破坏,因此每次官方更新都可能影响 Stash 的可用性。采用前应关注 Releases 页面的更新频率,以及是否有用户报告连接问题。
编辑结论
Stash 适合那些同时使用 Spotify 和 YouTube Music、且愿意为无损文件牺牲一定便利性的 Android 用户。它不适合依赖官方 API 稳定性、不愿手动提取 Cookie、或者对第三方下载工具(QBDLX、arcod)持保留态度的人。采用前先确认两件事:你的设备有 9 到 15 GB 可用空间(离线模式),并且你能接受 Cookie 会话被官方撤销的风险。若这两点都成立,Stash 是目前少有的、把两个商业曲库统一成本地 FLAC 的开源方案。
社区笔记