当前位置:首页 > Windows程序 > 正文

QQ音乐的各种相关API

2021-05-25 Windows程序

基本上论坛里做在线音乐的都在用百度的API,进来发现百度的API不仅歌曲的质量不可以保证,而且返回信息里面只有URL,没有一些相关的属性信息。所以就想方设法弄到了QQ音乐的API

已经用xCode尝试过并且可行的API:
★搜索音乐(歌词)
?value=歌曲名&artist=歌手名&type=qry_song&out=json&page_no=页码&page_record_num=单页记录数量
这个网上搜索不到的,自己用fiddler抓出来的,会返回一个json,注意的是返回的json的key没有用引号引起来而且需要对URL本身和返回的内容使用gb2312编(解)码
看这样一个例子:

 

复制代码

        NSString *title=@"记得";

        NSString *artist=@"林俊杰";

        

        //-使用歌名和歌手执行搜索

        NSString *searchURLString=[NSString stringWithFormat:@"http://shopcgi.qqmusic.qq.com/fcgi-bin/shopsearch.fcg?value=%@&artist=%@&type=qry_song&out=json&page_no=%i&page_record_num=%i",title,artist,1,3];

        searchURLString=[searchURLString stringByAddingPercentEscapesUsingEncoding:NSGB2312StringEndoding];

        NSString *searchResult=[NSString stringWithContentsOfURL:[NSURL URLWithString:searchURLString] encoding:NSGB2312StringEndoding error:nil];

        NSLog(@"%@",searchResult);

 

就会得到这样的不标准json,之后的步骤简单的就说下,截取searchCallBack()中间的内容,对key进行加引号,然后就可以用json解码框架来解码

 

复制代码

searchCallBack({result:"0",msg:"",totalnum:"138",curnum:"3",search:"记得",songlist:[{idx:"1",song_id:"1679711",song_name:"记得",album_name:"上海老歌 CD07",singer_name:"欧阳飞莺(Chu Shia)",location:"8",singer_id:"16343",album_id:"133528",price:"250"},{idx:"2",song_id:"1516144",song_name:"记得",album_name:"小精选",singer_name:"刘浩龙",location:"3",singer_id:"4797",album_id:"122193",price:"250"},{idx:"3",song_id:"1512932",song_name:"记得(《爱情睡醒了》插曲)",album_name:"爱情睡醒了",singer_name:"林俊杰",location:"8",singer_id:"4286",album_id:"121988",price:"320"}]})

 


★下载歌词
搜索完成后,每首歌曲会对应一个price属性,如果这个属性对应的值是250就说明没有歌词,确认有歌词,就可以用下面的接口下载歌词
歌曲id求余100/歌曲id.xml
如果正常会返回这样的xml(json的返回地址没抓到)

看这个例子:
前一个例子中返回的第三首歌有的price属性值为320,表示有歌词,如果下载这首歌的歌词,就用这个url:

腾讯就会送回这样的xml

 

复制代码

<lyric>

<![CDATA[

[ti:记得]

[ar:林俊杰]

[al:288966]

[offset:0]

[00:17.55]谁还记得

[00:19.33]是谁先说永远的爱我

[00:26.03]以前的一句话

[00:29.02]是我们以后的伤口

[00:33.75]过了太久

[00:35.47]没人记得当初那些温柔

[00:42.40]我和你手牵手

[00:45.36]说要一起走到最后

[01:06.37]我们都忘了

[01:11.05]这条路走了多久

[01:15.11]心中是清楚的

[01:17.49]有一天有一天都会停的

[01:23.04]让时间说真话

[01:26.94]虽然我也害怕

[01:31.00]在天黑了以后

[01:33.29]我们都不知道会不会有以后

[01:41.82]谁还记得

[01:43.61]是谁先说永远的爱我

[01:50.24]以前的一句话

[01:53.24]是我们以后的伤口

[01:57.77]过了太久

[01:59.44]没人记得当初那些温柔

[02:06.20]我和你手牵手

[02:09.07]说要一起走到最后

[02:30.40]我们都累了

[02:34.44]却没办法往回走

[02:38.34]两颗心都迷惑

[02:40.69]怎么说怎么说都没有救

[02:46.22]亲爱的为什么

[02:50.21]也许你也不懂

[02:54.11]两个相爱的人

[02:56.65]等着对方先说找分开的理由

[03:05.15]谁还记得爱情开始变化的时候

[03:13.52]我和你的眼中

[03:16.49]看见了不同的天空

[03:21.09]走的太远

[03:22.77]终于走到分岔路的路口

[03:29.40]是不是你和我

[03:32.40]要有两个相反的梦

[03:40.84]谁还记得

[03:42.60]是谁先说永远的爱我

[03:49.38]以前的一句话

[03:52.22]是我们以后的伤口

[03:56.82]过了太久

[03:58.44]没人记得当初那些温柔

[04:05.48]我和你手牵手

[04:08.15]说要一起走到最后

[04:21.42]我和你手牵手

[04:24.36]说要一起走到以后

]]>

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70898.html