applek 发表于 2018-3-22 00:13

QQ音乐无损歌曲地址分析以及多平台源码

本帖最后由 applek 于 2018-3-22 00:15 编辑

QQ音乐的歌曲要想下载很简单,最主要的就是通过获取到vkey和歌曲的mid进行地址拼接,进行下载。
获取方法一(直接计算)
首先来看一段无损音乐的地址
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号,应该和提交的时候一致。


url = “http://c.y.qq.com/base/fcgi-bin/ ... cg?g_tk=0&loginUin=” + 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就在里面了。
{
      "code":      0,
      "cid":      205361747,
      "userip":      "182.150.103.213",
      "data":      
      {
                "expiration":      80400,
                "items":      
                [
                        {
                              "subcode":      0,
                              "songmid":      "003a1tne1nSz1Y",
                              "filename":      "C400003a1tne1nSz1Y.m4a",
                              "vkey":      "0CF6896ABBC87B84173BB0DFBDA35223867021149CCF05C4B16E21C67DD7628C667EA9867885336D171FA0F9B4CF54A80879E92E78BF2A75"
                        }
                ]
      }
}


那么要下载一个无损就很简单了。


组合好网址,就可以进行下载了。
获取方法二(替换法)


说实在的,QQ音乐的这个算法真的是简单得漏洞百出。首先我们选择一首音乐进行播放,使用谷歌内核的浏览器F12进行抓包。

选择过滤器只查看媒体文件,我们就可以看到一段播放地址了
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音乐的搜索,即可做成一个比较不错的客户端了


易语言源码,就是本论坛之前发布的版本

**** Hidden Message *****
Android studio源码写的很low,不过搜索,下载无损等功能都搞定了

**** Hidden Message *****

Overcoder 发表于 2018-3-25 15:28

技术大牛,很赞同这种分析过程。
http://dl.stream.qqmusic.qq.com/A000” + StrMediaMid + “.ape” + “?vkey=” + vkey + “&guid=” + guid + “&uin=” + uin + “&fromtag=64
这个是怎么分辨出来的?

Beau阿振 发表于 2018-3-24 10:16

落叶@枫林 发表于 2018-3-22 10:26
楼主是写的 累了吧!!公布了,腾讯直接封了,就好玩了
发个 我的

停止分享了?

sciurine 发表于 2018-3-22 00:22

沙发,楼主厉害呀

yiwai2012 发表于 2018-3-22 00:23

这个必须加精了

Meowmeow 发表于 2018-3-22 00:30

支持一下!!!

reckeyliao 发表于 2018-3-22 00:31

强烈点赞,楼主大人辛苦了!

冰楓丶殘瀷 发表于 2018-3-22 00:32

模拟UA就能搞定

溜玩音乐 发表于 2018-3-22 00:33

楼主牛X!!

小小阿呆 发表于 2018-3-22 00:35

向大神学习。。

zyipk 发表于 2018-3-22 00:42

这种软件一般能用多久?

天青等雨 发表于 2018-3-22 00:49

这个可以的,分享一波再说。:Dweeqw
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: QQ音乐无损歌曲地址分析以及多平台源码