qq音乐api接口梳理

注意:由于QQ音乐官方可能会更换接口地址或者修改某些参数,不能保证其接口随时的准确性,此博客只做学习参考使用,严禁用于商业用途。

一、推荐歌单

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参数值修改为jsonp并且去掉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¬ice=0&platform=yqq&needNewCode=0

参数:

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

说明:
该接口浏览器不能直接请求,需要携带请求头referer,值为y.qq.com/n/yqq/playl…对于ajax来说这个请求头是不能设置的,需要后端代理绕过限制。如不需要jsonp调用,将format参数值修改为json并且去掉jsonpCallback参数

移动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¬ice=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¬ice=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¬ice=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¬ice=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¬ice=0&platform=yqq&needNewCode=0

参数:

  • pagenum:当前页
  • pagesize:每页数量
  • formmat:数据格式
  • 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¬ice=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¬ice=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¬ice=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¬ice=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¬ice=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表示专辑,最后一个参数**_**表示时间戳。如不需要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¬ice=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¬ice=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了

2.使用歌曲文件地址替换掉后面的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¬ice=0&platform=h5&needNewCode=1&nobase64=1&musicid=201773975&songtype=0&_=1513437581324

参数:

  • musicid:歌曲id
  • nobase64:不需要base64编码格式,敲重点!!!,一定要等于1,默认是0,如果没加上的话,返回的歌词将会是乱码,加上后就可以得到歌曲的动态歌词,即带有时间的歌词
  • format:数据格式
  • jsonpCallback:jsonp回调函数

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

你可能感兴趣的:(Vue)