最近又想写东西了,所以写了这么一个系列,不定期更新(虽然我知道没人看的)
![](https://img.haomeiwen.com/i847171/34722fb6d6eb6ac8.jpeg)
这几天又开始对网易云音乐感兴趣起来,为了节省我rmbp13可怜的硬盘读写次数,经常是把歌曲下下来,在本地播放~~~所以打算写个下载工具来下载音乐~~~为什么不用客户端呢?因为在公司就两台电脑,一台自己的rmbp一台ubuntu,最重要的是ubuntu没有客户端!!!
前情略过,既然要做个下载工具,就要先找到如何下载~~~机智的我,右键查看源码(点到歌曲列表,查看框架源码)了一个歌单,发现了如此神奇的东西
![](https://img.haomeiwen.com/i847171/748745cbd785149f.png)
(数据太多,只截了部分)这些不就是json数据吗,从开始的[能看出还是个json数组,那么提取出一个来解析下看看
![](https://img.haomeiwen.com/i847171/675bf491cf1c3e26.png)
折叠了很多数据还有这么多,说明给出是数据真的很全面,也不一条条分析了,挑关键词说一些需要的数据
mp3Url这个不出意外就是下载地址了
name歌名
lMusic mMusic hMusic这几个数据如下截图
![](https://img.haomeiwen.com/i847171/6d81a49dbf8cb060.png)
这三个数据结构一致,从数据中分析应该是低中高三种不同音质的信息,再对比mp3Url,这个地址给出的应该是低品质的歌,我要下载自然是品质越高越好了~~那么把链接里的id换成hMusic里的id
新的地址http://m2.music.126.net/R-VtozWVaOzIYVEyiTsYpA==/5851600883114606.mp3
往浏览器里一输,一敲回车
![](https://img.haomeiwen.com/i847171/1982ec8a45c5881f.png)
那么凭借直觉,中间那串东西应该是校验用的~~~而计算出这个校验码的应该是id。
围观这个校验码,发现是一个特征 ==结尾,凭借经验告诉我,这个是base64编码
![](https://img.haomeiwen.com/i847171/9407f6433c780c01.png)
那么简单,把低品质的id给base64下
![](https://img.haomeiwen.com/i847171/71c0e0b8fa0fb705.png)
和正确的不一样诶,老师~~~有仔细观察了下正确的校验码R-VtozWVaOzIYVEyiTsYpA==中有一个-号,这个在base64中应该是没有的~~~所以应该是一个类似base64的编码方法吧~~~可是完全黑盒猜编码方式,做不到啊老师~~~
本打算放弃了,就下下低品质的歌吧,这不还节约空间,况且自己的木耳又听不出好坏来,我是这么安慰我自己的~~~
这个故事我们不会这样就结束,但是~~~欲知后事如何请听下回分解~~~
网友评论