想法来自用了很久的 Lyricify ,但它一直没有浏览器端。开车的时候 Spotify 没歌词实在难受,所以自己开发了一个浏览器端的,在车机浏览器里就能用(用 Tesla 实测)。
完全开源,支持自己部署;嫌麻烦的话也可以直接用我部署好的。
- 在线版: https://drivelyrics.com
- 源码( AGPL-3.0 ): https://github.com/jiaton/drivelyrics
能干啥
- 歌词跟着 Spotify 播放进度逐行滚动
- 歌词源:中文歌(或开了翻译时)优先网易云,英文歌优先 LRCLIB ,也可以在设置里手动指定;翻译可开可关(右上角 ⚙ 设置)
- 歌词错了点右上角「歌词不对?」,从候选里手动选,纠正结果所有用户共享
- 车机登录不用打字,用已登录的手机扫码就能登上,cookie 长期有效,直到手动退出
折腾过的点
- 中文歌匹配:Spotify 给的歌名经常是繁体,歌词库里是简体。现在用 OpenCC 把繁简统一后打分,结合标题、歌手、时长,并且排除翻唱、伴奏、Live 版
- 车机性能:为了照顾车机的 GPU 和性能,歌词每换一行只做一次 CSS transform ,不跑逐帧动画
- 轮询:每个用户一个轮询器,只有页面开着才去调用 Spotify ,然后用 SSE 推给浏览器;页面关闭一分钟后停止
- 技术栈:后端 FastAPI + SQLModel + SQLite ,前端 Vite + React ,纯 CSS 没用 UI 框架
- 隐私:Google 登录只拿邮箱和名字; Spotify 的密钥和令牌在数据库里加密存储
使用门槛
需要 Spotify Premium,而且每个人要建一个自己的 Spotify 开发者应用(网站上有引导,两分钟搞定)。
这是 Spotify 2026 年的新规:开发者模式的应用最多给 5 个人用,所有者还必须是 Premium ,所以没法用一个公共应用服务所有人。
自部署
docker compose up -d --build 就能跑,需要一个 HTTPS 域名和一个 Google OAuth 客户端,README 里有完整步骤。
开源版默认只用 LRCLIB 当歌词源。源码里没放网易云接口服务,需要的话自己接一个兼容的就行,很简单。
思路来自 Lyricify ,感谢 Lyricify ,也推荐大家用它的客户端!
欢迎回帖,欢迎 Issue 和 PR~