QQ音乐Api接口无密钥版

作者: Timeless 更新时间: 阅读量: 167

一、歌曲榜单

Api地址:https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?g_tk=5381&uin=0&format=json&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&tpl=3&page=detail&type=top&topid=27&_=1519963122923

$.ajax({
    url:"https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?g_tk=5381&uin=0&format=json&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&tpl=3&page=detail&type=top&topid=27&_=1519963122923",
    type:"get",
    dataType:'jsonp',
    jsonp: "jsonpCallback",
    success: function(data){

    },
    error:function(XMLHttpRequest, textStatus, errorThrown){
        console.log(textStatus);
    }
});

主要是改topid来切换榜单

下面是一些topid对应的榜单,我就不列举完,可以枚举来尝试

3:欧美榜
4:流行指数
5:内地榜
16:韩国榜
26:热门歌曲
27:最新音乐
29:影视金曲
35:分享榜
36:随机推荐
52:原创榜

1.png

二、歌曲信息

songmid:歌曲id

albumId:专辑id

2.1、歌曲地址

这里的歌曲地址是不需要密钥就可以直接得到的,不过这个方法容易挂,有可能得到的音频返回403禁止访问,所以需要稳定的可以去看看 带密钥版本的

首先拿到了榜单,但是返回的数据里面并没有发现歌曲的文件地址,那我们还是要用扣扣的乐库怎么办,别着急,接着往下看

返回的数据里面虽然直接写出歌曲的文件地址,但是我们可以通过 http://ws.stream.qqmusic.qq.com/C100  +songmid+ .m4a?fromtag=0&guid=126548448

2.png

其中的songmid就是上面榜单接口得到的,拿进来放到audio标签中就能直接听啦

2.2、歌曲专辑图片

图片尺寸300*300,jpg格式

var thumb = "//imgcache.qq.com/music/photo/album_300/"+ (albumId%100) +"/300_albumpic_"+ albumId +"_0.jpg"

albumId也是上面榜单接口返回的数据

3.png

2.3、歌词

这个要处理跨域问题,php或者node.js等等

var lyric = "//music.qq.com/miniportal/static/lyric/"+ songmid%100 +"/" + songmid + ".xml";
//用了个PHP代理解决跨域问题
$.post("proxy.php", 
    { lyric  }, 
    function(data) {
        console.log(data)
    }
);
<?php
    $url=$_POST['lyric  '];
    $res = file_get_contents($url);
    $s = iconv('gbk','UTF-8',$res);//大坑,一是转编码,二是不能直接iconv输出,得有个变量转接
    echo $s;
?>

三、搜索歌曲

地址:https://c.y.qq.com/soso/fcgi-bin/client_search_cp

参数如下:

"ct":24,
"qqmusic_ver":1298,
"new_json":1,
"remoteplace":"txt.yqq.center",
"searchid":53921437530731702,
"t":0,
"aggr":1,
"cr":1,
"catZhida":1,
"lossless":0,
"flag_qc":0,
"p": ${number},    //要获取第几页的数据
"n": ${number},    //每页多少条数据,此版本这个不准了,扣扣那边截取好了
"w": ${string},  //搜索关键词
"g_tk":710171870,
"hostUin":0,
"format":"jsonp",
"inCharset":"utf8",
"outCharset":"utf-8",
"notice":0,
"platform":"yqq",
"needNewCode":0

搜索得到的结果和榜单接口返回的不太一样哦

//response表示返回的数据
var res = response.data.song.list;

"songmid":res[i].file.media_mid,
"songname":res[i].name,
"singer":res[i].singer,
"albumname":res[i].album.name


相关的项目:https://www.timelessq.com/webapp/40-cn.html

随便捣鼓的,想听歌还是去 QQ音乐