水獭音乐
基于 GD Studio's API 的多音源聚合音乐播放器
数据同步功能:通过管理员手动分配的
SYNC_KEY接入。存储基于 Cloudflare KV(上限 25 MB),单用户理论可稳定同步 5 万首歌曲
| 音源 | 搜索 | 播放 | 歌词 | 歌单导入 | 备注 |
|---|---|---|---|---|---|
| 网易云音乐🌟 | ✅ | ✅ | ✅ | ✅ | GD Studio API |
| Netease | ✅ | ✅ | ✅ | ✅ | 网易云官方,搜索建议/专辑/歌手详情 |
| Joox🌟 | ✅ | ✅ | ✅ | ❌ | GD Studio API |
| B站🌟 | ✅ | ✅ | ❌ | ❌ | 仅移动端,支持视频分P/合集 |
| 酷我音乐 | ✅ | ✅ | ✅ | ✅ | GD Studio API |
| 咪咕音乐 | ✅ | ✅ | ✅ | ✅ | 仅移动端 |
| QQ音乐 | ✅ | ✅ | ✅ | ✅ | QQ音乐官方 |
| 酷狗音乐 | ❌ | ❌ | ❌ | ✅ | |
| 小蜗音乐 | ✅ | ✅ | ✅ | ❌ | 酷我音源(洛雪),URL 走 LX API |
| 小秋音乐 | ✅ | ✅ | ✅ | ❌ | QQ音源(洛雪),URL 走 LX API |
| 本地音乐 | ❌ | ✅ | ✅ | ❌ | 仅移动端支持 |
| 播客(歌单广场) | ✅ | ✅ | ❌ | ❌ | RSS 播客订阅 |
[!NOTE] 兼容性说明
最低支持版本:minSdkVersion = 24 (Android 7.0)
若出现界面排版错乱、图标异常等问题,请先更新 Android System WebView 至较新版本(建议 WebView 100+ 的版本)。
[!IMPORTANT] 在线体验:Otter Music
支持 PWA,可添加到主屏幕(iOS 请使用 Safari)
npm install
npm run dev
# 构建
npm run build
# 类型检查
npm run typecheck
# 代码检查
npm run lint
# 测试
npm run test
# 生成资源
npm run resources
# 首次添加 Android 平台
npm run cap:add:android
# 同步 Android 工程
npm run cap:sync:android
# 构建 Debug APK
npm run build:android:debug
Debug APK 输出路径:
android/app/build/outputs/apk/debug/app-debug.apksrc/
├── components/ # 页面与业务组件
├── hooks/ # 音频加载相关 Hook
├── lib/ # 核心能力(重点)
│ ├── music-api.ts # 统一音乐能力入口(搜索/URL/歌词/封面)
│ ├── audio-match.ts # 自动换源与匹配结果回写
│ ├── api/ # 服务端配置、同步、更新、播客接口
│ ├── bilibili/ # B站 API 客户端与播放适配
│ ├── kugou/ # 酷狗 API 客户端
│ ├── kuwo/ # 酷我 API 客户端
│ ├── migu/ # 咪咕 API 客户端
│ ├── netease/ # 网易云 API 适配层
│ ├── qqmusic/ # QQ音乐 API 客户端
│ ├── music-provider/ # Provider 抽象与实现
│ ├── sync.ts # 数据同步核心逻辑
│ ├── storage-*.ts # 存储适配与统一存储管理
│ ├── clipboard.ts # 跨平台剪贴板
│ ├── crypto-storage.ts # 加密存储
│ └── utils/ # 缓存、下载、检索、歌名匹配等工具
├── plugins/ # Capacitor 插件封装
├── routes/ # 路由定义
├── store/ # Zustand 全局状态
└── types/ # 类型定义
functions/ # Cloudflare Workers 后端
shared/ # 跨端共享类型
npm run builddistPASSWORD: 设置你的管理员密码,用于管理SYNC_KEY(必须)oh_file_urloh_file_url自建后端可在前端页面「设置 → API 地址」中填入自定义域名。
https://<你的域名>/admin路径用于管理 SYNC_KEY。
...
欢迎提交 Issue 或 Pull Request!
本项目不存储任何音频资源,接口均来自互联网公开资料,仅供技术交流。
严禁商业用途,由此产生的版权风险由使用者自行承担。
MIT
$ claude mcp add otter-music \
-- python -m otcore.mcp_server <graph>