在线试听音乐分析

很多音乐播放器提供了在线试听功能,当我们需要下载的时候,经常会遇到需要付费或者下载客户端才能下载的情况。但是,我们想到,既然可以实现试听,那说明音乐数据已经传递到我们电脑上了,也就是说我们可以绕过付费或者需下载客户端的限制就可以下载音乐了。

下面以虾米音乐、酷我音乐、网易云音乐为例进行分析如何实现免费下载

【酷我音乐】

假如我们想下载这一首《凉凉》

http://www.kuwo.cn/yinyue/15249349?catalog=yueku2016

取出链接的ID:15249349

将下一个链接中的[ID]替换为我们的ID:

http://antiserver.kuwo.cn/anti.s?rid=MUSIC_[ID]&response=url&type=convert_url&format=mp3

替换之后的结果为:

http://antiserver.kuwo.cn/anti.s?rid=MUSIC_15249349&response=url&type=convert_url&format=mp3

访问这个地址就可以得到一个链接:

http://win.web.ri01.sycdn.kuwo.cn/cdd461a1635f0714d4410c4116989806/592c241d/resource/n1/36/38/490078574.mp3

该链接就是我们音乐的下载地址

 

【虾米音乐】

这个的分析比上一个有点儿意思。

假如我们想下载这一首《极乐净土》

http://www.xiami.com/play?ids=/song/playlist/id/1776284090/object_name/default/object_id/0#loaded

取出链接的ID:1776284090

将下一个链接中的[ID]替换为我们的ID:

http://www.xiami.com/song/playlist/id/[ID]/object_name/default/object_id/0/cat/json?_ksTS=1496065184869_389&callback=jsonp390

替换之后的结果为:

http://www.xiami.com/song/playlist/id/1776284090/object_name/default/object_id/0/cat/json?_ksTS=1496065184869_389&callback=jsonp390

访问该地址得到json格式的歌曲信息

其中节点location的值为关键信息

取出一个节点location的值:

8h2.c232576%55mtD1%4565utFao%%FE525EEphc65bd3Elt%lm2523%8E333_efE611-lp2i%FE1724_%1%kdac3-6%%Fc268%1F%1553e42d41%53odF315%154E2Fyeead45EAmn842E57E812a%7e949E-%5.15%%E79%%.u335cd6%n

取出第一个字节为:8

对其余字符进行平均分割:(这儿的行数大家有注意,就是上面的8)

h2.c232576%55mtD1%4565u

tFao%%FE525EEphc65bd3El

t%lm2523%8E333_efE611-l

p2i%FE1724_%1%kdac3-6%

%Fc268%1F%1553e42d41%5

3odF315%154E2Fyeead45E

Amn842E57E812a%7e949E-

%5.15%%E79%%.u335cd6%n

整齐的分割完毕之后,我们发现每行的第一个字母连起来就是http%3A%,是链接的开头,到了这儿,我们不禁有了一个大胆的想法,从上到下挨个取出每行的字母

我们对其进行整理之后得到:

http%3A%2F%2Fom5.alicdn.com%2F812%2F63453%5E812%2F21%5E%5E371%5E75%2F1776284%5E9%5E_148%5E3%5E1%5E31522.mp3%3Fauth_key%3Dced4e7316fa2ee5%5Ecda9c4b634d4d5d1-14966316%5E%5E-%5E-n

解码得到:

http://om5.alicdn.com/812/63453^812/21^^371^75/1776284^9^_148^3^1^31522.mp3?auth_key=ced4e7316fa2ee5^cda9c4b634d4d5d1-14966316^^-^-n

然后把^替换为0

http://om5.alicdn.com/812/634530812/2100371075/1776284090_1480301031522.mp3?auth_key=ced4e7316fa2ee50cda9c4b634d4d5d1-1496631600-0-n

把最后一字节n替换成null即可得到下载地址:

http://om5.alicdn.com/812/634530812/2100371075/1776284090_1480301031522.mp3?auth_key=ced4e7316fa2ee50cda9c4b634d4d5d1-1496631600-0-null

整个分析完之后也可以写一个脚本工具,一键转换链接,省的手动麻烦。


【网易云音乐】

假如我们想下载这一首《九九八十一》

http://music.163.com/#/song?id=419373902

取出链接的ID:419373902

作为参数传递到我们的加密函数get()中,得到一串字符串:
 params=R%2BoJAeBwDkb0fPjhAbLyt4WadRGfd7j7JXfLZetvaWM72msCQa9nskwCJ9AUUtzYoQCGAlMNnOttPxErAlfi%2FV1XV%2BGUH3wnz0SHr1eu4Z4%3D&encSecKey=812abd084ce7e1ca926ba167e958c16da2006a85f2bb2889823dcaa18d4a03064e44e96b368c5a4c21129c8c844eff23b2b113e28c0c042cc99dd3a9874b08bdd7e2f8f3fb802f23537fd91532cd4ff5650a2fe56c6c1f380b1ed873a2d92e2b1d317ed03f10f94f599e9aff7e748d89f23d66faf369414c1fe91656eb91f1f5
(加密函数已经上传到了Github: https://gist.github.com/WithHades/cb89b0d661afc038cd0a558e96e14878
得到之后,将字符串作为包体,POST访问http://music.163.com/weapi/song/enhance/player/url?csrf_token=
就可以得到音乐的下载地址啦,对于付费音乐同样适用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值