QQ音乐api接口梳理

20,066 阅读5分钟

声明:以下接口仅限于学习使用,严禁用于商业用途

推荐歌单

url: https://u.y.qq.com/cgi-bin/musicu.fcg?callback=recom3477297233556247&g_tk=1278911659&jsonpCallback=recom3477297233556247&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0&data={"comm":{"ct":24},"category":{"method":"get_hot_category","param":{"qq":""},"module":"music.web_category_svr"},"recomPlaylist":{"method":"get_hot_recommend","param":{"async":1,"cmd":2},"module":"playlist.HotRecommendServer"},"playlist":{"method":"get_playlist_by_category","param":{"id":8,"curPage":1,"size":40,"order":5,"titleid":8},"module":"playlist.PlayListPlazaServer"},"new_song":{"module":"QQMusic.MusichallServer","method":"GetNewSong","param":{"type":0}},"new_album":{"module":"QQMusic.MusichallServer","method":"GetNewAlbum","param":{"type":0,"category":"-1","genre":0,"year":1,"company":-1,"sort":1,"start":0,"end":39}},"toplist":{"module":"music.web_toplist_svr","method":"get_toplist_index","param":{}},"focus":{"module":"QQMusic.MusichallServer","method":"GetFocus","param":{}}}

参数:

  • format: 数据格式
  • callback:jsonp回调函数名

说明: 如不需要jsonp调用,将format参数值修改为json并且去掉callback参数

歌单详情

url: https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg?type=1&json=1&utf8=1&onlysong=0&disstid=3602407677&format=jsonp&g_tk=5381&jsonpCallback=playlistinfoCallback&loginUin=0&hostUin=0&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

参数:

  • disstid: 歌单id
  • format:数据格式
  • jsonpCallback:jsonp回调函数名

说明: 该接口浏览器不能直接请求,需要携带请求头referer,值为**y.qq.com/n/yqq/playl…

移动web端推荐页面接口

url: https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg?g_tk=701075963&uin=0&format=jsonp&jsonpCallback=callback&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&_=1512548815061

参数:

  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 该接口从QQ音乐移动web端推荐页面抓取的,最后一个_参数代表时间戳。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

最新专辑

url: https://c.y.qq.com/v8/fcg-bin/album_library?g_tk=1278911659&hostUin=0&format=jsonp&jsonpCallback=callback&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&cmd=firstpage&page=0&pagesize=20&sort=1&language=-1&genre=0&year=1&pay=0&type=-1&company=-1

参数:

  • page: 当前页
  • pagesize:每页专辑数量
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

最新专辑(新)

url: https://u.y.qq.com/cgi-bin/musicu.fcg?g_tk=5381&loginUin=0&hostUin=0&format=jsonp&callback=calback&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&data={"albumlib":{"method":"get_album_by_tags","param":{"area":1,"company":-1,"genre":-1,"type":-1,"year":-1,"sort":2,"get_tags":1,"sin":0,"num":20,"click_albumid":0},"module":"music.web_album_library"}}

参数:

  • sin: 当前页
  • num:每页专辑数量
  • format:数据格式
  • callback:jsonp回调函数

说明: 如不需要jsonp调用,将format参数值修改为json并且去掉callback参数

专辑详情

url: https://c.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg?albummid=001IskfD3Vncxo&g_tk=1278911659&hostUin=0&format=jsonp&jsonpCallback=callback&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

参数:

  • albummid:专辑id。可从专辑列表中获取
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

歌手列表

url: https://c.y.qq.com/v8/fcg-bin/v8.fcg?channel=singer&page=list&key=all_all_all&pagesize=100&pagenum=1&g_tk=5381&jsonpCallback=callback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

参数:

  • pagenum:当前页
  • pagesize:每页数量
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

歌手详情

url: https://c.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg?g_tk=5381&jsonpCallback=callback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&singermid=004aRKga0CXIPm&order=listen&begin=0&num=30&songstatus=1

参数:

  • singermid:歌手mid。可从歌手列表里面获取
  • begin:当前页
  • num:每页歌曲数量
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

排行榜

url: https://c.y.qq.com/v8/fcg-bin/fcg_myqq_toplist.fcg?g_tk=5381&uin=0&format=jsonp&jsonpCallback=callback&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&_=1512554796112

参数:

  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 最后一个参数_表示时间戳。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

排行榜详情

url: https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?g_tk=5381&uin=0&format=jsonp&jsonpCallback=callback&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&tpl=3&page=detail&type=top&topid=4&_=1512563984096

参数:

  • topid:排行榜id。可从排行榜接口获取
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 最后一个参数_表示时间戳。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

热搜

url: https://c.y.qq.com/splcloud/fcgi-bin/gethotkey.fcg?g_tk=5381&uin=0&format=jsonp&jsonpCallback=callback&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&_=1513317614040

参数:

  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 最后一个参数_表示时间戳。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

搜索

url: https://c.y.qq.com/soso/fcgi-bin/search_for_qq_cp?g_tk=5381&uin=0&format=jsonp&jsonpCallback=callback&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&w=%E6%AC%A7%E9%98%B3%E6%9C%B5&zhidaqu=1&catZhida=1&t=0&flag=1&ie=utf-8&sem=1&aggr=0&perpage=20&n=20&p=1&remoteplace=txt.mqq.all&_=1512564562121

参数:

  • w:搜索关键字
  • p:当前页
  • n:每页歌曲数量
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 在返回数据中有一个zhida字段里面有一个type字段,其中0表示歌曲、2表示歌手、3表示专辑,其它值靠你们自己去猜了(2333~~~)。最后一个参数_表示时间戳。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

该接口不支持跨域请求

搜索(跨域)

url: https://c.y.qq.com/soso/fcgi-bin/client_search_cp?g_tk=5381&p=1&n=20&w=%E6%AC%A7%E9%98%B3%E6%9C%B5&format=jsonp&jsonpCallback=callback&loginUin=0&hostUin=0&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&remoteplace=txt.yqq.song&t=0&aggr=1&cr=1&catZhida=1&flag_qc=0

参数:

  • w:搜索关键字
  • p:当前页
  • n:每页歌曲数量
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 在返回数据中有一个zhida字段里面有一个type字段,其中1表示歌手、2表示专辑。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

获取歌曲文件

歌曲文件的获取相对来说比较的麻烦 (-_-)。先来两个接口,稍后说明步骤

1、歌曲vkey

url: https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=1278911659&hostUin=0&format=jsonp&callback=callback&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&cid=205361747&uin=0&songmid=000OFXjz0Nljbh&filename=C400000OFXjz0Nljbh.m4a&guid=3655047200

参数:

  • songmid:歌曲mid。可从歌单、专辑、歌手、排行榜接口中获取
  • filename:C400 + songmid + .m4a
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: filename参数值通过songmid拼接而成。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

2、歌曲文件

url: http://dl.stream.qqmusic.qq.com/C400000OFXjz0Nljbh.m4a?vkey=33E6799DB60508E9561F3DDAA6ED69488988B51DE791617A2E34B02A3A48E9CCBD43595DC00D796EB6768D26134AAB1C3AD192C7044DE1A1&guid=3655047200&fromtag=66

参数:

  • vkey:通过歌曲vkey接口获取

获取歌曲播放地址步骤

  1. 先调用歌曲vkey接口,返回的数据如下
callback({
    "code": 0,
    "cid": 205361747,
    "userip": "183.131.116.70",
    "data": {
        "expiration": 80400,
        "items": [
            {
                "subcode": 0,
                "songmid": "000OFXjz0Nljbh",
                "filename": "C400000OFXjz0Nljbh.m4a",
                "vkey": "43DE397B07582DCF13E22045FEFFDE422FA830CFC3A1D894BBED28014EFF4A468D5F02040C87131221BE603CDA41DCBB4B016874ECA51A46"
            }
        ]
    }
})

filename字段为歌曲文件名,vkey字段就是获取歌曲文件需要的vkey了

  1. 使用歌曲文件地址替换调后面的C400开头的一截,替换调获取的vkey

歌词

url: https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric.fcg?g_tk=5381&uin=0&format=jsonp&jsonpCallback=callback&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&nobase64=1&musicid=201773975&songtype=0&_=1513437581324

参数:

  • musicid:歌曲id
  • nobase64:不需要base64编码的格式
  • format:数据格式
  • jsonpCallback:jsonp回调函数

说明: 该接口不能直接调用存在请求限制,请使用后端调用。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

最后

以上接口是最近通过QQ音乐移动web端和pc端抓取,QQ音乐官方可能会更换接口地址或者修改某些参数,不能保证其接口随时的准确性