导航:首页 > 编程语言 > 获取qq音乐json

获取qq音乐json

发布时间:2023-01-17 19:33:53

① 解析qq音乐歌词

以获取的某首歌的歌词为例:
找到response数据,然后执行以下操作:
第一步 : 利用正则去掉多余信息
let json = 'response数据 '.replace(/jsonp1((.*))/,'$1')

第二步
json = JSON.parse(json)

第三步
let lyric = json.lyric

第四步

再查看 : div.firstChild.nodeValue

② c# 调用QQ音乐、酷狗音乐API

直接上例子,最后拼得的url可以用MediaElement控件在线播放

QQ音乐

            https://c.y.qq.com/soso/fcgi-bin/client_search_cp?aggr=1&cr=1&flag_qc=0&p=1&n=2&w=九张机

            //songmid可以从歌曲信息中取到,filename根据songmid生成。比如,songmid是003lghpv0jfFXG,则filename就是前缀加上C400,后缀加上.m4a,即C400003lghpv0jfFXG.m4a。其他字段format、platform、cid、guid可以写死,但都是必须的。

            string response = HttpGet(url, postData);

               //请求地址:https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg

                //请求参数:?format=json205361747&platform=yqq&cid=205361747&songmid=001hwLQi3sUBnL&filename=C400001hwLQi3sUBnL.m4a&guid=4942741185

                Get请求后解析json,保存获取的vkey

            //url的path就是上文中用到的filename。参数中的几个字段都是必须的:guid要和请求token时使用的guid保持一致,vkey即token中的vkey字段,fromtag随意指定一个整数,可以写死为0。

            //我拼的url:http://dl.stream.qqmusic.qq.com/C400001hwLQi3sUBnL.m4a?guid=4942741185&vkey=&fromtag=66

            string url= "http://dl.stream.qqmusic.qq.com/" + filename + "?guid=" + guid + "&vkey=" + vkey + "&fromtag=66";

酷狗音乐-搜索歌曲

            //必选参数:keyword(关键字)歌手或者歌曲名,这里需要转换urldecode

            //可选参数:page(第几页),pagesize(一页的搜索结果数目)

            //请求地址:http://songsearch.kugou.com/song_search_v2

            //请求参数:keyword=%e5%91%8a%e7%99%bd%e6%b0%94%e7%90%83&page=1&pagesize=1&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0

            string kgresponse = HttpGet(kgUrl, kgParmas);

             Get请求后解析json,保存获取的FileHash 、AlbumID 

            //请求地址:http://www.kugou.com/yy/index.php

            //请求参数 :r=play/getdata&hash=" + FileHash + "&album_id=" + AlbumID

                Get请求后解析json,这里获取的play_url贴到浏览器可以直接播放 

            }

③ QQ音乐播放链接获取(2020-04-27)

哈哈之前对接过QQ音乐的可能还在用之前的,例如 http://tsmusic24.tc.qq.com/{$song_id}.mp3 这个就不能使用了,废物不多说,我们直接进入正题。

第一种方法:

搜索歌曲和歌手:

请求地址:https://c.y.qq.com

请求实例: https://c.y.qq.com/soso/fcgi-bin/music_search_new_platform?searchid=53806572956004615&t=1&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=2&w=没那么简单

参数说明是否必须默认值

p分页否默认为1

n请求数量否默认为10

w关键字是无

format格式化否如果用Retrofit的Json解析的话记得一定要format=json

这个请求返回的数据,我们会发现有一个f的:

"f":"649069|没那么简单|4740|黄小琥|55176|简单不简单|2492289|307|8|1|1|12327908|4931284|0|0|0|32998268|6570790|7425738|0|003Ue6Ia32q4gl|0003Aksc3Iisgq|002Gbc9W0oOAS3|0|4009",

f属性中以“|”为分隔符索引为0位置为歌曲id用来获取歌曲和歌词,索引为1是歌曲名称,索引为3是歌手名称,索引为4位置为图片id取对应的专辑图片。

获取歌曲图片:

Image_id:55176

请求模板:"http://imgcache.qq.com/music/photo/album_300/" + (Image_id% 100) + "/300_albumpic_" + Image_id + "_0.jpg";

请求实例: http://imgcache.qq.com/music/photo/album_300/76/300_albumpic_55176_0.jpg

获取歌曲播放链接:

Song_id :649069

首先获取Songmid:

请求模板:"https://c.y.qq.com/v8/fcg-bin/fcg_play_single_song.fcg?songid=" +Song_id + "&tpl=yqq_song_detail&format=jsonp&callback=getOneSongInfoCallback";

请示实例: https://c.y.qq.com/v8/fcg-bin/fcg_play_single_song.fcg?songid=649069&tpl=yqq_song_detail&format=jsonp&callback=getOneSongInfoCallback

返回的数据中,Songmid=mid     ==》Songmid=003Ue6Ia32q4gl

然后我们还得获取歌曲文件名:

请求模板:”https://u.y.qq.com/cgi-bin/musicu.fcg?format=json&data=%7B%22req_0%22%3A%7B%22mole%22%3A%22vkey.GetVkeyServer%22%2C%22method%22%3A%22CgiGetVkey%22%2C%22param%22%3A%7B%22guid%22%3A%22358840384%22%2C%22songmid%22%3A%5B%22"+Songmid+"%22%5D%2C%22songtype%22%3A%5B0%5D%2C%22uin%22%3A%221443481947%22%2C%22loginflag%22%3A1%2C%22platform%22%3A%2220%22%7D%7D%2C%22comm%22%3A%7B%22uin%22%3A%2218585073516%22%2C%22format%22%3A%22json%22%2C%22ct%22%3A24%2C%22cv%22%3A0%7D%7D";

请求实例: https://u.y.qq.com/cgi-bin/musicu.fcg?format=json&data=%7B%22req_0%22%3A%7B%22mole%22%3A%22vkey.GetVkeyServer%22%2C%22method%22%3A%22CgiGetVkey%22%2C%22param%22%3A%7B%22guid%22%3A%22358840384%22%2C%22songmid%22%3A%5B%22003Ue6Ia32q4gl%22%5D%2C%22songtype%22%3A%5B0%5D%2C%22uin%22%3A%221443481947%22%2C%22loginflag%22%3A1%2C%22platform%22%3A%2220%22%7D%7D%2C%22comm%22%3A%7B%22uin%22%3A%2218585073516%22%2C%22format%22%3A%22json%22%2C%22ct%22%3A24%2C%22cv%22%3A0%7D%7D

返回的数据我们可以拿到filename;

 请求模板:”http://ws.stream.qqmusic.qq.com/“+filename;

请求实例: http://ws.stream.qqmusic.qq.com/C400001pNZFJ4Luwsm.m4a

获取歌曲歌词:

Songmid和歌曲播放一样的获取,Songmid=003Ue6Ia32q4gl

请求模板:"https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?songmid="+Songmid+"&format=json&nobase64=1"

请求实例: https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?songmid=003Ue6Ia32q4gl&format=json&nobase64=1

如果请求返回-1310,那么请求头要加上Referer:https://y.qq.com/portal/player.html这个就可以了,因为请求歌词有点特殊,API加了限制,

Referer 作用是代表你请求的来源是那里,https://y.qq.com/portal/player.html 代表QQ音乐的播放网址,所以只能通过他特定来源,才能

请求到数据。

第二种方法:

1.搜索歌曲和歌手:

请求地址:https://c.y.qq.com

请求示例: https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=2&w=没那么简单&format=json

说明:

参数说明是否必须默认值

p分页否默认为1

n请求数量否默认为10

w关键字是无

format格式化否如果用Retrofit的Json解析的话记得一定要format=json

2.搜索专辑:

请求地址:https://c.y.qq.com

请求示例: https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=2&w=没那么简单&format=json&t=8

说明:相对于搜索歌词来说,加了t参数:没有默认值,如果为搜索专辑,则t为8。如果是搜索mv,t=12。

3.获取歌手图片:

请求地址:http://music.163.com

请求示例: http://music.163.com/api/search/get/web?s=黄小琥&type=100

说明:请求后将有歌手图片的字段,请求后的picUrl和img1v1Url就是图片地址

注意:如果请求没数据,就在请求头加上:“User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36”

4.根本albnumMID获取专辑图片:

请求地址:http://y.gtimg.cn

请求示例: http://y.gtimg.cn/music/photo_new/.jpg

说明:请求示例其实有两部分组成,即固定地址(http://y.gtimg.cn/music/photo_new/T002R180x180M000)+albumMid。

5.获取播放地址:

请求地址:https://u.y.qq.com

请求示例: https://u.y.qq.com/cgi-bin/musicu.fcg?format=json&data=%7B%22req_0%22%3A%7B%22mole%22%3A%22vkey.GetVkeyServer%22%2C%22method%22%3A%22CgiGetVkey%22%2C%22param%22%3A%7B%22guid%22%3A%22358840384%22%2C%22songmid%22%3A%5B%22003Ue6Ia32q4gl%22%5D%2C%22songtype%22%3A%5B0%5D%2C%22uin%22%3A%221443481947%22%2C%22loginflag%22%3A1%2C%22platform%22%3A%2220%22%7D%7D%2C%22comm%22%3A%7B%22uin%22%3A%2218585073516%22%2C%22format%22%3A%22json%22%2C%22ct%22%3A24%2C%22cv%22%3A0%7D%7D

说明:更换请求的话,只需要更换songmid后的003Ue6Ia32q4gl即可。

请求后得到数据,再次请求:

播放地址:

方式(1)purl为空时:sip[0]+purl

http://ws.stream.qqmusic.qq.com/C400000HjG8v1DTWRO.m4a?guid=358840384&vkey=&uin=0&fromtag=66

方式(2)purl为不空时,使用filename :sip[0]+filename

http://ws.stream.qqmusic.qq.com/C400001pNZFJ4Luwsm.m4a

6.获取歌词:

请求地址:https://c.y.qq.com

请求示例: https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?songmid=003aAYrm3GE0Ac&format=json&nobase64=1

注意:如果请求返回-1310,那么请求头要加上Referer:https://y.qq.com/portal/player.html这个就可以了,因为请求歌词有点特殊,API加了限制,

Referer 作用是代表你请求的来源是那里,https://y.qq.com/portal/player.html 代表QQ音乐的播放网址,所以只能通过他特定来源,才能

请求到数据。

阅读全文

与获取qq音乐json相关的资料

热点内容
word如何绘制饼状图 浏览:172
w7系统搜索文件夹 浏览:618
java线程变量 浏览:854
苹果电脑word是只读文件 浏览:691
ps5国行备份文件大小 浏览:754
linux恢复删除文件命令 浏览:805
win10家庭版打不开qq文件 浏览:794
女生来例假有哪个app比较好 浏览:66
调用后台接口为什么不显示数据 浏览:363
js判断重复 浏览:422
联通如何切换到网络电视 浏览:191
学编程的优势哪里靠谱 浏览:939
沟通文件 浏览:267
水准测量平差程序 浏览:78
cf如何解决网络误封 浏览:952
折叠式文件夹是什么意思 浏览:796
js弹窗登录注册 浏览:563
怎么把游戏数据备份到另一个手机 浏览:361
微信封杀抢红包神器破解教程 浏览:536
带货数据什么时候更新 浏览:500

友情链接