zoukankan      html  css  js  c++  java
  • 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:"周杰伦",//歌手名
                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>

  • 相关阅读:
    SQL SERVER全面优化-------写出好语句是习惯
    SQL SERVER全面优化-------索引有多重要?
    Expert 诊断优化系列------------------冤枉磁盘了
    SQL语句调优三板斧
    SQL Server死锁产生原因及解决办法 .
    探讨SQL Server并发处理存在就更新七种解决方案
    Entity Framework查询,EF执行SQl
    在Asp.Net中操作PDF – iTextSharp
    postman发送json格式的post请求
    通过配置web.config使WCF向外提供HTTPS的Restful Service
  • 原文地址:https://www.cnblogs.com/SoraAoi/p/3311771.html
Copyright © 2011-2022 走看看