微光 Lumen
懂你此刻的听歌伙伴。歌还在你常用的音乐 App 里放(网易云、QQ音乐、酷狗、酷我、汽水、洛雪、MusicFree),也能放你自己的 Navidrome / Jellyfin / WebDAV 曲库。微光按心情排歌、记得你的习惯、陪你读歌词。
门户和下载:https://wg.ivyea.com
能做什么
- 听歌回顾:所有音乐 App 听的歌合在一起算,起一个「听歌人格」(夜航人、单曲循环者、长情的人、漫游者……),每周、每月各一张卡,能分享;桌面也有一个听歌人格小组件
- 每晚一首(默认关):每晚到点一条通知,是今天放得最多的那首或好久没听的一首;周日换成本周回顾,月初换成上个月的
- 歌词卡片:任意一句歌词做成一张图分享
- 情绪找歌:选一个心情,微光在你曲库的情绪星图上走一条路。前几首陪着你,后面一点点亮起来
- 情绪电台:按一种心情一直放下去,快放完时自动续上
- 懂你:从你自己的听歌记录里学「这个点你常听什么」;对话点歌按你的口味、此刻的时间和天气,只从你的曲库里挑。对话记录存在手机里,下次打开能接着聊;说过「听不懂英文歌」会记住
- 听歌日记:每天听了什么、选过什么心情,微光替你写两句
- 歌词:整首滚动歌词带翻译,点一句让 AI 讲给你听,或从这句开始放
- 情绪星图:曲库按明亮和能量排成星空,画一条线就是歌单;开着微光听的歌会按实际听感校正能量
- 多个音乐 App:换着 App 听也认得出是同一首歌,听歌记录合在一起
- 自己的曲库:Navidrome(Subsonic)、Jellyfin/Emby、WebDAV 网盘,微光自己放,不切 App
- 免费曲库和电台:不装音乐 App 也能听,Audius 上音乐人免费公开的整首歌按心情放,还有中文网络电台
- 哼一段:想不起歌名,哼 10 秒认出来(ACRCloud,自带密钥)
- 作一首:按此刻的心情让 AI 写一首歌(ElevenLabs 或 MiniMax,自带密钥)
- 桌面小组件、悬浮光球:不进 App 也能切歌、一键回来(小组件两种:正在播放、听歌人格)
- 伙伴性格:温柔、元气、损友、安静、文艺
怎么做到的
微光不提供音源,也不登录你的音乐账号:
- 通过安卓的媒体会话读音乐 App 正在放什么、控制播放(需要「通知使用权」),所有 App 都一样
- 通过音乐 App 开放给车机的浏览接口读歌单:网易云能读(私密歌单只给前 12 首,公开歌单按 ID 补全整张);汽水不对外开放;QQ 音乐目前的版本没有这个接口。读不到歌单的 App,听过的歌和当前播放列表照样会收进曲库
- 车机接口要对方 App 在后台运行才连得上,很多手机不让别的 App 叫醒它;连不上时,等你下次打开它听歌,微光会自动补同步
- 点歌:网易云用歌曲链接按 ID 直接放;洛雪用它公开的
lxmusic://music/searchPlay 链接按歌名放。其他 App 没有公开的点歌链接,按顺序试安卓的标准通道(播放会话按名字点、车机条目、系统「按名字播放」),每次看它真放了才算,接住的方式记下来下次先用;都不行时,装了网易云就换网易云放,否则打开它并复制好歌名(汽水实测不接受别的 App 点歌)
- 歌词和封面查网易云公开接口;别的 App 的歌先按歌名、歌手、时长对上网易云的歌
- 自建曲库的歌由微光内置的播放器(Media3)放;Subsonic 用 token+salt 鉴权,Jellyfin 用登录换来的令牌,WebDAV 用 Basic 认证
- 哼唱识别把 10 秒录音发给你自己的 ACRCloud 项目;AI 作曲把描述发给你填的作曲服务,生成的歌存在手机里
- 听歌回顾、每晚一首都在手机里算,不联网;分享卡片只在你点分享时交给你选的 App
- 天气(可选,默认关):约 10 公里精度的位置发给 Open-Meteo
- AI 用你自己的密钥,兼容 OpenAI 格式的接口都行(DeepSeek、Kimi、硅基流动、本地 Ollama),不填也能用
网易云和汽水在真机上验证过,网易云的结论见 docs/方案.md。其他 App 的点歌和歌单读取还在等真机反馈,设置页的「自检」能看到每个 App 点歌接住的方式。各版本改了什么见 docs/releases。
目录
android/:App(Kotlin + Jetpack Compose)
probe/:验证工具,用来测网易云哪些接口能用
site/:门户页
docs/:方案、概念图、发版说明
构建和发布
全部在 GitHub Actions 上跑:
- 推到 main:编出开发版,发到 Release
dev(预发布)
- 打
v* tag:编出正式版,说明取 docs/releases/<tag>.md
- 编完会触发门户页发布,把安装包一起放到
wg.ivyea.com/download/
许可
MIT