网易云与QQ音乐共享了99%乐库,那么这个工具解决剩下的百分之一--SDMUSIC(开源命令行音乐搜索下载软件)

推荐大家使用LX Music,当前项目已经停摆。


新增(3-1)

新增飙升榜(网易云,QQ)音乐下载,新增原创榜下载(网易云,虾米音乐),热歌榜新增虾米音乐

新增(2-28)

2-28
新增网易云和QQ音乐热歌榜下载,指定参数-hot加平台就可以了,修复/的BUG

新增(2-27)

QQ歌单下载

注意:
新增QQ音乐歌单下载,需要指定-p qq。注意qq音乐批量下载中需要将https://y.qq.com/w/taoge.html?ADTAG=newyqq.taoge&id=3710267240改为https://y.qq.com/w/taoge.html?ADTAG=newyqq.taoge\&id=3710267240,就是在&前加\,否则无法正常工作,或者直接指定id的值也可以。

新增

虾米音乐歌单下载,修复BUG

起因

news.jpg

功能

  • 搜索
  • 下载
  • 下载歌词
  • 下载专辑图片,专辑信息嵌入到音乐(依赖ffmpeg)
  • 批量下载
  • 高清音乐源(使用-tfc(test flac)参数来测试音乐是否有flac无损格式的,通过-dfc(download flac)来下载flac格式的音乐,flac格式自带信息嵌入,所以不需要也不容许使用-a,但可以使用-l)
  • 增加配置文件,给用户更多自定义功能
  • 根据文件下载音乐

今天无意间看到这条新闻,听说已经共享了99%的乐库。于是屁颠屁颠的打开网易云,搜索了前段时间很火的体面,然而,依旧没有于文文版的,很多经典的粤语歌也没得听。于是就有了这个小工具-SDMUSIC。SDMUSIC的名字,其实就是Search && Download Music ,使用Python3编写的命令行软件,理论上支持所有平台,暂时只在类Unix(Ubuntu && Arch&&Mac)系统上测试。

 ______     _____     __    __     __  __     ______     __     ______    
/\  ___\   /\  __-.  /\ "-./  \   /\ \/\ \   /\  ___\   /\ \   /\  ___\   
\ \___  \  \ \ \/\ \ \ \ \-./\ \  \ \ \_\ \  \ \___  \  \ \ \  \ \ \____  
 \/\_____\  \ \____-  \ \_\ \ \_\  \ \_____\  \/\_____\  \ \_\  \ \_____\ 
  \/_____/   \/____/   \/_/  \/_/   \/_____/   \/_____/   \/_/   \/_____/

使用方法

这个项目已经开源到了github上 。同时,也已经同步到了PyPi。

安装

方法一

pip3 install sdmusic

方法二

git clone git@github.com:pcdack/SDMUSIC.git
cd SDMUSIC/
python3 setup.py install

检验

输入sdmusic -v输出:

 ______     _____     __    __     __  __     ______     __     ______    
/\  ___\   /\  __-.  /\ "-./  \   /\ \/\ \   /\  ___\   /\ \   /\  ___\   
\ \___  \  \ \ \/\ \ \ \ \-./\ \  \ \ \_\ \  \ \___  \  \ \ \  \ \ \____  
 \/\_____\  \ \____-  \ \_\ \ \_\  \ \_____\  \/\_____\  \ \_\  \ \_____\ 
  \/_____/   \/____/   \/_/  \/_/   \/_____/   \/_____/   \/_/   \/_____/

安装成功

配置

配置文件的位置~/.sdmusic/sdmusic.config

可配置的项

文件名的命名格式

  1. 歌曲名
  2. 歌手 - 歌曲名
  3. 歌曲名 - 歌手

例如:我想使用第二种命名方式,那么我们只需要将配置文件中

 song.name_type = 2

歌曲默认下载路径
例如修改到/home/{username}/Music/test/目录下:

注意:路径要写全,否则可能报错

 download.dir = /home/{username}/Music/test/

搜索命令

sdmusic -n "体面" -s
search.gif

下载命令

很简单只要把上面的s参数改为d,然后用-i在去指定你要下载那一条音乐。

例如

sdmusic -n "体面" -p qq -s

在命令行的结果为

Index   MusicName       MusicAuthor
1       体面                      于文文
2       体面                      艾辰
3       体面                     简弘亦
4       体面                     罗之豪
5       体面                     胖胖胖
6       体面                     阿细
7       体面                    妖蝠sama
8       体面                     冯允澈
9       体面                      阿祥
10      体面                   简弘亦

我们如果想下载第一个音乐,那么

技巧使用键盘的上键更改即可

sdmusic -n "体面" -p qq -d -i 1

回车就可下载。


download.gif

批量下载

sdmusic -l -a -t http://music.163.com/#/playlist?id=932596614

上面这条命令,下载后面歌单的所有音乐,同时下载所有的歌词和嵌入专辑图
去掉-l,-a就可以不下载歌词和嵌入专辑图与专辑信息

其他参数(除-o以外其他的在下载和搜索的时候都可以用)

批量下载QQ音乐歌单:

注意&符号前一定要加\否则会报错

sdmusic -p qq -t https://y.qq.com/w/taoge.html?ADTAG=newyqq.taoge\&id=3710267240 

直接指定ID

sdmusic -p -t 3710267240

无损音乐测试与下载

  • 测试是否存在无损音乐
sdmusic -tfc -n "黄色大门"
  • 下载无损音乐(先测试是否存在)
sdmusic -dfc -n "黄色大门"

自带专辑图片和专辑信息,所以emmmmm-a属性没什么软用。当然-l(下载歌词)依然可用

可选参数
-p[platform]:可以指定搜索平台{netease(网易:默认),qq,xiami(虾米),kugou(酷狗),1ting(一听)}
例子

sdmusic -n "体面" -p qq -s

-g[page]:指定搜索的页面为第几页默认为第一页,如果第一页没有找到相关的歌曲,可以指定移动到第二页

sdmusic -n "体面" -p qq -g 1 -s

-v[version]:输出版本信息

-o[output]:指定输出路径(只有在指定为下载是有效)
-l[lyric]:新增歌词下载功能(只有指定为下载是有效的,不包括一听音乐平台)
-a[album]:下载并嵌入专辑图片,专辑名字,作者名字等信息,全平台适用

如有其他需求,请尽情ISSUES,欢迎一起维护项目

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,860评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 1. 早餐,公公煮了几个从老家带来的土鸡蛋,他先上桌,剥开一个,发现已经发出臭味,但还是强忍着吃下去了。当我们都坐...
    有料家庭教育阅读 1,272评论 1 4