本帖最后由 applek 于 2018-3-22 00:15 编辑
QQ音乐的歌曲要想下载很简单,最主要的就是通过获取到vkey和歌曲的mid进行地址拼接,进行下载。
获取方法一(直接计算)
首先来看一段无损音乐的地址
[XHTML] 纯文本查看 复制代码 http://dl.stream.qqmusic.qq.com/F000003aAYrm3GE0Ac.flac?vkey=9EE4B929121DD578EE78612BC15DE2A6276D5792625C822D772B42B66C3922DB682E7F674BA92A8BD1D78D39D090F73BACCBE9F2BF9181E6&guid=1234567890&uin=1008611&fromtag=64
抽象一下:
无损下载的地址就是这样的
http://dl.stream.qqmusic.qq.com/A000” + StrMediaMid + “.ape” + “?vkey=” + vkey + “&guid=” + guid + “&uin=” + uin + “&fromtag=64
这段网址中,A000为音乐格式的标识符,ape为A000,flac文件为F000,320Kmp3文件为M800,普通mp3为M500。
StrMediaMid,为歌曲的MID,可以查看音乐也没的网页源码
在网页里面找到strMediaMid后面的参数
vkey为歌曲的核心认证参数,后面说如何获取
guid为随机数,获取vkey的时候会提交guid,应该和提交的时候一致。
uin是QQ号,获取vkey的时候会提交QQ号,应该和提交的时候一致。
[XML] 纯文本查看 复制代码 url = “[url=http://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=0&loginUin=]http://c.y.qq.com/base/fcgi-bin/ ... cg?g_tk=0&loginUin=[/url]” + uin + “&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0&cid=205361747&uin=” + uin + “&songmid=003a1tne1nSz1Y&filename=C400003a1tne1nSz1Y.m4a&guid=” + guid
本地址为vkey获取的地址,uin为QQ号,两个uin都该一致,gui为随机数。提交会返回一个json数据,vkey就在里面了。
[XHTML] 纯文本查看 复制代码 {
"code": 0,
"cid": 205361747,
"userip": "182.150.103.213",
"data":
{
"expiration": 80400,
"items":
[
{
"subcode": 0,
"songmid": "003a1tne1nSz1Y",
"filename": "C400003a1tne1nSz1Y.m4a",
"vkey": "0CF6896ABBC87B84173BB0DFBDA35223867021149CCF05C4B16E21C67DD7628C667EA9867885336D171FA0F9B4CF54A80879E92E78BF2A75"
}
]
}
}
那么要下载一个无损就很简单了。
组合好网址,就可以进行下载了。
获取方法二(替换法)
说实在的,QQ音乐的这个算法真的是简单得漏洞百出。首先我们选择一首音乐进行播放,使用谷歌内核的浏览器F12进行抓包。
选择过滤器只查看媒体文件,我们就可以看到一段播放地址了
[XML] 纯文本查看 复制代码 http://dl.stream.qqmusic.qq.com/C400000DwvOd2VQYRl.m4a?vkey=D9EE5F84DF7C0E4E4C9DE27E8B7B04A99C5B61D555A176C59F1A92B1A5BF849671860FDE21765281EE25490C67D8A60886E7378732144C1E&guid=5891092592&uin=2242332008&fromtag=66
有没有很熟悉?这个地址和我们的无损地址就只差一点点了。
首先修改C400为上面我们需要的无损前缀,比如ape修改为A000,然后把m4a修改成ape,最后将末尾的fromtag=66修改成fromtag=64,即可
相关源码下载
解析好QQ音乐的搜索,即可做成一个比较不错的客户端了
易语言源码,就是本论坛之前发布的版本
链接: https://pan.baidu.com/s/1-NGB64TeTpm6eA6H1yyXUw 密码: rhv5
Android studio源码写的很low,不过搜索,下载无损等功能都搞定了
链接: https://pan.baidu.com/s/1nQ7Ntw6A0ahtAeC7FMn7dw 密码: uhpe
|