guohuiyuan / go-music-dl
git clone https://github.com/guohuiyuan/go-music-dl.git
v1.1.3 · 1d ago
🔥 on GitHub Trending today
一个基于 Go 语言的全网音乐搜索与下载工具。支持 CLI 命令行与 Web 服务双模式,内置网易云、QQ、酷狗、Bilibili、汽水音乐等 10+ 个主流平台,支持多源并发搜索与无损音质解析。music-dl交流群:755087923
—
stars, 24h
—
stars, 7 days
+1.1k
stars, 30 days · #284
5.5k
★ total
523
forks · 17 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageGo
LicenseAGPL-3.0
Created2026-01-18 (9mo ago)
Last push1d ago
Watchers20
OwnerUser
Seen on GitHub Trending
- 2026-10-20 — #23 monthly in go · +1,089 ★
GitHub topics
Links
- GitHub: github.com/guohuiyuan/go-music-dl
- Homepage: https://music.zkkp.nyc.mn
- Releases · Issues · Hacker News mentions
README excerpt
# Go Music DL
> ⭐ 如果这个项目对你有帮助,欢迎点一个 Star。
Go Music DL 是一个多平台音乐搜索与下载工具,支持 **Web**、**TUI** 和**桌面端**,覆盖单曲、歌单、专辑、排行榜与本地音乐。
## 🚀 快速开始
### 桌面端 / 移动端
从 Releases 下载对应安装包:
- Windows / Linux / macOS:从 Releases 下载 `music-dl-desktop-rust` 或 `music-dl-desktop-go` 对应平台包,解压后直接运行。
- Android:优先下载 `music-dl_arm64-v8a.apk`,已内置 FFmpeg,无需额外安装。
- iOS:使用 `music-dl-ios-unsigned.ipa` 自行签名。
### Web / TUI
[code]
Web 的搜索、试听、下载和歌单浏览无需登录;修改设置或 Cookie 时才需要管理员账号。首次配置时,启动日志会打印 `Web setup token`,用它创建管理员账号即可。TUI 常用键:`↑/↓` 移动、`空格` 选择、`a` 全选、`r` 换源、`Enter` 下载、`w` 每日推荐、`q` 退出。
### Docker
[code]
访问 `http://localhost:8080`。首次启动会自动创建 `./data` 并配置好容器写权限;Compose 不依赖仓库里的 Dockerfile 或其他文件,只需 `docker-compose.yml` 和镜像即可启动。修改源码后可使用 `docker compose -f docker-compose.dev.yml up -d --build` 本地构建。
---
## 主要功能
* **多端使用**:Web、TUI 终端和原生桌面应用,桌面端自动启动内置服务。
* **搜索与下载**:多平台聚合搜索单曲、歌单和专辑,支持试听、批量下载、换源和无损音频。
* **歌单管理**:浏览官方分类、个人歌单和排行榜,也可创建本地歌单并跨平台收藏歌曲。
* **登录能力**:支持 Cookie 与扫码登录,用于个人歌单、更高音质和部分受限资源。
* **本地音乐**:扫描、上传、搜索和整理本地音频,自动读取元数据、封面与歌词。
* **播放体验**:支持逐字歌词、歌词字体、全局快捷键、媒体键和播放缓存。
## 歌单 / 专辑支持
Web 与 TUI 都支持单曲、歌单、专辑三种搜索类型;粘贴歌单或专辑链接会自动识别来源并进入详情。曲目列表支持播放、下载、批量操作和导入本地歌单。
渠道覆盖网易云、QQ、酷狗、酷我、咪咕、汽水、Apple Music、Bilibili、Jamendo、JOOX 和千千等,实际可用来源以界面列表为准。
## 歌单分类与我的歌单
* **歌单分类**:支持网易云、QQ、酷狗、酷我、咪咕、千千、JOOX、汽水和 Apple Music;汽水提供每日推荐、流行、华语、欧美、国风等分类。
* **我的歌单**:登录或配置 Cookie 后,可读取网易云、QQ、酷狗和汽水的个人歌单、收藏及喜欢的歌曲。
* **站内处理**:分类歌单和个人歌单均可查看详情、播放、下载、批量操作或导入本地歌单。
## 排行榜
首页“排行榜”聚合网易云、QQ、酷狗、酷我、咪咕、汽水和 Apple Music 的官方榜单。各平台的“热门单曲”对应当地热歌榜,榜单歌曲可直接播放、下载和批量处理。
QQ 下载需要有效 Cookie;汽水支持 Cookie + 签名获取会员整曲,签名不可用时自动回退到公开试听片段。
## Cookie 与扫码登录
设置页可管理各平台 Cookie,并提供手动抓取步骤和请求域名。网易云、QQ、酷狗和 Bilibili 支持扫码登录,成功后自动保存 Cookie。
汽水音乐扫码暂不可用,需要手动配置 Cookie;会员整曲优先使用 music-lib 内置的本机签名器,也可配置可信的远程签名服务。Cookie 仅保存在本地数据目录,请勿公开分享配置文件。
## 本地音乐
默认读取 `data/downloads`,Android 建议使用 `/sdcard/Music`。支持 `mp3`、`flac`、`m4a`、`ogg`、`wav`、`wma` 和 `aac`。
* **导入与识别**:支持上传;优先读取内嵌元数据、封面和歌词,缺失时查找同名资源并用 `ffprobe` 补全。
* **搜索与整理**:本地音乐可作为 `local` 搜索源,支持分页、扫描快照、元数据缓存、后台刷新和 SQLite 索引。
* **歌单操作**:支持批量收藏到自制歌单;删除本地文件需要二次确认,已收藏条目可保留并换源恢复。
* **文件命名**:设置页支持 `{name}`、`{artist}`、`{album}`、`{source}`、`{id}`、`{ext}` 等文件名模板。
## 下载与同步
下载默认走流式模式,支持 `Range` 断点和拖动播放。设置页可按需开启:
* 下载时内嵌封面和歌词,依赖 `ffmpeg`;缺失时自动跳过,不影响原始音频下载。
* 下载时同步到 WebDAV,可填写地址、账号、密码和远端目录。
FFmpeg 与 `ffprobe` 用于本地音乐探测和元数据写入。Docker 镜像和 Android APK 已内置;CLI、桌面和 iOS 包如需这些能力,请自行安装。可用 `ffmpeg -version` 检查。
## 新增改动(简要)
* **排行榜与歌单**:聚合各平台榜单和热门单曲,补齐分类歌单、我的歌单、链接解析及批量操作。
* **播放与歌词**:新增底部播放器、换源、逐字歌词、歌词字体、全局快捷键、媒体键和任务栏缩略图控制。
* **搜索过滤**:支持屏蔽 Live / Remix / Demo 等版本和 60 秒以下试听,并统一简繁体及零宽字符。
* **本地音乐**:升级为 `local` 搜索源,支持分页缓存、后台刷新、批量收藏、硬删除和歌单失效换源。
* **登录与汽水**:支持 Cookie、扫码登录和汽水会员整曲签名,均不可用时自动回退公开试听。
* **下载与同步**:支持自动缓存、封面 / 歌词下载、内嵌元数据、WebDAV 和自动换源。
* **桌面与移动端**:增加应用设置、歌词字体、圆角图标,Android 支持蓝牙媒体键和内置 FFmpeg。
## CLI/TUI 常用命令
[code]
TUI 常用按键:
* `↑/↓` 移动
* `空格` 选择
* `a` 全选/清空
* `r` 对勾选项换源
* `Enter` 下载
* `b` 返回
* `w` 每日推荐歌单
* `q` 退出
更多用法:
[code]
## GitHub Actions 自动构建
本项目已配置 GitHub Actions 工作流。当推送代码并打上版本标签(如 `v1.0.0`)时,会自动触发 `.github/workflows/docker.yml`,构建跨平台镜像(支持 amd64 和 arm64