QQ音乐API分析记录

时间:2023-01-10 09:08:40

我一直是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:"周杰伦",//歌手名
            url:"http://stream5.qqmusic.qq.com/12680277.wma",歌曲地址
            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分析记录的更多相关文章

  1. QQ音乐API

    今天分享的是QQ音乐API 搜索歌曲API:http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0& amp;n={2}&am ...

  2. 【QQ音乐Api】移花接木 打造自己的音乐电台

    最近突发奇想想做个在线音乐小网页.需求很简单,如下 搜索歌曲 或 歌手 在线播放音乐 借用qq 或者 百度的 音乐接口 需求明确那就直接动手了 我首先尝试的百度音乐,但是不能在线播放(提示forbid ...

  3. 调皮的QQ音乐API:修复无法获取歌单

    上一篇完整版:http://www.cnblogs.com/TwilightLemon/p/7076938.html QQ音乐的API真是太调皮了,获取歌单的API又更换了好多次,喵喵喵 旧版API( ...

  4. 网易云和QQ音乐api

    最近有点闲,听歌的时候遇见好听的想下载却遇到尴尬的事,版权!唉,知道我干什么了吧 网易云音乐 获取排行榜中的歌曲列表 https://music.163.com/discover/toplist?id ...

  5. 使用浏览器抓取QQ音乐接口&lpar;歌曲篇&rpar;

    前言 前面我们获取了歌曲的排行榜的数据,我们现在需要实现歌曲播放 前面我们写了一段函数来得到了回调的数据,现在我们需要使用这一段数据,来实现播放歌曲 完整代码 <!DOCTYPE html&gt ...

  6. QQ音乐的各种相关API

    QQ音乐的各种相关API 分类: oc2014-01-29 15:34 2676人阅读 评论(2) 收藏 举报 基本上论坛里做在线音乐的都在用百度的API,进来发现百度的API不仅歌曲的质量不可以保证 ...

  7. 个人作业2:QQ音乐APP案例分析

    APP案例分析 QQ音乐 选择理由:毕竟作为QQ音乐九年的资深老用户以及音乐爱好者 第一部分 调研 1.第一次上手的体验    我算是很早期的QQ音乐的用户,用QQ音乐七八年,除了体验各方面还不错之外 ...

  8. 音乐API之QQ音乐

    欢迎大家来到我的博客,这是我在博客园写的第一篇文章,但不会是最后一篇,希望大家多多关注我,支持我哦!正文开始,今天我们要讲的是QQ音乐的API,都是来源于官方的地址,以前我也想写一个,但百度谷歌之后都 ...

  9. QQ音乐无损歌曲接口api

    1.打开QQ音乐官网 y.qq.com 2.选择你要的歌曲,进入后查看网址,以虎口脱险这个歌曲为例:http://y.qq.com/#type=song&mid=000Ib8E71sUNi7 ...

随机推荐

  1. NSDate和NSString相互转换

    一.NSDate转NSString //获取系统当前时间 NSDate *currentDate = [NSDate date]; //用于格式化NSDate对象 NSDateFormatter *d ...

  2. 介绍cms

    在这篇文章中,我们先来定义下什么是CMS(Content Management System)系统,在网站中它是如何帮你来变更内容的. 最后我将展示如何登录Umbraco系统. 简单来说CMS是一个系 ...

  3. vlan与交换机端口模式Access,Hybrid,Trunk

    以太网端口有三种链路类型:Access.Hybrid和Trunk.Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口:Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个 ...

  4. 开源软件架构总结之——Bash(readline做输入交互式,词法语法分析,进程交互)

    第3章 The Bourne-Again Shell Bash的主要组件:输入处理,解析,单词展开(word expansion)和其他命令处理,管道(pipeline)中的命令执行.这些组件构成一个 ...

  5. Python通过Manager方式实现多个无关联进程共享数据

    Python官方文档 Python实现多进程间通信的方式有很多种,例如队列,管道等. 但是这些方式只适用于多个进程都是源于同一个父进程的情况. 如果多个进程不是源于同一个父进程,只能用共享内存,信号量 ...

  6. Android网络框架Volley&lpar;实战篇&rpar;

      之前讲了ym—— Android网络框架Volley(体验篇),大家应该了解了volley的使用,接下来我们要看看如何把volley使用到实战项目里面,我们先考虑下一些问题: 从上一篇来看 mQu ...

  7. PHP - 概述

    第1章 PHP概述 学习要点: 1.PHP基础知识 2.PHP的环境配置 3.安装三款主流程序 4.PHP开发工具的选择 5.一个简单的示例 一.PHP基础知识 PHP PHP是一种目前最流行的服务端 ...

  8. ADS的go to命令

    我们有时候在一个函数右键没有看到“go to”选项,这是因为没有Make,要先Make之后才能使用go to 命令

  9. ServiceStack 简单服务搭建

    1:定义数据实体 因为ServiceStack是基于请求参数来定义请求路由的,所以关键的是请求参数一定要定义好,同时可以在请求参数上自定义路由名和请求方式,作为对外接口名 上代码: namespace ...

  10. 协议—IIC

    I2C总线支持任何IC生产过程NMOS CMOS双极性,两线――串行数据 SDA 和串行时钟SCL线在连接到总线的器件间传递信息,每个器件都有一个唯一的地址识别,无论是微控制器.LCD 驱动器.存储器 ...