admin管理员组文章数量:1650967
一 、准备工作
二、参数详解
1.clienttime
2.signature
3.encode_album_audio_id
三、结尾
一、准备工作
当你搜索音乐时,通过抓包你会发现会有如下参数
虽然有些参数不知道是什么含义,但是别慌,可以通过对比其他歌曲的参数来确定我们要写的东西
发现clienttime,encode_album_audio_id,signature这三个参数不同,所以只要改变这三个参数就能够获取到你想要的歌曲了。
二、参数详解
1.clienttime
感觉蛮像时间戳的,用浏览器验证一下
这个参数刚好对应n,而n又是上面定义了的,刚好是js里面得到时间戳,下面用python实现这个参数
timestamp = str(time.time() * 1000)[0:13:]
2.signature
可以通过搜索看一下
发现它是由s里的字符串通过d函数加密得来的,最终生成一段32位的密钥,是不是很熟悉呀,这不就是md5吗,而s的值刚好我们也知道,
现在使用python的hashlib库,就可获得密钥了,问题就迎刃而解了。
obj = md5()
obj.update(source_text.encode('utf-8'))
text=obj.hexdigest()
3.encode_album_audio_id
这个参数大概是歌曲的id,我们可以去歌曲搜索页面去抓包看看
确定参数方法也是和前面步骤一样,就不过多叙述,直接给结论
clienttime(和上面参数一样的)
keyword(你要听的歌曲)
signature(和上一个步骤一样都是md5加密)
url = 'https://complexsearch.kugou/v2/search/song?'
signature=Md5('NVPh5oo715z5DIWAeQlhMDsWXXQV4hwtappid=1014bitrate=0callback=callback123clienttime='+timestamp+'clientver=1000dfid=3x7fD93RtFKs0C9yg30SZhjLfilter=10inputtype=0iscorrection=1isfuzzy=0keyword='+song+'mid=aa67be01ec4f35db52689b116d8b8775page=1pagesize=30platform=WebFilterprivilege_filter=0srcappid=2919token=userid=0uuid=aa67be01ec4f35db52689b116d8b8775NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt')
res = requests.get(url,headers=header,params={
'callback':'callback123',
'srcappid':'2919',
'clientver' :'1000',
'clienttime':timestamp,
'mid':'aa67be01ec4f35db52689b116d8b8775',
'uuid' : 'aa67be01ec4f35db52689b116d8b8775',
'dfid':'3x7fD93RtFKs0C9yg30SZhjL',
'keyword':song,
'page':'1',
'pagesize':'30',
'bitrate':'0',
'isfuzzy':'0',
'inputtype':'0',
'platform':'WebFilter',
'userid':'0',
'iscorrection':'1',
'privilege_filter':'0',
'filter':'10',
'token':'',
'appid':'1014',
'signature':signature
}).text
id_ = re.findall(r'"EMixSongID":"(.*?)"',res,re.S)[0]
三、结尾
现在参数都解决了,就可以通过歌曲的接口找到歌曲的url,从而进行下载。
signature = Md5(
'NVPh5oo715z5DIWAeQlhMDsWXXQV4hwtappid=1014clienttime='+timestamp+'clientver=20000dfid=3x7fD93RtFKs0C9yg30SZhjLencode_album_audio_id='+Id()+'mid=aa67be01ec4f35db52689b116d8b8775platid=4srcappid=2919token=userid=0uuid=aa67be01ec4f35db52689b116d8b8775NVPh5oo715z5DIWAeQlhMDsWXXQV4hwt')
url ='https://wwwapi.kugou/play/songinfo?'
res = requests.get(url, headers=header,params={
'srcappid':'2919',
'clientver':'20000',
'clienttime':timestamp,
'mid':'aa67be01ec4f35db52689b116d8b8775',
'uuid':'aa67be01ec4f35db52689b116d8b8775',
'dfid':'3x7fD93RtFKs0C9yg30SZhjL',
'appid':'1014',
'platid':'4',
'encode_album_audio_id':Id(),
'token':'',
'userid':'0',
'signature':signature,
})
#print(res.json())
song_name = res.json()['data']['audio_name']
song_url = res.json()['data']['play_url']
res1 = requests.get(song_url,headers=header)
with open(song_name+'.mp3','wb') as f:
f.write(res1.content)
print("下载已完成")
版权声明:本文标题:【酷狗音乐】简单逆向入门 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729548236a1205900.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论