根据这些加上反向代理你就可以做一个爬虫播放器,但是 请勿商用
本文只是讲如何寻找接口,滥用别人接口导致的后果自行负责。
qq音乐api寻找
寻找qq音乐接口
寻找别人的接口其实也就是有点像破解,请勿商用
推荐用火狐浏览器来找
根据网络请求寻找
打开网页版的qq音乐
F12后选中网络模块
搜索歌曲
搜索一首歌曲
在网络请求中找到和歌曲列表相似的数据
如下
播放歌曲
获取vkey和播放地址
获取音频
去除不必要的请求数据
使用Postman或者在浏览器中编辑重发
浏览器编辑重发
postman(网络请求工具)
我们讲参数一个一个的去掉,就是不携带此参数,看看发生什么
最后发现只需要三个参数即可请求
https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=10&w=我爱你
但是new_json参数会影响json的返回格式
加不加的对比
左为不加,右为加
参数详解
歌曲搜索
GET
https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=10&w=我爱你&new_json=1
请求参数
p和n为分页参数 p为页数,n为每页的个数,w为搜索歌曲名称
new_json参数会影响json的返回格式
返回参数
不加new_json
主要参数
albumname歌曲名
media_mid/songmid 歌曲播放所需id
singer 歌手信息
加new_json
album歌曲信息(其中name歌曲名)
file 歌曲文件信息(其中media_mid 歌曲播放所需id)
singer 歌手信息
获取音乐vkey
GET
https://u.y.qq.com/cgi-bin/musicu.fcg?data={“req”:{“module”:“CDN.SrfCdnDispatchServer”,“method”:“GetCdnDispatch”,“param”:{“guid”:"",“calltype”:0,“userip”:""}},“req_0”:{“module”:“vkey.GetVkeyServer”,“method”:“CgiGetVkey”,“param”:{“guid”:"",“songmid”:[“001hK3yu13DDjM”],“songtype”:[0],“uin”:“0”,“loginflag”:1,“platform”:“20”}},“comm”:{“uin”:0,“format”:“json”,“ct”:24,“cv”:0}}
看着是不是很吓人
只需要改变一个参数songmid
我个人觉得如果不加guid或者uin会被qq音乐记录请求,请求不带cookie估计也会
https://u.y.qq.com/cgi-bin/musicu.fcg?data={“req”:{“module”:“CDN.SrfCdnDispatchServer”,“method”:“GetCdnDispatch”,“param”:{“guid”:"",“calltype”:0,“userip”:""}},“req_0”:{“module”:“vkey.GetVkeyServer”,“method”:“CgiGetVkey”,“param”:{“guid”:"",“songmid”:[“001hK3yu13DDjM”],“songtype”:[0],“uin”:“0”,“loginflag”:1,“platform”:“20”}},“comm”:{“uin”:0,“format”:“json”,“ct”:24,“cv”:0}}
请求参数
songmid:音乐播放所需的id
guid随便一个数字,但是必须要用
猜测返回的purl是加密的,包括guid,所以播放时的guid和此处guid要一致,由于purl返回的时候包括guid所以可以在获取播放音频时忽略此提醒,按照下面讲解请求即可
如果是会员或者需要权限歌曲,不带个人信息会返回没有权限
返回参数
成功时
分req0和req
我们请求用的
所以主要会使用req_o中的参数
如下
我们只需要拿到两个参数
播放源:在sip中 一般为两个
播放地址url:在purl中
也就是拿到sip和purl我们就可以请求歌曲了
失败时
并不是请求失败而是没有权限
如果想破解vip歌曲,请找个vip账号测试,但是请勿商用
有兴趣的小伙伴可以研究下req请求
歌曲音频获取
GET
其实就是我们上一步获取vkey时拿到的参数进行拼接
sip中的一个加上purl
比如
我们使用sip中的/isure.stream.qqmusic.qq.com
和purlC4000013uCFc0CZ4NY.m4a?guid=xxxx&vkey=F5F08D2777F326A24F98ACE37E914ADE175908292D49954A3E81C3134B1531EB6C4514796A6DA41BE1F9385EF260B4C681C707A5D6D02E0C&uin=3994&fromtag=66
如果你在上一步请求中
它返回的就是
C4000013uCFc0CZ4NY.m4a?guid=0&vkey=F5F08D2777F326A24F98ACE37E914ADE175908292D49954A3E81C3134B1531EB6C4514796A6DA41BE1F9385EF260B4C681C707A5D6D02E0C&uin=3994&fromtag=66
如果是123就返回的时
http://isure.stream.qqmusic.qq.com/C4000013uCFc0CZ4NY.m4a?guid=123&vkey=A349CEDB5B742C09C4B8759B72D9BA4823F4B65CB6C52E85E15E8F6E1206B6CB089BB87B7E6C4E7077648B4EA39DD707614BF322D3E4CE66&uin=0&fromtag=66
拼接成
http://isure.stream.qqmusic.qq.com/C4000013uCFc0CZ4NY.m4a?guid=123&vkey=A349CEDB5B742C09C4B8759B72D9BA4823F4B65CB6C52E85E15E8F6E1206B6CB089BB87B7E6C4E7077648B4EA39DD707614BF322D3E4CE66&uin=0&fromtag=66
返回如下
根据这些加上反向代理你就可以做一个爬虫播放器,但是 请勿商用
本文只是讲如何寻找接口,滥用别人接口导致的后果自行负责。
大家好,我是代码哈士奇,是一名软件学院网络工程的学生,因为我是“狗”,狗走千里吃肉。想把大学期间学的东西和大家分享,和大家一起进步。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只在csdn这一个平台进行更新,博客主页:https://blog.csdn.net/qq_42027681。
未经本人允许,禁止转载
后续会推出
前端:vue入门 vue开发小程序 等
后端: java入门 springboot入门等
服务器:mysql入门 服务器简单指令 云服务器运行项目
python:推荐不温卜火 一定要看哦
一些插件的使用等
大学之道亦在自身,努力学习,热血青春
如果对编程感兴趣可以加入我们的qq群一起交流:974178910
有问题可以下方留言,看到了会回复哦