musicdl中文文档

项目声明

本项目仅供python爱好者学习使用, 若作者发现该项目以任何不正当方式被使用, 将立即删除该项目。
希望大家合理利用该项目🙂

支持列表

平台 支持音乐搜索? 支持音乐下载?
QQ音乐
酷我音乐
酷狗音乐
虾米音乐
千千音乐
咪咕音乐
网易云音乐
百度无损音乐
JOOX音乐

环境说明

测试环境

本人测试时使用的环境如下:

  • 操作系统: Win10
  • Python版本: 3.6.4

依赖包

musicdl相关依赖包需求如下:

click >= 7.0
requests >= 2.22.0
prettytable >= 0.7.2
pycryptodome >= 3.8.1

直接使用

项目下载

运行如下命令下载项目:

git clone https://github.com/CharlesPikachu/Music-Downloader.git

配置文件

在musicdl文件夹中有config.json文件, 该文件为配置文件, 文件中各参数含义如下:

logfilepath: 日志文件保存路径
proxies: 设置代理, 支持的代理格式参见https://requests.readthedocs.io/en/master/user/advanced/#proxies
search_size_per_source: 在各个平台搜索时的歌曲搜索数量
savedir: 下载的音乐保存路径  

项目运行

在终端执行如下命令:

python musicdl.py

然后根据相应的提示进行操作即可.

版本发布

Windows

安装使用

PIP安装

在终端运行如下命令即可(请保证python在环境变量中):

pip install musicdl --upgrade

源代码安装

在线安装

运行如下命令即可在线安装:

pip install git+https://github.com/CharlesPikachu/Music-Downloader.git@master

离线安装

利用如下命令下载Music-Downloader源代码到本地:

git clone https://github.com/CharlesPikachu/Music-Downloader.git

接着, 切到Music-Downloader目录下:

cd Music-Downloader

最后运行如下命令进行安装:

python setup.py install

快速开始

歌曲搜索

实现音乐搜索功能的示例代码如下:

from musicdl import musicdl

config = {'logfilepath': 'musicdl.log', 'savedir': 'downloaded', 'search_size_per_source': 5, 'proxies': {}}
target_srcs = ['baiduFlac', 'kugou', 'kuwo', 'qq', 'qianqian', 'netease', 'migu', 'xiami', 'joox']
client = musicdl.musicdl(config=config)
search_results = client.search('说好不哭', target_srcs)

其中config是一个字典对象, 字典内各参数含义:

logfilepath: 日志文件保存路径
proxies: 设置代理, 支持的代理格式参见https://requests.readthedocs.io/en/master/user/advanced/#proxies
search_size_per_source: 在各个平台搜索时的歌曲搜索数量
savedir: 下载的音乐保存路径  

target_srcs是一个列表对象, 用于指定音乐搜索的平台:

baiduFlac: 百度无损音乐
kugou: 酷狗音乐
kuwo: 酷我音乐
qq: qq音乐
qianqian: 千千音乐
netease: 网易云音乐
migu: 咪咕音乐
xiami: 虾米音乐
joox: JOOX音乐

search_results为歌曲搜索的结果, 是一个字典对象, 格式如下:

{
    搜索平台: 歌曲信息
}

歌曲下载

下载各平台音乐搜索结果的示例代码如下:

from musicdl import musicdl

config = {'logfilepath': 'musicdl.log', 'savedir': 'downloaded', 'search_size_per_source': 5, 'proxies': {}}
target_srcs = ['baiduFlac', 'kugou', 'kuwo', 'qq', 'qianqian', 'netease', 'migu', 'xiami', 'joox']
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函数传入的参数必须是一个列表对象.

自定义平台

通过安装musicdl, 你可以自定义平台进行音乐搜索和下载, 示例代码如下:

from musicdl import musicdl

config = {'logfilepath': 'musicdl.log', 'savedir': 'downloaded', 'search_size_per_source': 5, 'proxies': {}}
target_srcs = ['baiduFlac', 'kugou', 'kuwo', 'qq', 'qianqian', 'netease', 'migu', 'xiami', 'joox']
client = musicdl.musicdl(config=config)
client.run(target_srcs)

target_srcs是一个列表对象, 用于自定义平台:

baiduFlac: 百度无损音乐
kugou: 酷狗音乐
kuwo: 酷我音乐
qq: qq音乐
qianqian: 千千音乐
netease: 网易云音乐
migu: 咪咕音乐
xiami: 虾米音乐
joox: JOOX音乐

开发日志

  • 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: 解决一些小问题

关于作者

学生党, 主要研究方向是计算机视觉, 顺便对信息安全感兴趣。

我的个人微信公众号是: Charles_pikachu (欢迎搜索关注)  

我的Github账号是: https://github.com/CharlesPikachu  

我的知乎账号是: https://www.zhihu.com/people/charles_pikachu

我的B站账号是: https://space.bilibili.com/406756145

个人邮箱: charlesblwx@gmail.com