QQ音乐API分析记录
我一直是QQ音乐的用户,最近想做一个应用,想用QQ音乐的API,搜索了很久无果,于是就自己分析QQ音乐的API。 前不久发现QQ音乐出了网页版的,是Flash的,但是,我用iPhone打开这个链接的时候,它居然自动跳转到一个地址了,居然跳转到http://soso.music.qq.com/ipad/player.html,看到这个地址,里面有个“ipad”我的第一反应是“难道是HTML5和JS写的”,我在iPhone上试用了一下,发现确实能用。由此得出,这个iPad版的QQ音乐不是Flash,我在电脑上打开了这个地址,发现可以打开,于是果断动了歪点子。“既然是HTML和JS写的,我果断就可以分析出QQ音乐里面的API啦!!!”于是马上动手看代码。
分析的过程就不说了,很快就初步得出下面的一个API了,通过这个可以获取到指定QQ号的QQ音乐列表:
HTTP请求格式:GET
返回格式:json
API地址:http://qzone-music.qq.com/fcg-bin/fcg_music_fav_getinfo.fcg
|
参数 |
意义 |
备注 |
|
dirinfo |
是否返回用户音乐列表名称与id |
为1时返回,为0时不返回 |
|
dirid |
QQ音乐用户的列表id |
|
|
uin |
用户的QQ号码 |
|
|
p |
随机函数生成的随机数 |
目前没发现有什么作用随便输一个数就好 |
例子:
|
1
|
GET http://qzone-music.qq.com/fcg-bin/fcg_music_fav_getinfo.fcg?dirinfo=1&dirid=1&uin=81549201&p=1212121 |
返回:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
jsonCallback({ code:0, msg:"", uin:81549201, DirList:[ { DirID:1, //列表id DirName:"我最爱听",//列表名 DirShow:1,//是否开放,1是,0否 DirTime:1323078355//时间 } ], SongDirID:2,//返回的列表id SongNum:1,//列表内歌曲数量 CurNum:1,//当前播放歌曲排序 SongList:[ { i:1,//列表内歌曲的id type:13,//类型 id:680277,//歌曲在曲库中id songname:"跨时代",//歌名 singerid:4558,//歌手id singername:"周杰伦",//歌手名 diskid:56705,//专辑id diskname:"跨时代",//专辑名 playtime:194//歌曲长度 } ]}) |
备注:
经过测试,这个API只能获取用户开放的列表,如果用户设定过只有自己可见的话,只能登录后才能获取,
1.获取用户列表
HTTP请求格式:GET
返回格式:json
API地址:http://qzone-music.qq.com/fcg-bin/fcg_music_fav_getinfo.fcg
|
参数 |
意义 |
备注 |
|
dirinfo |
是否返回用户音乐列表名称与id |
为1时返回,为0时不返回 |
|
dirid |
QQ音乐用户的列表id |
|
|
uin |
用户的QQ号码 |
|
|
p |
随机函数生成的随机数 |
目前没发现有什么作用随便输一个数就好 |
例子
GET http://qzone-music.qq.com/fcg-bin/fcg_music_fav_getinfo.fcg?dirinfo=1&dirid=1&uin=81549201&p=1212121
返回
jsonCallback({
code:0,
msg:”",
uin:81549201,
DirList:[
{
DirID:1, //列表id
DirName:"我最爱听",//列表名
DirShow:1,//是否开放,1是,0否
DirTime:1323078355//时间
}
],
SongDirID:2,//返回的列表id
SongNum:1,//列表内歌曲数量
CurNum:1,//当前播放歌曲排序
SongList:[
{
i:1,//列表内歌曲的id
type:13,//类型
id:680277,//歌曲在曲库中id
songname:"跨时代",//歌名
singerid:4558,//歌手id
singername:"周杰伦",//歌手名
url:"http://stream5.qqmusic.qq.com/12680277.wma",歌曲地址
diskid:56705,//专辑id
diskname:"跨时代",//专辑名
playtime:194//歌曲长度
}
]
})
2.返回用户绿钻等级
HTTP请求格式:GET
返回类型:XML/json
API地址:http://qzone-music.qq.com/fcg-bin/fcg_vip_getlevel.fcg
|
参数 |
意义 |
备注 |
|
json |
返回格式 |
为1时json,为0时XML |
|
uin |
用户的QQ号码 |
例子
GET http://qzone-music.qq.com/fcg-bin/fcg_vip_getlevel.fcg?json=1&uin=8549201
返回
getVipLevelCallback(
{
level:3,//绿钻等级
vip:0,//是否绿钻
score:0,//。。。
place:0,//。。。
payway:8,//支付方式
isyear:0//是否年费
}
)
3.随便听听列表
HTTP请求格式:GET
返回类型:json
API地址:http://music.qq.com/musicbox/shop/v3/data/random/{type}/random{num}.js?p={random}
|
参数 |
意义 |
备注 |
|
type |
歌曲类型/曲风 |
具体对应关系待分析 |
|
num |
序号 |
待分析 |
|
random |
随机函数生成的随机数 |
目前没发现有什么作用随便输一个数就好 |
例子:
GET http://music.qq.com/musicbox/shop/v3/data/random/1/random1.js?p=12
返回:
JsonCallback(
{
retcode:”1″,
songlist:
[
{
id:"449205",//id
type:3,//类型
url:"http://stream9.qqmusic.qq.com:0/449205.wma",//试听地址
songName:"稻香",//歌曲名
singerId:"4558",//歌曲id
singerName:"周杰伦",//歌手名
albumId:"36062",//专辑id
albumName:"魔杰座",//专辑名
albumLink:"http://shop.qqmusic.qq.com/static/album/62/album_36062.htm",//专辑链接
playtime:"223"//歌曲长度,单位秒
},
]
}
)
4.获取专辑封面
HTTP请求格式:GET
返回类型:图片
API地址:http://imgcache.qq.com/music/photo/album/{albumid%100}/albumpic_{albumid}_0.jpg
|
参数 |
意义 |
备注 |
|
{albumid%100} |
专辑id对100取余 |
|
|
{albumid} |
专辑id |
例子:
GET http://imgcache.qq.com/music/photo/album/62/albumpic_36062_0.jpg
返回:
周杰伦跨时代专辑封面
5.获取用户QQ空间音乐
HTTP请求格式:GET
返回类型:XML
API地址:http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg
|
参数 |
意义 |
备注 |
|
uin |
QQ号 |
例子:
GET http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?uin=81549201
返回:
<qqmusic>
<curtime>1323091348</curtime>
<issmarter>1</issmarter>
<xmusicnum>1</xmusicnum>
<playlist>
<song>
<xqusic_id>678348</xqusic_id>
<xctype>3</xctype>
<xexpire_time>0</xexpire_time>
<xdesc>
<![CDATA[ ]]>
</xdesc>
<xsong_name>
<![CDATA[ 迷人的危险 - 紫色迷情 ]]>
</xsong_name>
<xsinger_name>
<![CDATA[ Dance Flow ]]>
</xsinger_name>
<xsong_url>
<![CDATA[ http://stream3.qqmusic.qq.com/12678348.wma ]]>
</xsong_url>
<xsong_size>1675201</xsong_size>
<xsong_playtime>206</xsong_playtime>
<xsong_diskname>
<![CDATA[ df 1 ]]>
</xsong_diskname>
<xsong_dissid>57209</xsong_dissid>
<xis_word>0</xis_word>
<xcopy_right>0</xcopy_right>
<xsinger_id>3594</xsinger_id>
</song>
</playlist>
<systemtime>1323091348</systemtime>
</qqmusic>
6.获取歌曲歌词
HTTP请求格式:GET
返回类型:图片
API地址:http://imgcache.qq.com/music/photo/album/songid%100}/albumpic_{songid}_0.jpg
|
参数 |
意义 |
备注 |
|
{songid%100} |
歌曲id对100取余 |
|
|
{songid} |
歌曲id |
例子:
GET http://music.qq.com/miniportal/static/lyric/5/449205.xml
返回:
<lyric>
<![CDATA[
[00:00.50] 稻香
[00:02.03] 稻香
[00:07.24]
[00:10.08]作词:周杰伦 作曲:周杰伦
[00:15.55]
[00:26.63]
[00:30.61]对这个世界如果你有太多的抱怨
[00:34.15]跌倒了 就不敢继续往前走
[00:36.98]为什么 人要这么的脆弱 堕落
[00:41.11]请你打开
]]>
<![CDATA[
电视看看
[00:42.94]多少人为生命在努力勇敢的走下去
[00:46.87]我们是不是该知足
[00:49.38]珍惜一切 就算没有拥有
[00:53.01]
[00:53.90]还记得你说家是唯一的城堡
[00:57.50]随着稻香河流继续奔跑
[01:00.43]微微笑 小时候的梦我知道
[01:05.53]不要哭让萤火虫带著你逃跑
[01:09.33]乡间的歌谣永远的依靠
[01:12.13]回家吧 回到最初的美好
[01:17.68]
[01:40.86]不要这么容易就想放弃 就像我说的
[01:44.21]追不到的梦想 换个梦不就得了
[01:47.43]为自己的人生鲜艳上色
[01:49.69]先把爱涂上喜欢的颜色
[01:51.77]
[01:52.57]笑一个吧 功成名就不是目的
[01:55.54]让自己快乐快乐这才叫做意义
[01:58.52]童年的纸飞机 现在终于飞回我手里
[02:02.90]
[02:04.16]所谓的那快乐 赤脚在田里追蜻蜓追到累了
[02:08.16]偷摘水果被蜜蜂给叮到怕了
[02:11.42]谁在偷笑呢
[02:13.16]我靠着稻草人吹着风唱着歌睡着了
[02:16.62]哦 哦 午后吉它在虫鸣中更清脆
[02:19.53]哦 哦 阳光洒在路上就不怕心碎
[02:22.62]珍惜一切 就算没有拥有
[02:26.57]
[02:27.38]还记得你说家是唯一的城堡
[02:31.13]随着稻香河流继续奔跑
[02:34.05]微微笑 小时候的梦我知道
[02:39.07]不要哭让萤火虫带著你逃跑
[02:42.81]乡间的歌谣永远的依靠
[02:45.74]回家吧 回到最初的美好
[02:49.90]
[02:51.02]还记得你说家是唯一的城堡
[02:54.49]随着稻香河流继续奔跑
[02:57.50]微微笑 小时候的梦我知道
[03:02.70]不要哭让萤火虫带著你逃跑
[03:06.20]乡间的歌谣永远的依靠
[03:09.35]回家吧 回到最初的美好
[03:15.01]
[al:]摩羯座
[ar:]周杰伦
[ti:]稻香
]]>
</lyric>
QQ音乐API分析记录的更多相关文章
- QQ音乐API
今天分享的是QQ音乐API 搜索歌曲API:http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0& amp;n={2}&am ...
- 【QQ音乐Api】移花接木 打造自己的音乐电台
最近突发奇想想做个在线音乐小网页.需求很简单,如下 搜索歌曲 或 歌手 在线播放音乐 借用qq 或者 百度的 音乐接口 需求明确那就直接动手了 我首先尝试的百度音乐,但是不能在线播放(提示forbid ...
- 调皮的QQ音乐API:修复无法获取歌单
上一篇完整版:http://www.cnblogs.com/TwilightLemon/p/7076938.html QQ音乐的API真是太调皮了,获取歌单的API又更换了好多次,喵喵喵 旧版API( ...
- 网易云和QQ音乐api
最近有点闲,听歌的时候遇见好听的想下载却遇到尴尬的事,版权!唉,知道我干什么了吧 网易云音乐 获取排行榜中的歌曲列表 https://music.163.com/discover/toplist?id ...
- 使用浏览器抓取QQ音乐接口(歌曲篇)
前言 前面我们获取了歌曲的排行榜的数据,我们现在需要实现歌曲播放 前面我们写了一段函数来得到了回调的数据,现在我们需要使用这一段数据,来实现播放歌曲 完整代码 <!DOCTYPE html> ...
- QQ音乐的各种相关API
QQ音乐的各种相关API 分类: oc2014-01-29 15:34 2676人阅读 评论(2) 收藏 举报 基本上论坛里做在线音乐的都在用百度的API,进来发现百度的API不仅歌曲的质量不可以保证 ...
- 个人作业2:QQ音乐APP案例分析
APP案例分析 QQ音乐 选择理由:毕竟作为QQ音乐九年的资深老用户以及音乐爱好者 第一部分 调研 1.第一次上手的体验 我算是很早期的QQ音乐的用户,用QQ音乐七八年,除了体验各方面还不错之外 ...
- 音乐API之QQ音乐
欢迎大家来到我的博客,这是我在博客园写的第一篇文章,但不会是最后一篇,希望大家多多关注我,支持我哦!正文开始,今天我们要讲的是QQ音乐的API,都是来源于官方的地址,以前我也想写一个,但百度谷歌之后都 ...
- QQ音乐无损歌曲接口api
1.打开QQ音乐官网 y.qq.com 2.选择你要的歌曲,进入后查看网址,以虎口脱险这个歌曲为例:http://y.qq.com/#type=song&mid=000Ib8E71sUNi7 ...
随机推荐
- MYSQL SQL 审核工具 (inception安装步骤)
http://blog.csdn.net/wulantian/article/category/5825391
- focusky
Focusky,是一款新型多媒体幻灯片制作软件,操作便捷性以及演示效果超越PPT,主要通过缩放.旋转.移动动作使演示变得生动有趣.传统PPT单线条时序,只是一张接一张切换播放,而Focusky打破常规 ...
- mysql索引需要了解的几个注意
板子之前做过2年web开发培训(入门?),获得挺多学生好评,这是蛮有成就感的一件事,准备花点时间根据当时的一些备课内容整理出一系列文章出来,希望能给更多人带来帮助,这是系列文章的第一篇 注:科普文章一 ...
- 细说linux挂载——mount,及其他……
http://forum.ubuntu.org.cn/viewtopic.php?t=257333
- c语言趣味
改编java趣味100题,c语言版 1.C语言版金字塔 #include <stdio.h> int main() { int n,i,j,k; scanf("%d", ...
- Android进阶笔记09:Android开发经验部分总结
1. 在Android library中不能使用switch-case语句访问资源ID:在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案 2. 不能 ...
- dem30下载地址
http://www.gscloud.cn/listdata/listdata_new.shtml?from=&productId=311#Wzg4LFswLDEwLDEsMF0sW10sW1 ...
- [课程相关]homework-04
零.准备工作 这次的作业仍然是结对编程,我们队伍的成员为:梁杰.夏天晗.谢祖三.上次我们是选择了一个时间大家聚在一起进行编程,效果不错,所以这次我们还是决定采用这种方式.由于大家平时比较忙,这周六日我 ...
- Composer PHP 依赖管理工具
composer 是 PHP 用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件. 依赖管理 ...
- 区间求mex的两种方法
区间求mex的两种方法 1.莫队+分块/莫队+二分+树状数组 2.线段树 预处理1-i的sg值(用一个vis数组,一个cur指针) 预处理nxt数组(a[nxt[i]]=a[i]) 枚举左端点l, 考 ...