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