# kugou-slint **Repository Path**: ssuiwp/kugou-slint ## Basic Information - **Project Name**: kugou-slint - **Description**: 酷狗播放器-slint原生应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-30 - **Last Updated**: 2026-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Kugou Slint (酷狗音乐跨平台原生桌面播放器) 基于 **Rust** 与 **Slint UI** 构建的高性能、跨平台原生桌面音乐播放器。参考开源项目 [MoeKoeMusic](https://github.com/iAJue/MoeKoeMusic) 架构设计,提供深色拟物与毛玻璃风格的现代 UI,并深度逆向封装酷狗音乐(KuGou)的核心协议与 API。 --- ## 🌟 核心特性 ### 1. 现代化原生跨平台 UI (Slint 1.18) - **深色流光质感**:基于暗黑毛玻璃风格(Dark Glassmorphism),提供丝滑的 60fps 原生渲染与微交互。 - **全功能视图路由**: - 🎵 **发现音乐 (Discover View)**:精选推荐歌单、每日热门新歌推送、一键快速加入播放队列。 - 🔍 **聚合搜索 (Search View)**:支持实时关键词搜索、热搜标签快速填充、支持 VIP 歌曲标识。 - 🏆 **排行榜单 (Rank View)**:集成酷狗飙升榜、TOP500、网络红歌榜等数十个官方权威榜单与前排快速试听。 - 📁 **本地音乐库 (Local Music)**:支持一键递归扫描本地音乐文件夹(MP3、FLAC、WAV、M4A、OGG),自动提取 ID3/元数据标签与音轨时长。 - 🎤 **沉浸式全屏歌词 (Lyrics Modal)**:支持逐字高亮/逐行同步滚动,提供动态弥散背景与卡拉 OK 动效。 - 📑 **播放队列抽屉 (Queue Drawer)**:侧边弹出抽屉,支持歌曲拖拽预览、单曲删除与一键清空。 - 📱 **扫码登录与特权 (Login & VIP)**:酷狗 APP 官方二维码扫码登录、状态轮询与每日免费 VIP 自动领取。 - ⚙️ **音质与偏好设置 (Settings View)**:支持标准音质 (128k)、高品质 (320k)、无损音质 (FLAC) 切换,以及标准版/概念版双平台协议无缝切换。 ### 2. 深度逆向核心库 (`crates/kugou-core`) - **纯 Rust 密码学实现**: - 酷狗专用 `calculateMid` 算法(基于 MD5 十六进制转大数十进制字符串)。 - 双平台签名算法:Android 标准版 (`appid=1005`, 盐值 `OIlwieks28dk2k092lksi2UIkp`)、概念版 (`appid=3116`, 盐值 `LnT6xpN3khm36zse0QzvmgTZ3waWdRSA`)、Web 平台 (`NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt`)。 - KRC 专属解密:异或秘钥表 + zlib inflate 解压缩与双格式(KRC 逐字 / LRC 逐行)高精度解析。 - 支持 AES-128-CBC、RSA 加密。 - **完整 API 覆盖**: - 搜索(单曲搜索、热门关键词) - 歌曲播放(音质解析、直链获取) - 歌词(KRC 逐字歌词、LRC 逐行歌词、内嵌翻译与音译) - 歌单(推荐歌单、歌单详情、标签分类) - 排行榜(榜单列表、榜单歌曲) - 用户特权(二维码登录会话、登录状态轮询、每日免费 VIP 领取) - 音乐云盘与歌曲评论 - **网络容灾与离线回退**: - 内置智能连接机制(支持直连及本地代理 `127.0.0.1:7890` 自动故障转移)。 - 内置高质量离线数据模型,确保在海外海外 IP 限制或无网络环境下依然保持界面的平滑浏览与交互。 ### 3. 高性能异步音频引擎 (`crates/kugou-player`) - 基于 `rodio 0.22` 与 `cpal` + `symphonia` 纯 Rust 跨平台解码引擎。 - 采用 Tokio 异步调度,支持无缝流式播放、暂停、进度跳转(Seek)、音量线性调节。 - 循环模式:列表循环、单曲循环、随机播放、顺序播放。 - 200ms 高灵敏度实时时间轴同步器,精确驱动 Slint 界面歌词滚动与高亮。 --- ## 📂 项目结构 ```text kugou-slint/ ├── Cargo.toml # 顶层工作区 Cargo 配置 ├── .cargo/config.toml # MinGW-w64 链接器与库路径配置 ├── crates/ │ ├── kugou-core/ # 酷狗音乐核心协议与网络库 │ │ ├── Cargo.toml │ │ ├── src/ │ │ │ ├── lib.rs │ │ │ ├── crypto.rs # MD5 / AES / RSA / KRC 解密与签名 │ │ │ ├── models.rs # 歌曲、歌单、歌词、用户结构定义 │ │ │ ├── client.rs # 酷狗 HTTP 客户端与自动化参数注入 │ │ │ └── api/ # 各功能模块接口实现 │ │ │ ├── search.rs │ │ │ ├── song.rs │ │ │ ├── lyric.rs │ │ │ ├── playlist.rs │ │ │ ├── rank.rs │ │ │ ├── recommend.rs │ │ │ ├── user.rs │ │ │ ├── cloud.rs │ │ │ └── comment.rs │ │ └── tests/ # 集成测试套件 │ │ │ └── kugou-player/ # 原生桌面客户端与 Slint UI │ ├── Cargo.toml │ ├── build.rs # Slint 界面编译脚本 │ ├── src/ │ │ ├── main.rs # 程序入口与 UI 事件双向绑定 │ │ ├── app_state.rs # 播放器全局状态管理与异步轮询 │ │ └── audio/ │ │ ├── mod.rs │ │ ├── player.rs # 基于 rodio 0.22 的音频播放引擎 │ │ └── local.rs # 基于 lofty 的本地音乐扫描与 ID3 解析 │ └── ui/ # Slint 1.18 声明式组件 │ ├── theme.slint # 统一深色设计令牌 │ ├── app_window.slint# 主窗口结构与侧边栏 │ ├── components/ # 按钮、歌曲行、歌单卡片等复用组件 │ └── views/ # 发现、搜索、榜单、本地、歌词、队列、登录各页面 ``` --- ## 🛠️ 构建与运行 ### 环境要求 - **Rust Toolchain**: 1.80+ (推荐 `x86_64-pc-windows-gnu` 或 `x86_64-pc-windows-msvc`) - **C 编译器**: GCC (MinGW-w64) 或 MSVC ### 1. 运行测试 ```powershell # 运行 kugou-core 密码学算法及接口单元测试 cargo test -p kugou-core # 运行 kugou-player 播放器状态测试 cargo test -p kugou-player ``` ### 2. 编译并启动客户端 ```powershell # 启动播放器应用 cargo run -p kugou-player # 编译发布版本 cargo build --release -p kugou-player ``` 编译生成的二进制可执行文件位于: `target/release/kugou-player.exe` (或 `target/debug/kugou-player.exe`)。 --- ## 📜 许可证与鸣谢 - 界面与功能设计参考了优秀开源项目 [MoeKoeMusic](https://github.com/iAJue/MoeKoeMusic)。 - 仅供 Rust 与 Slint UI 技术学习交流使用。