怎么使用QQ音乐api搭建个人音乐站点

怎么使用QQ音乐api搭建个人音乐站点

最近经常有人在oschina上追问怎么用QQ音乐接口的问题。
闲得无聊,重新折腾了一下网页版QQ音乐压缩版源码,整理了一个完整音乐站点搭建的过程。

https://y.qq.com/

话不多说,主要分三步,直接上菜。

1.搜索音乐结果。
2.解析结果,拿到f,解析f
3.获取音乐权限vkey

1⃣️. 首先想去拿音乐,以搜索音乐结果为例。qq音乐api接口是:http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0&n={你的pageSize}&aggr=1&cr=1&loginUin={QQ号码}&format=json &inCharset=GB2312&outCharset=utf-8 &notice=0 &platform=jqmi niframe.json&needNewCode= 0&p={当前页码}&catZhida=0 &remoteplace=sizer.newclient.next_song&w={搜索关键字}

例:直接get请求
http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0&n=3&aggr=1&cr=1&loginUin=123456&format=json&inCharset=GB2312&outCharset=utf-8&notice=0&platform=jqminiframe.json&needNewCode=0&p=1&catZhida=0&remoteplace=sizer.newclient.next_song&w=刚好遇见你

response: res.data.song.list 就是返回的音乐列表。
**(这里qq音乐的这个接口需要通过服务器端请求,直接浏览器去拿会跨域问题。或者用爬虫)
以其中一个对象为例:
获取 f 属性

5002383|声音|131|费玉清;李代沫|435987|声音|2102982|223|7|1|0|8959705|3584855|320000|0|0|0|4909876|5329730|0|000wbmA44e4VEM|0040MELG3TS8OW|000yT4Tj0zs7VP|0|4009“

2⃣️.解析结果:先把f属性拆分成一个数组方便取数据。

var data = f.split("|"); 
var img =data[22];//000yT4Tj0zs7VP
//获取音乐ID··
var musicId = data[20];//000wbmA44e4VEM,下一步会用到
//获取音乐封面```
var musicIcon = 'http://imgcache.qq.com/music/photo/mid_album_90/'+ img.charAt(img. length-2)+'/'+img.charAt(img.length-1)+'/'+img+'.jpg';

3⃣️.获取音乐权限vkey:
利用ajax jsonp方式请求:

http://c.y.qq.com/base/fcgi-bin/fcg_musicexpress.fcg?json=3&guid=123456

这里guid和获取musicId时候的传的loginUin={QQ号码} 保持一致

var musicId = {上一步中的获得的musicId}
$.ajax({
    type:"get",
    url:"http://c.y.qq.com/base/fcgi-bin/fcg_musicexpress.fcg?json=3&guid=123456",
    dataType:"jsonp",
    jsonpCallback:"jsonCallback"
}).done(function(rs){
    var key =rs.key //成功获取到vkey;
    var musicURI = 'http://ws.stream.qqmusic.qq.com/C200'+musicId+' .m4a?vkey='+res.key+'&guid=123456&fromtag=30';
    $("body").append('<audio class="hide" id="sound" src="'+musicURI+'" controls="controls"></audio>');
    document.getElementById("sound").play();//到此完成
});

详情见代码。

tips:请不要用于商业途径获利,仅供参考与技术交流分享
练手demo地址:http://www.cqudingx.xyz/jade/chat

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调用 QQ 音乐官方 API 可以实现在安卓应用中播放、搜索音乐等功能。下面是一个简单的示例来演示如何调用 QQ 音乐官方 API: 1. 首先,在你的安卓项目中添加网络访问权限,可以在 AndroidManifest.xml 文件中添加以下代码: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 2. 在你的项目中创建一个类来处理网络请求,可以使用 OkHttp 库来简化网络请求的过程。你可以在 build.gradle 文件中添加以下依赖: ```groovy implementation 'com.squareup.okhttp3:okhttp:4.9.0' ``` 3. 在你的代码中,使用以下代码发送网络请求调用 QQ 音乐官方 API: ```java import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; // ... OkHttpClient client = new OkHttpClient(); String url = "https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=10&w=歌曲名"; Request request = new Request.Builder() .url(url) .build(); client.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { // 请求失败处理 } @Override public void onResponse(Call call, Response response) throws IOException { // 请求成功处理 String responseData = response.body().string(); // 解析返回的数据,并进行相应的操作 } }); ``` 以上代码是一个简单的搜索音乐的示例,你可以根据 QQ 音乐官方 API 的文档,调用其他接口实现更多功能。记得根据官方文档获取正确的 API 地址和参数。 请注意,这只是一个简单的示例,并不能涵盖所有的细节和错误处理。在实际应用中,你需要考虑到网络请求的安全性、错误处理、线程管理等问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值