KuGou Music API Kotlin Multiplatform SDK

基于 Kotlin Multiplatform (KMP) 重新实现的酷狗音乐 API SDK。对齐 MakcRe/KuGouMusicApi 的 Node.js 实现,支持 Android、iOS、JVM、Web (Wasm/JS) 等多平台。
使用了ChatGPT,Gemini,Claude,XiaoMi Mimo 等 AI 模型辅助加速开发,可能会有错误
🚀 核心特性
- 多平台支持: 统一的 API 调用接口,底层适配不同平台的 HTTP 与加密实现。
- 协程优先: 所有网络请求均采用
suspend 挂起函数,完美契合 Kotlin 协程流。
- 全量加密对齐: 严格对齐酷狗 Android/iOS 端的 MD5 签名、AES-CBC 与 RSA-PKCS1 加密算法。
- 模块化设计: 17 个 API 分类模块,112 个接口,按需调用。
📦 已实现 API 模块状态(共 17 个模块 · 112 个 API)
Auth — 认证与身份(13 个)
Search — 搜索(7 个)
Song — 歌曲(12 个)
Album — 专辑(4 个)
Artist — 歌手(9 个)
Playlist — 歌单(10 个)
Comment — 评论(7 个)
Rank — 排行榜(5 个)
Recommend — 推荐(7 个)
Radio — 电台/FM(5 个)
SceneMusic — 场景音乐(8 个)
User — 用户(3 个)
Image — 图片(2 个)
| 方法 | 对齐 Node.js 模块 | 说明 |
|---|
getImages(hash, ...) |
Video — 视频(1 个)
| 方法 | 对齐 Node.js 模块 | 说明 |
|---|
getKmrAudioMv(albumAudioId, ...) | kmr_audio_mv.js | 获取 KRM 音频 MV |
LongAudio — 有声书/长音频(6 个)
Misc — 杂项(7 个)
Sheet — 曲谱/乐谱(6 个)
🛠 编译与运行
项目使用 Gradle 进行管理,支持以下指令:
1. 编译 SDK 模块
./gradlew :shared:build
./gradlew :shared:compileKotlinJvm
2. 运行示例应用
- Android: 在 Android Studio 中运行
androidApp 或执行 ./gradlew :androidApp:assembleDebug。
- Desktop (JVM): 。
💡 使用示例
在要使用的模块下添加 KuGou Music API Kotlin Multiplatform SDK 依赖
dependencies {
// ...
implementation 'top.ghhccghk.multiplatform.kugouapi:kugouapi-kmp:<VERSION>'
}
or
dependencies {
implementation("top.ghhccghk.multiplatform.kugouapi:kugouapi-kmp:<VERSION>")
}
val client = KuGouClient()
val regResp = client.auth.registerDev()
println("Dfid: ${client.cookieJar.getDfid()}")
val searchResp = client.search.search("周杰伦")
val lyricResp = client.song.getLyric(id = "...", accessKey = "...", decode = true)
krcText = lyricResp.body[]
🛠 技术栈
- HTTP Client: Ktor
- Serialization: kotlinx.serialization
- Byte/IO: Okio
- UI (Example): Compose Multiplatform
⚠ 注意事项
使用web开发请注意 CORS 限制,需要在服务器端设置代理或使用浏览器插件绕过。iOS 端需要配置 ATS 以允许非 HTTPS 请求。
⚖️ 免责声明
本应用仅用于学习及测试,请在下载 24 小时内删除。由于非官方实现,因使用本 SDK 产生的任何法律后果由使用者自行承担。请尊重版权,严禁商业用途。