get-music-lizhanqi的使用方法,酷狗,网易云,多合一下载

get-music-lizhanqi是一个非常好用的下载音乐的python第三方库,下面我们来介绍和使用它

get-music-lizhanqi 是一个基于Python3的命令行工具,可以从多个网站搜索和下载音乐,方便寻找音乐,解决不知道哪个网站有版权的问题。工具的本意是聚合搜索,API
是从公开的网络中获得,不是破解版,也听不了付费歌曲。

禁止将本工具用于商业用途,如产生法律纠纷与本人无关,如有侵权,请联系我删除。

QQ邮箱:3101978435@qq.com

最近API封杀有点多,个人有点维护不过来,所以更新不及时不要怪我哦。

注意: 部分音乐源在一些国家和地区不可用。

功能

  • 支持get-music -r 一次下载多个歌曲,具体使用方法get-music -help中会有,pypi地址:https://pypi.org/project/get-music-lizhanqi/
  • 部分歌曲支持无损音乐
  • 优先搜索高品质音乐(无损 -> 320K -> 128K)
    -支持一次下载多个版本的歌曲
  • 支持下载歌词和封面(部分)

注意:仅支持Python3,建议使用 Python3.7 以上版本

安装

使用pip安装:

1
$ pip install get-music-lizhanqi

更新至最新版本

使用pip更新(建议使用pip进行更新,因为最新版本一般会最先发布在pypi上,当然github也会同步):

1
$ pip install --upgrade get-music-lizhanqi

在以下环境测试通过:

  • 说明:不仅限测试环境
系统名称 系统版本 Python版本
Windows Windows 7 x64 3.7.0
Windows Windows 10 x64 3.7.0
Windows Windows 11 x64 3.7.0
Centos Centos 7.9 x64 3.7.0
Ubuntu Ubuntu 22.4 x64 3.7.0
Kali Kali 20.4 x64 3.7.0
Android Android 10 x64 3.6.6(qpython)
Deepin Deepin 20 x64 3.7.0
macos macos13.1 x64 3.7

使用方式

直接在命令行敲:

1
$ get-music

之后步骤按照程序提示进行下一步即可。

如果你是一个特别喜欢自定义的人,你可以这样做:

1
2
3
>>>import get_music
>>>dir(get_music)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'baidu', 'download', 'fivesing', 'kugou', 'kuwo', 'migu', 'netease', 'oneting', 'qq']

会返回以上内容,这时就得到了可用的模块是’baidu’, ‘download’, ‘fivesing’, ‘kugou’, ‘kuwo’, ‘migu’, ‘netease’, ‘oneting’, ‘qq’,共九个可供调用的模块,下面我会介绍,每个模块的使用方法:

一、’download’模块

说明:此模块为下载时展示进度条的模块,是自己封装的,因为tqdm没有适配python3.6(总是安装失败)所以我直接自己写了一个,免得安装时出幺蛾子

get_music.download.download(url,filename) #第一个参数是下载链接,第二个参数是保存为什么东西(需要加文件扩展名)

1
>>>get_music.download.download('https://webfs.ali.kugou.com/202206161239/72f11276df52e9182ace289d71092e83/KGTX/CLTX001/a2b996fc632a8f47a133ab6dc170c3d2.mp3','wake.mp3')

二、以”netease”接口为例,获取歌曲链接、封面链接、歌词链接

1
2
3
4
5
>>>netease=get_music.netease()   #创建网易云音乐对象
>>>netease_list=netease.search(songname) #search(songname)中的songname是你要搜索的歌曲名字,然后程序会返回三个列表,第一个列表是歌曲名字,第二个列表是歌手,第三个列表是歌曲的id,或者歌曲下载链接,,如果有为空的那就是没有搜索结果
>>>url=netease.get_music_url(num,return_url=True) #获取歌曲的下载链接,这个num就是搜索结果的第几首歌曲,比如你下载第一个那么num=0,以列表的索引来的,第二个是可选参数return_url的值为True时返回歌曲链接为False时,直接在当前文件夹中下载
>>>pic=netease.get_music_pic(num,return_url=True) #获取歌曲的封面链接,参数的作用与获取歌曲下载链接的一样
>>>lrc=netease.get_music_pic(num,return_url=True) #获取歌曲的歌词下载链接,注意有的接口会直接返回歌曲而不是歌曲链接,所以当你做批量获取歌词时需要加上判断,判断是不是链接,然后在处理

三、拿kugou举例,实操下载一首歌

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>>kugou=get_music.kugou.kugou()
>>>song_name,song_singers,song_id=kugou.search(songname) #songname同样是歌名,search()会返回三个列表,歌曲名,歌手,歌曲id,分别赋值给前面的三个变量
>>>kugou.get_music_url(song_id(num)) #num为你需要下载歌曲的索引,search他们的索引的结果返回的数据都是一一对应的,因此不用担心下载不到自己想要的索引的歌曲
>>>kugou.get_music_pic(song_id(num)) #num依旧是下载歌曲时的索引
>>>kugou.get_music_lrc(song_id(num)) #num依旧是下载歌曲时的索引
#以上步骤下载的歌曲都会保存在当前文件夹内,如果你想保存到其他位置那么,你需要自己执行下载操作,下面示范
>>>kugou=get_music.kugou.kugou()
>>>song_name,song_singers,song_id=kugou.search(songname) #songname同样是歌名,search()会返回三个列表,歌曲名,歌手,歌曲id,分别赋值给前面的三个变量
>>>url=kugou.get_music_url(song_id(num),return=True) #num仍然是你需要下载歌曲的索引,而我们在这里多加了一个return=True参数,这参数起到的目的就是返回下载链接,我们用url变量接收它
>>>download=get_music.download.download() #我们在get-music中封装了一个可以展示下载进度的下载器,我们把它初始化一下,赋值给了download变量
>>>download(url,filename) #注意url的链接为kugou.get_music_url(num,return=True)解析出来的链接,filename参数是一个字符串,用来记录需要存储的文件名和路径,比如我们要存到当前文件夹中的music文件夹那么你可以这样写filename="./music/musicname.mp3"musicname是歌曲名字,.mp3是文件类型这个必须要有,歌曲你想用搜索结果的歌曲名可以用search时返回的song_name列表获取歌曲名,filename="./music/"+song_list[num]+"-"+song_singers[num]+".mp3",其[]中num就是下载的索引

##如果你不想用get_music中自带的下载模块下载你可以自定义下载,或者参照下面代码
>>>data=requests.get(url) #接下来你需要使用requests,获取到mp3文件的整体,如果你想用其他的下载进度条,可以在requests中设置参数,可以参考dwonload模块中的内容,这里不多说
>>>with open("测试-测试.mp3","wb")as f: #名字可以随意改但是不要把文件扩展名忘了
f.write(data.content) #data.content存储

四、fivesing,这个模块比较特殊,因为它封装了”原唱”和”翻唱”

其余的搜索、解析真实下载地址的流程就和kugou的一致

1
2
>>>原唱=get_music.fivesing.fivesing('ys')
>>>翻唱=get_music.fivesing.fivesing('fc')

get-music -r

如果想要正确的使用-r命令,就必须创建一个名为get_music.txt的文档,里面的内容可以是以下内容,用逗号(中英都可)分隔的三个参数,每一行为一组,切不可多写,第一个是歌曲名,第二个是需要下载几首歌或者是一个歌手的名字,第三个参数就是下载的平台,由于技术原因作者写的代码很烂,所以暂时只能在kg(酷狗),kw(酷我),qq(qq音乐),wy(网易云),bd(百度),migu(咪咕),1ting(一听),yc(5sing原唱),fc(5sing翻唱)十个接口中进行批量下载歌曲的操作

1
2
3
4
爱人错过,告五人,kg
爱人错过,1,qq
大田后生仔,1,wy
11,队长,kw

get-music -l

下载歌曲和歌词,具体搜索歌曲的流程和get-music一致,不同的是最后多保存了个歌词

1
$get-music -l

get-music -p

下载歌曲和封面,具体搜索歌曲的流程和get-music一致,不同的是最后多保存了个封面

1
$get-music -p

get-music -lp

下载歌曲、封面和歌词,具体搜索歌曲的流程和get-music一致,不同的是最后多保存了封面和歌词

1
$get-music -lp  #get-music -pl也是一样,为了防止敲错,这两个都可用

get-music -v

查看当前版本,并校验当前版本与pypi上的版本判断是否是最新版本,如果不是最新版本则会提示你让你更新

1
$get-music -v

get-music -t

打开使用python的tkinter框架编写的可视化窗口程序,不用写一行代码即可下载到你喜欢的音乐。、

1
$get-music -t

get-music -help

你的所有疑惑将在帮助中解答,当然没有本文档那么详细,建议直接阅览本md文档即可

1
$get-music -help

get-music -hot

你可以查看qq,酷狗,网易云的热歌榜单的前六个。

1
$get-music -hot

get-music -s

用于查看网络中关于该歌曲的网盘信息,如果有则返回网盘链接和提取码

1
$get-music -s

说明

  • 在linux平台上尽量使用root用户进行pip安装,然后用root用户启动该程序,由于作者知识浅薄尚不能够对linux平台进行全平台适配,敬请理解!
  • 九个搜索引擎任你挑qq netease kugou baidu kuwo migu,1ting,5singfc,5singyc,每个数量限制为10,保存目录为当前目录。
  • 指定序号时可以使用1 1,2(中间的逗号要用英文逗号哦,并且有的不支持,不支持这样会有提示)的形式。
  • 默认对搜索结果排序和去重,排序顺序按照歌手和歌名排序,当两者都相同时保留最大的文件。
  • 无损音乐歌曲数量较少,如果没有无损会默认下载320K或128K。
    -下载的歌曲的质量以最终保存的文件为准

支持的音乐源列表

音乐源 缩写 网址 有效 无损 320K 封面 歌词 单曲
QQ音乐 qq https://y.qq.com/ - -
酷狗音乐 kugou http://www.kugou.com/ - -
网易云音乐 netease https://music.163.com/ -
咪咕音乐 migu http://www.migu.cn/ - -
百度音乐 baidu http://music.baidu.com/ -
酷我音乐 kuwo http://www.kuwo.cn/ - -
1听 1ting https://www.1ting.com/ - -
5sing 5sing http://5sing.kugou.com/ - -

-表示不一定支持,表示部分或完全支持,表示尚未支持

欢迎提交支持更多音乐源!

THE END

  • 本脚本仅支持学习使用,如有发现有任何商业用途,一经发现您将受到法律责任。
  • 本程序使用的接口全部来源于网络,切不可有任何商业用途,或我程序中有涉及你公司利益的,你可以联系我,我会及时删除源代码,并不再更新。
  • 禁止将本工具用于商业用途,如产生法律纠纷与本人无关,如有侵权,请联系我删除。
  • 如果你对界面设计感兴趣可以去看我的另一篇pyqt5对接的get-music-lizhanqi做的音乐下载播放ui,地址:https://github.com/lzq-hopego/get-music-lizhanqi-gui