1. 程式人生 > >QQ音樂API分析

QQ音樂API分析

qq音樂

QQ音樂API分析

官網提供API

說明:此API主要針對移動端直接調用QQ音樂API用,API只能在QQAPP內執行,上線時間尚短。

http://y.qq.com/m/api/api.html


分析的API

說明:

根據官網https://y.qq.com/分析的API,經過測試,可以使用,測試demo如下,demo流程

1、首先根據關鍵字搜索歌曲》獲取播放key》獲取播放地址播放

https://192.168.60.50:8443/admin/public/music

經分析,也可不用獲取播放key,先分類,排行榜》獲取歌曲》獲取單曲播放地址播放

自己分析api的優缺點

優點:API可直接js跨域直接調用,也可java二次封裝,以restful

方式提供出去,靈活方便

缺點:API有些參數不明確,接口更新變動情況不明,根據以前來看,2015年的接口,到現在基本可用。

以下的自己分析的部分api以及其他資源

獲取熱詞列表

https://c.y.qq.com/splcloud/fcgi-bin/gethotkey.fcg?g_tk=5381&jsonpCallback=hotSearchKeysmod_top_search&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

獲取版本更新日誌

說明:版本更新說明

示例:

https://y.qq.com/download/download.js?loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

根據關鍵字搜索歌曲

地址:https://c.y.qq.com/soso/fcgi-bin/client_search_cp

說明:根據關鍵字搜索返回歌曲列表、專輯、歌手等信息

主要參數:

w:關鍵字

p:頁碼,從1開始

n:當前頁的數據條數

示例:

https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.center&searchid=37602803789127241&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w=%E5%88%98%E5%BE%B7%E5%8D%8E&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

根據專輯搜索歌曲

地址:https://c.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg

說明:根據專輯ID搜索歌曲

主要參數:

albummid:專輯ID

示例:

https://c.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg?albummid=002LiyZW27dGjC&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

排行榜分類

https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_opt.fcg?page=index&format=html&tpl=macv4&v8debug=1&jsonCallback=jsonCallback

參數說明:

page=index 表示這是排行榜的首頁

format=html 返回格式是html

debugdebug=1為調試模式,直接返回跨域json格式,其他值直接返回html頁面

jsonCallback:此參數可有可無

此接口不能直接返回json格式,只能返回jsonp格式

返回數據格式是jsonp,可直接用jquery調用此接口回去數據

//JQuery JSONP Support

varurl = "http://192.168.0.103:12075/api/test.aspx?id=1&callback=?";

jQuery.getJSON(url, function(data){

// 處理返回的json 數據

alert("name:" + data.name+ ", Price:" +data.price);

});

專輯圖片

90x90的小圖

https://y.gtimg.cn/music/photo_new/T002R90x90M0000032gbwN4J7f7c.jpg?max_age=2592000

300x300的大圖

https://y.gtimg.cn/music/photo_new/T002R300x300M0000032gbwN4J7f7c.jpg?max_age=2592000

專輯圖片文件名解析

T002R:未知

300x300或90x90:圖片大小

M000:未知

0032gbwN4J7f7c:專輯ID

.jpg:圖片後綴

獲取排行榜前多少條歌曲

主要參數:

date:查詢日期

如果排行榜是按天統計,日期統計到昨天,格式為“2017-09-12”

如果排行榜是按周統計,統計到上周的星期四,格式為“2017_36”,標示2017年的第36周

具體怎麽取,主要取“排行榜分類”接口返回的“update_key”字段值

song_begin:歌曲開始標記,從0開始

song_num:歌曲數量

topid:排行榜ID

https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?tpl=3&page=detail&date=2017-09-12&topid=4&type=top&song_begin=0&song_num=30&g_tk=5381&jsonpCallback=MusicJsonCallbacktoplist&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

獲取key

地址:https://c.y.qq.com/base/fcgi-bin/fcg_musicexpress.fcg

說明:API獲取的KEY暫時沒用到,猜測可能是已經過期的API

主要參數:guid:隨機數,按一定規則生成,具體參考“guid生成規則”

示例:https://c.y.qq.com/base/fcgi-bin/fcg_musicexpress.fcg?json=3&guid=8383045540&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=GB2312&notice=0&platform=yqq&needNewCode=0

獲取vkey

地址:https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg

說明:獲取播放音樂的vkey,關鍵API

主要參數:

guid:隨機數

songmid:歌曲ID

filename:歌曲文件名,按一定規則生成,具體參考:“歌曲文件名生成規則”

示例:

https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=5381 &loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&cid=205361747&uin=0&songmid=001Qu4I30eVFYb&filename=C400001Qu4I30eVFYb.m4a&guid=8383045540

獲取單曲播放地址

https://c.y.qq.com/v8/fcg-bin/fcg_play_single_song.fcg?songmid=004gPqc32etVgm&tpl=yqq_song_detail&format=jsonp&callback=getOneSongInfoCallback&g_tk=5381&jsonpCallback=getOneSongInfoCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

主要參數:

songmid:歌曲id

獲取熱門包含此歌曲的熱門歌單

https://c.y.qq.com/rcmusic/fcgi-bin/fcg_iphone_music_rec_songlist?jsonpCallback=musicRecSongListCallback&cid=338&ct=20&songid=5110311&uin=10000&p=0.3702123376466666&g_tk=5381&jsonpCallback=musicRecSongListCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

播放歌曲

地址:http://dl.stream.qqmusic.qq.com/歌曲文件名

說明:實際上是帶上vkey的文件路徑,可放在html5音頻標簽中播放

主要參數:

vkey:通過“獲取vkeyAPI,取得

guid:按一定規則生成

fromtag:不知道是怎麽取得,目前取固定值66,取得以後存一個cookie(名稱為qqmusic_fromtag)

示例:

http://dl.stream.qqmusic.qq.com/C400003OUlho2HcRHC.m4a?vkey=49B4DE20FEE0838FF6DBD07FE9925236361D5660C24BADBA91618A7D69A99F4F3754DE863CD187FD360A659795B5817D46B9D5B6C60E0782&guid=8383045540&uin=0&fromtag=66

無返回值,打開鏈接直接播放

獲取專輯簡介

https://c.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg?albummid=0032gbwN4J7f7c&g_tk=5381&jsonpCallback=getAlbumInfoCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

獲取歌曲MV信息

https://c.y.qq.com/qzone/fcg-bin/fcg_mv_getinfo_bysongid.fcg?utf8=1&mids=0021SIVy2hJFCT&uin=10000&p=0.26223891580381453&g_tk=5381&jsonpCallback=JsonCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

mids:歌曲的ID(songmid)

返回信息:

JsonCallback({"code":0,"reportcode":0,"subcode":0,"num":1,"mvlist":[{"songmid":"0021SIVy2hJFCT","songid":203785058,"mvid":1364014,"mvvid":"t0024qgbzmj"}]})

獲取歌詞

https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric.fcg?nobase64=1&musicid=203785058&callback=jsonp1&g_tk=5381&jsonpCallback=jsonp1&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

主要參數:

musicid:歌曲ID(songid)

guid生成規則

function getGuid() {

var t = (newDate).getUTCMilliseconds();

return _guid = Math.round(2147483647 * Math.random()) * t % 1e10;

}

guid為設置為cookie,獲取guid的時候首先從cookie中獲取,此cookie過期時間為2038

document.cookie ="pgv_pvid=" + guid + "; Expires=Sun, 18 Jan 2038 00:00:00 GMT;PATH=/;";

歌曲文件名生成規則

說明:c100c200c300c400為固定值,測試用的是c400.m4a是歌曲文件名後綴

C100+歌曲ID+.m4a

C200+歌曲ID+.m4a

C300+歌曲ID+.m4a

C400+歌曲ID+.m4a

其他接口略,可在官網實時抓取。。。。。。。。。。。。。。。。。。。。。。。。。。。。

其他相關資料

播放核心JS

https://y.gtimg.cn/music/portal/js/common/pkg/player_module_b5739d0.js

新歌榜:http://music.qq.com/musicbox/shop/v3/data/hit/hit_newsong.js

總榜:http://music.qq.com/musicbox/shop/v3/data/hit/hit_all.js


本文出自 “無法言喻” 博客,請務必保留此出處http://limeixiong.blog.51cto.com/1888920/1965641

QQ音樂API分析