脚本批量下载网易云音乐歌曲
闲来无事用Python撸了一个可以批量下载网易云音乐的脚本, 大致实现方式如下:
- 获取到要下载的歌曲的ID
- 通过
http://music.163.com/song/media/outer/url?id=%s.mp3
链接来获取下载的真实链接 - 伪造浏览器访问, 循环遍历下载至本地.
当然在这里面也是有很多坑的, 如何获取歌曲ID, 因为我只想获取我喜欢的歌列表, 通过Charles抓包, 或者在浏览器里面alt + command + J
打开开发者模式在Network中获取列表的JSON结果, 再通过正则来获取到有用的信息. 这个脚本需要改进的一点就是, 不能自己调用最喜欢的歌曲的API来自动获取JSON结果, 需要我们先复制进去.
需要注意的是, 这样下载的歌曲不是最高音质的, 如果想要获取高音质的下载链接还有三种方式:
- 播放音乐时通过Charles抓包来获取真实下载地址
- 通过查看本地的Log日志, 来获取播放音乐的真实地址
- 在缓存目录中查找已经听过的歌.
上面这三种方式均可以获取真实有效地址, 但是不能批量获取, 并且名字都是一长串经过加密的字符串.
参考文章: