MusicDownloader
一个简单的命令行音乐下载工具
Install / Use
/learn @luoyang871111/MusicDownloaderREADME
🎵 音乐下载工具 (Music Downloader)
一个功能强大的命令行音乐下载工具,支持多个音乐平台,可以根据歌名搜索并下载不同音质的音乐。
✨ 功能特点
- 🔍 多平台支持:支持23个主流音乐平台的搜索和下载
- 🎼 智能搜索:根据歌名快速搜索相关音乐
- 🎵 多种音质:支持标准、较高、极高、无损等多种音质选择
- 📋 批量操作:支持单首下载、批量下载和全部下载
- 🖥️ 命令行界面:简洁易用的CLI界面
- 📁 自定义目录:支持指定下载目录
- 🎯 精确选择:支持按序号下载指定歌曲
🌟 支持的音乐平台
国内平台
| 平台 | 代码 | 支持音质 | 特色 | 状态 | |------|------|----------|------|------| | 网易云音乐 | netease | ✅ 无损 | 中文音乐丰富 | 完全支持 | | QQ音乐 | qq | ✅ 无损 | 流行音乐丰富 | 完全支持 | | 酷狗音乐 | kugou | ✅ 无损 | 老牌音乐平台 | 完全支持 | | 咪咕音乐 | migu | ✅ 无损 | 官方音质好 | 完全支持 | | 酷我音乐 | kuwo | ✅ 高品质 | 古典音乐多 | 完全支持 | | 5sing原创 | 5sing | ✅ 高品质 | 原创音乐 | 完全支持 |
国际平台
| 平台 | 代码 | 支持音质 | 特色 | 状态 | |------|------|----------|------|------| | YouTube Music | youtube | ✅ 无损 | 国际音乐丰富 | 完全支持 | | Bandcamp | bandcamp | ✅ 无损 | 独立音乐 | 完全支持 | | SoundCloud | soundcloud | ✅ 高品质 | 电子音乐 | 完全支持 | | Deezer | deezer | ✅ 无损 | 欧洲音乐 | 完全支持 | | Spotify | spotify | ⚠️ 预览 | 全球最大 | 仅预览 | | Tidal | tidal | ✅ 高解析度 | 高音质流媒体 | 完全支持 |
高品质音乐平台
| 平台 | 代码 | 支持音质 | 特色 | 状态 | |------|------|----------|------|------| | 音乐磁 | musiccylinder | ✅ 无损 | 无损音乐合集 | 完全支持 | | JGWAV | jgwav | ✅ 高品质 | 高品质音频 | 完全支持 | | BUGU音乐 | buguyy | ✅ 无损 | 高解析度音乐 | 完全支持 | | Wusunba | wusunba | ✅ 高品质 | 优质音乐资源 | 完全支持 | | HD-Tracks | hdtracks | ✅ 高解析度 | 高音质专辑 | 仅试听 | | OPPSU | oppsu | ✅ 无损 | 高音质音乐 | 完全支持 |
其他音乐平台
| 平台 | 代码 | 支持音质 | 特色 | 状态 | |------|------|----------|------|------| | YY音乐 | yymusic | ✅ 高品质 | 多样化音乐 | 完全支持 | | 网上音乐 | wsyyw | ✅ 高品质 | 网络音乐库 | 完全支持 | | 好听音乐 | htqyy | ✅ 高品质 | 精选音乐 | 完全支持 | | 方皮音乐 | fangpi | ✅ 高品质 | 特色音乐 | 完全支持 | | DTShot | dtshot | ✅ 高品质 | 新兴音乐平台 | 完全支持 |
总计支持:23个音乐平台 🎵
🚀 快速开始
环境要求
- Python 3.6 或更高版本
- Windows/Linux/macOS 操作系统
安装步骤
-
克隆仓库:
git clone https://github.com/luoyang871111/MusicDownloader.git cd MusicDownloader -
安装依赖:
pip install -r requirements.txt -
验证安装:
python src/main.py --help
📖 使用方法
基本用法
python src/main.py 歌曲名称
命令行选项
| 选项 | 长选项 | 描述 | 可选值 |
|------|--------|------|--------|
| -q | --quality | 指定音质 | standard(标准), higher(较高), exhigh(极高), lossless(无损) |
| -s | --source | 指定音源 | netease, qq, kugou, migu, kuwo, 5sing, youtube, bandcamp, soundcloud, deezer, spotify, musiccylinder, jgwav, buguyy, wusunba, hdtracks, oppsu, tidal, yymusic, wsyyw, htqyy, fangpi, dtshot |
| -l | --list | 仅列出搜索结果,不下载 | - |
| -n | --number | 指定要下载的歌曲编号 | 数字 (1, 2, 3...) |
| -a | --all | 下载所有搜索结果 | - |
| -d | --dir | 指定下载目录 | 目录路径 |
| -h | --help | 显示帮助信息 | - |
使用示例
1. 基本下载(默认无损音质)
python src/main.py 起风了
2. 指定音质下载
# 下载较高音质
python src/main.py 起风了 -q higher
# 下载标准音质
python src/main.py 起风们 -q standard
3. 仅查看搜索结果
python src/main.py 周杰伦 -l
4. 下载指定序号的歌曲
python src/main.py 邓紫棋 -n 3
5. 下载所有搜索结果
python src/main.py 林俊杰 -a
6. 指定下载目录
python src/main.py 陈奕迅 -d "我的音乐"
7. 组合使用多个选项
python src/main.py 薛之谦 -q exhigh -n 2 -d "下载的音乐"
8. 指定音源搜索(新功能)
国内平台示例:
# 从QQ音乐搜索中文歌曲
python src/main.py 周杰伦 -s qq
# 从网易云音乐搜索
python src/main.py 民谣 -s netease
# 从咪咕音乐搜索
python src/main.py 流行歌曲 -s migu
国际平台示例:
# 从YouTube Music搜索
python src/main.py Shape of You -s youtube
# 从Spotify搜索(仅预览)
python src/main.py Blinding Lights -s spotify
# 从Bandcamp搜索独立音乐
python src/main.py Indie Rock -s bandcamp
# 从SoundCloud搜索电子音乐
python src/main.py Electronic Mix -s soundcloud
# 从Deezer搜索欧洲音乐
python src/main.py French Music -s deezer
# 从Tidal搜索高音质音乐
python src/main.py High Quality Music -s tidal
高品质音乐平台示例:
# 从音乐磁搜索无损音乐
python src/main.py 古典音乐 -s musiccylinder
# 从JGWAV搜索高品质音乐
python src/main.py Jazz -s jgwav
# 从BUGU音乐搜索高解析度音乐
python src/main.py Hi-Res -s buguyy
# 从HD-Tracks搜索高音质专辑(仅试听)
python src/main.py Classical Album -s hdtracks
# 从OPPSU搜索高音质音乐
python src/main.py High Res Audio -s oppsu
其他平台示例:
# 从YY音乐搜索
python src/main.py 热门歌曲 -s yymusic
# 从网上音乐搜索
python src/main.py 网络神曲 -s wsyyw
# 从好听音乐搜索
python src/main语 治愈系音乐 -s htqyy
# 从方皮音乐搜索特色音乐
python src/main语 小众音乐 -s fangpi
# 从DTShot搜索新兴音乐
python src/main语 独立音乐 -s dtshot
9. 高级搜索组合
# 搜索YouTube Music的高品质音乐并下载第2首
python src/main.py Pop Music -s youtube -q exhigh -n 2
# 搜索音乐磁的无损音乐并下载到指定目录
python src/main.py 古典音乐 -s musiccylinder -q lossless -d "古典音乐"
# 搜索Tidal的高解析度音乐并下载全部结果
python src/main.py High Resolution -s tidal -q lossless -a
# 搜索多个平台(示例)
for source in netease qq migu; do
python src/main.py 周杰伦 -s $source -l
done
# 批量下载不同音质
python src/main.py 流行音乐 -s netease -q higher -n 1
python src/main语 流行音乐 -s qq -q exhigh -n 1
python src/main语 流行音乐 -s musiccylinder -q lossless -n 1
📁 项目结构
MusicDownloader/
├── src/ # 源代码目录
│ ├── main.py # 主程序入口
│ ├── cli.py # 命令行界面
│ ├── gui.py # 图形界面(可选)
│ ├── music_downloader.py # 核心下载模块
│ └── ... # 其他模块
├── downloads/ # 默认下载目录
├── requirements.txt # 依赖包列表
├── README.md # 项目说明文档
├── LICENSE # 开源许可证
└── .github/ # GitHub 配置文件
└── ISSUE_TEMPLATE/ # Issue 模板
🔧 开发指南
本地开发
- Fork 本仓库
- 创建功能分支:
git checkout -b feature/your-feature-name - 提交更改:
git commit -m "Add some feature" - 推送分支:
git push origin feature/your-feature-name - 创建 Pull Request
添加新功能
- 在
src/目录下添加新的模块 - 更新
requirements.txt添加新依赖 - 编写相应的测试用例
- 更新 README.md 文档
📋 音质说明
| 音质等级 | 格式 | 比特率 | 文件大小 | 说明 | |----------|------|--------|----------|------| | Standard | MP3 | 128kbps | 小 | 标准音质,适合日常收听 | | Higher | MP3 | 192kbps | 中 | 较高音质,音质较好 | | Exhigh | MP3 | 320kbps | 大 | 极高音质,接近CD音质 | | Lossless | FLAC | 无损 | 最大 | 无损音质,完美音质 |
⚠️ 注意事项
- 📁 下载目录:默认保存在
downloads目录下,可通过-d参数自定义 - 🏷️ 文件命名:格式为
歌曲名 - 歌手名.扩展名 - 🎵 音频格式:无损音质通常为FLAC格式,其他为MP3格式
- 🔒 版权限制:部分歌曲可能因版权限制无法下载
- 🌐 网络要求:需要稳定的网络连接
- 📊 请求频率:请合理控制搜索频率,避免给服务器造成压力
🛡️ 免责声明
本工具仅供学习和研究目的使用。使用者应遵守以下原则:
- 非商业用途:不得用于任何商业用途
- 遵守条款:使用时应遵守目标平台的使用条款和robots.txt规则
- 合理使用:不得进行大规模爬取或对平台造成运营干扰
- 控制频率:应合理控制请求频率,避免给目标平台带来不必要的负担
- 合法用途:不得用于任何非法或不当的用途
重要提醒:使用本工具下载的音乐仅供个人欣赏,请支持正版音乐,尊重艺术家劳动成果。
🤝 贡献指南
欢迎提交 Issue 和 Pull Request!
- 🐛 Bug报告:请使用 Bug Report 模板
- 💡 功能建议:请使用 Feature Request 模板
- 🔧 代码贡献:请 Fork 后提交 Pull Request
📄 开源许可
本项目采用 MIT License 开源许可证。
🙏 致谢
感谢所有为本项目做出贡献的开发者和用户!
📞 联系方式
- 📧 邮箱:[你的邮箱]
- 🐛 问题反馈:GitHub Issues
- 💬 讨论:GitHub Discussions
⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!
Related Skills
node-connect
332.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
332.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.9kCommit, push, and open a PR
