批量下载网易云音乐的歌曲,支持专辑和歌单,也可以下载歌词,补全歌曲标签和替换成清晰封面。
- cloudmusic 协议解析库
- downloader 简单粗暴下载器
- gmscript 油猴脚本
- nmdown.py 主程序
支持批量下载,下载后自动补充缺少的 ID3 Tags。
下载回来的 mp3 文件,ID3 Tags 只有歌名、专辑名和专辑封面,因此需要从元数据补充一下。
补充的 tag 有:
- 艺术家
- 在专辑中的序号/专辑歌曲总数
- 发行商
- 发行日期
- 在云音乐中的地址(某些播放器可能不会显示)
cloudmusic 里的代码仅依赖 Python 2.7 的标准库。
downloader 依赖 Python 的 eyed3 库来修改 ID3 Tags。
支持下载单曲、专辑、歌单,直接带上页面地址即可
单曲,下载到当前目录
./nmdown.py http://music.163.com/#/song?id=442723
专辑,下载到文件夹,默认是 [专辑]专辑名
./nmdown.py http://music.163.com/#/album?id=42967
歌单,下载到文件夹,默认是 [歌单]歌单名
./nmdown.py http://music.163.com/#/playlist?id=3020931
艺术家,下载到文件夹,默认是 [艺术家]艺术家名/[专辑]专辑名
./nmdown.py http://music.163.com/#/artist?id=2842
或者包含页面地址的本地文件,格式为每行一个
./nmdown.py url.txt
参数可以多个地址和文件名混合使用。
可通过运行 ./nmdown.py --help
查看可选参数。
-q 音质名
优先下载指定音质,音质名意义如下:
码率名
low
低音质,码率 96kbp/s。medium
中等音质,码率 160kbp/s。high
高音质,码率 320kpb/s,也有些歌曲是 256kbp/s 或 192kpb/s。
码率别名,其实就是码率名的映射
normal
普通音质,web 播放器的默认音质,相当于medium
,默认下载此音质。best
最佳音质,当前歌曲的最高码率音质,相当于high
。
有些歌曲不存在 high
码率,有些甚至连 medium
都没有,使用码率名会下载不到,
而使用码率别名会自动降级映射,不会出错。
-l
同时下载歌词,创建 lrc 文件。
有些歌词可能没有时间轴。
-o
指定使用的下载目录,如果不存在,则自动创建,默认使用当前目录。
-c
替换为高分辨率封面。
原始的 mp3 文件自带封面,但是分辨率比较小,使用此选项替换为分辨率更高的图片。
在歌曲页面上显示各种音质的下载地址和歌词。
GPLv3