Musicdl中文文档¶
项目声明¶

本项目仅供python爱好者学习使用, 若作者发现该项目以任何不正当方式被使用, 将立即删除该项目。 希望大家合理利用该项目🙂 (因为项目本意是仅供python爱好者学习使用, 所以本人不会提供任何打包版本的软件。)
另外, 项目使用的所有API均来自公开网络, 不是破解版, 所以付费歌曲请自己在对应的平台开了会员后再下载。
最后, 如有侵权, 请联系我删除该项目。
支持列表¶
平台 | 支持音乐搜索? | 支持音乐下载? |
---|---|---|
QQ音乐 | ✓ | ✓ |
荔枝FM | ✓ | ✓ |
一听音乐 | ✓ | ✓ |
酷我音乐 | ✓ | ✓ |
酷狗音乐 | ✓ | ✓ |
千千音乐 | ✓ | ✓ |
咪咕音乐 | ✓ | ✓ |
JOOX音乐 | ✓ | ✓ |
5SING音乐 | ✓ | ✓ |
网易云音乐 | ✓ | ✓ |
喜马拉雅 | ✓ | ✓ |
直接使用¶
项目下载¶
运行如下命令下载项目:
git clone https://github.com/CharlesPikachu/musicdl.git
配置文件¶
在musicdl文件夹中有config.json文件, 该文件为配置文件, 文件中各参数含义如下:
logfilepath: 日志文件保存路径;
proxies: 设置代理, 支持的代理格式参见Requests;
search_size_per_source: 在各个平台搜索时的歌曲搜索数量;
savedir: 下载的音乐保存路径;
page: 部分搜索源支持指定搜索结果的页码。
项目运行¶
在终端执行如下命令(确保自己的python已经安装了requirements.txt里的所有第三方包):
# 默认为手动输入版本, 语音版本需要自行修改musicdl.py最后一行, 改成dl_client.runbyspeech()
python musicdl.py
然后根据相应的提示进行操作即可,效果如下:

安装使用¶
安装方式¶
1.PIP安装
在终端运行如下命令即可(请保证python在环境变量中):
pip install musicdl --upgrade
2.源代码在线安装
运行如下命令即可实现源代码在线安装:
pip install git+https://github.com/CharlesPikachu/musicdl.git@master
3.源代码离线安装
利用如下命令下载musicdl源代码到本地:
git clone https://github.com/CharlesPikachu/musicdl.git
接着, 切到musicdl目录下:
cd musicdl
最后运行如下命令进行安装:
python setup.py install
快速开始¶
1.终端直接调用编译好的文件
运行方式如下:
Usage: musicdl [OPTIONS]
Options:
--version Show the version and exit.
-k, --keyword TEXT 搜索的歌曲关键字, 若不指定, 则进入musicdl终端版
-l, --logfilepath TEXT 日志文件保存的路径
-p, --proxies TEXT 设置的代理
-s, --savedir TEXT 下载的音乐保存路径
-c, --count TEXT 在各个平台搜索时的歌曲搜索数量
-t, --targets TEXT 指定音乐搜索的平台, 例如"migu,joox"
--help Show this message and exit.
例如在终端直接输入:
musicdl -k 那些年
这里是一个简单效果演示:

2.歌曲搜索
实现音乐搜索功能的示例代码如下:
from musicdl import musicdl
config = {'logfilepath': 'musicdl.log', 'savedir': 'downloaded', 'search_size_per_source': 5, 'proxies': {}}
target_srcs = [
'kugou', 'kuwo', 'qqmusic', 'qianqian', 'fivesing',
'netease', 'migu', 'joox', 'yiting',
]
client = musicdl.musicdl(config=config)
search_results = client.search('说好不哭', target_srcs)
其中config是一个字典对象, 字典内各参数含义:
logfilepath: 日志文件保存路径;
proxies: 设置代理, 支持的代理格式参见Requests;
search_size_per_source: 在各个平台搜索时的歌曲搜索数量;
savedir: 下载的音乐保存路径;
page: 部分搜索源支持指定搜索结果的页码。
target_srcs是一个列表对象, 用于指定音乐搜索的平台:
lizhi: 荔枝FM
migu: 咪咕音乐
kuwo: 酷我音乐
joox: JOOX音乐
kugou: 酷狗音乐
yiting: 一听音乐
qqmusic: QQ音乐
qianqian: 千千音乐
fivesing: 5SING音乐
netease: 网易云音乐
ximalaya: 喜马拉雅
search_results为歌曲搜索的结果, 是一个字典对象, 格式如下:
{
搜索平台: 歌曲信息
}
3.歌曲下载
下载各平台音乐搜索结果的示例代码如下:
from musicdl import musicdl
config = {'logfilepath': 'musicdl.log', 'savedir': 'downloaded', 'search_size_per_source': 5, 'proxies': {}}
target_srcs = [
'kugou', 'kuwo', 'qqmusic', 'qianqian', 'fivesing',
'netease', 'migu', 'joox', 'yiting',
]
client = musicdl.musicdl(config=config)
search_results = client.search('说好不哭', target_srcs)
for key, value in search_results.items():
client.download(value)
当然你也可以自己打印搜索结果, 并自己选择想要下载的歌曲, 例如:
print(search_results)
client.download([search_results['migu'][0]])
注意, download函数传入的参数必须是一个列表对象。
4.自定义平台
通过安装musicdl, 你可以自定义平台进行音乐搜索和下载, 示例代码如下:
from musicdl import musicdl
config = {'logfilepath': 'musicdl.log', 'savedir': 'downloaded', 'search_size_per_source': 5, 'proxies': {}}
target_srcs = [
'kugou', 'kuwo', 'qqmusic', 'qianqian', 'fivesing',
'netease', 'migu', 'joox', 'yiting',
]
client = musicdl.musicdl(config=config)
# 手动输入版
client.run(target_srcs)
# 语音版
client.runbyspeech(target_srcs)
target_srcs是一个列表对象, 用于自定义平台:
lizhi: 荔枝FM
migu: 咪咕音乐
kuwo: 酷我音乐
joox: JOOX音乐
kugou: 酷狗音乐
yiting: 一听音乐
qqmusic: QQ音乐
qianqian: 千千音乐
fivesing: 5SING音乐
netease: 网易云音乐
ximalaya: 喜马拉雅
衍生的项目¶
项目清单¶
项目名称 | 文章简介 | 源代码 |
---|---|---|
音乐下载器GUI界面 | click | click |
歌手歌词分析 | click | click |
歌词获取歌曲片段 | click | click |
项目使用¶
1.音乐下载器GUI界面
在终端运行如下命令即可:
python musicdlgui.py
2.歌手歌词分析
在终端运行如下命令即可:
python singerlyricsanalysis.py
3.歌词获取歌曲片段
在终端运行如下命令即可:
python searchlyrics.py
开发日志¶
2018-06-27
版本号: v1.0,
更新内容: 支持网易云, 千千音乐, 酷狗音乐, QQ音乐的音乐下载器。
2018-07-01
版本号: v1.1,
更新内容: 添加对酷我音乐的支持。
2018-07-02
版本号: v1.2,
更新内容: 代码优化, 添加对虾米音乐的支持。
2018-08-05
版本号: v1.3,
更新内容: 支持终端运行。
2019-02-02
版本号: v2.0.1,
更新内容: 代码优化, 更人性化设计, 支持pip安装。
2019-04-15
版本号: v2.0.2,
更新内容: 修复虾米音乐中的bugs。
2019-06-09
版本号: v2.0.2,
更新内容: 修复酷狗音乐中的bugs。
2019-07-13
版本号: v2.0.4,
更新内容: 添加对百度无损音乐的支持。
2019-08-24
版本号: v2.0.5,
更新内容: 解决一些代码中的bugs和修复失效的apis。
2019-08-28
版本号: v2.0.6,
更新内容: 添加对咪咕音乐的支持。
2020-01-07
版本号: v2.0.7,
更新内容: 修复咪咕音乐中的bugs。
2020-04-01
版本号: v2.1.0,
更新内容: 全新升级, 更人性化设计, 代码修复与优化, 增加项目文档等。
2020-04-02
版本号: v2.1.1,
更新内容: 鲁棒性增强, 重新添加对虾米音乐的支持。
2020-04-03
版本号: v2.1.2,
更新内容: 添加了对JOOX音乐的支持。
2020-04-15
版本号: v2.1.4,
更新内容: 解决一些小问题。
2020-07-04
版本号: v2.1.5,
更新内容: 修复QQ和JOOX音乐。
2020-07-26
版本号: v2.1.6,
更新内容: 对酷狗做了一些更新, 并去除默认代理以避免一些潜在的Bugs。
2020-10-16
版本号: v2.1.7,
更新内容: 修复百度无损音乐和千千音乐接口, 去除潜在bug和不必要字符。
2020-10-17
版本号: v2.1.8,
更新内容: 代码优化。
2020-11-04
版本号: v2.1.9,
更新内容: 支持将错误原因保存到.log文件。
2020-11-20
版本号: v2.1.10,
更新内容: 代码优化。
2020-11-21
版本号: v2.1.11,
更新内容: 修复千千音乐。
2020-11-27
版本号: v2.2.0,
更新内容: 添加了对荔枝FM, 一听音乐, 5Sing音乐的支持, 修复进度条和显示存在的一些BUG, 以及支持多线程搜索。
2021-08-29
版本号: v2.2.1,
更新内容: 修复酷我音乐和千千音乐。
2021-08-30
版本号: v2.2.2,
更新内容: 支持语音在线点歌。
2021-12-14
版本号: v2.2.3,
更新内容: 修复酷我音乐源失效的问题。
2022-01-05
版本号: v2.2.4,
更新内容: 代码重构,删除百度无损音乐(接口已经失效且无法修复),修复5sing的歌曲搜索功能。
2022-01-15
版本号: v2.2.5,
更新内容: 支持在某些音乐源中指定page。
2022-02-09
版本号: v2.2.6,
更新内容: 修复qq音乐下载headers获取问题。
2022-03-08
版本号: v2.2.7,
更新内容: 支持在终端直接输入命令"musicdl"运行。
2022-03-15
版本号: v2.2.8,
更新内容: 修复酷狗音乐无法下载的问题。
2022-03-24
版本号: v2.3.0-2.3.2,
更新内容: 移除虾米音乐, 用户交互相关内容优化(进度条, 语音识别, 打印的信息等), 代码优化。
2022-05-14
版本号: v2.3.3,
更新内容: 修复一些小bugs。
2022-06-08
版本号: v2.3.4,
更新内容: 支持喜马拉雅的音频搜索与下载。
2022-09-03
版本号: v2.3.5,
更新内容: 修复QQ音乐的歌曲搜索功能。
2023-02-22
版本号: v2.3.6,
更新内容: 修复网易云音乐信息显示错误问题以及咪咕无损音乐下载失败问题。
项目推荐¶
关于作者¶
学生党, 主要研究方向是计算机视觉, 顺便对信息安全感兴趣。
我的个人微信公众号是: Charles_pikachu (欢迎搜索关注,或者搜"Charles的皮卡丘")
我的Github账号是: https://github.com/CharlesPikachu (欢迎搜索关注)
我的知乎账号是: https://www.zhihu.com/people/charles_pikachu (欢迎搜索关注)
我的B站账号是: https://space.bilibili.com/406756145 (欢迎搜索关注)
个人邮箱: charlesblwx@gmail.com