在这里记录一下学习的历程。
心血来潮想做一个无损音质下载的网站,于是就有了此贴。
趁机打个广告(http://haimusic.top)
首先想要实现下载功能首先得有曲库,所以就盯上了歌比较全的QQ音乐,想偷一下接口。百度一番还真有很多帖子详细介绍了一下接口,可谓是一应俱全!下面就记录一下接口。
搜索能力
https://c.y.qq.com/soso/fcgi-bin/client_search_cp?format=json&t=0&loginUin=0&inCharset=GB2312&outCharset=utf-8&qqmusic_guid=31EEDA20AEDF86B10B866C71734C2A0B&qqmusic_ver=1598&catZhida=1&p={1}&n={2}&searchid=B15773D8A9D54EE78614225A6F81406318572&w={0}&flag_qc=0&remoteplace=sizer.newclient.song&new_json=1&auto=1&lossless=0&aggr=1&cr=1&sem=0&force_zonghe=0&pcachetime=1532599754
上POSTMAN 看一下参数
{0}是搜索的关键字
{1}是搜索页数
{2}是每页返回的歌曲数
Get请求没有什么特殊的地方,直接调用就行了
搜索能力返回的数据解析
挑几个重点数据说明一下
list是个数组
data.song.list[].name (歌曲名称)
data.song.list[].singer (歌手数组)
data.song.list[].album.name (专辑名称)
data.song.list[].album.name.mid (专辑id)
data.song.list[].interval (歌曲时长)
data.song.list[].time_public (发行日期)
data.song.list[].id (歌曲ID)
歌词能力
http://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?callback=MusicJsonCallback_lrc&pcachetime=1494070301711&songmid={0}&g_tk=5381&jsonpCallback=MusicJsonCallback_lrc&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8?ice=0&platform=yqq&needNewCode=0
{0}是上面取得的 歌曲id
歌词接口注意歌词接口需要携带设置header
Accept = "*/*";
Referer = "http://y.qq.com/portal/player.html"
"Accept-Language", "zh-CN,zh;q=0.8"
"Cookie", "tvfe_boss_uuid=c3db0dcc4d677c60; pac_uid=1_2728578956; qq_slist_autoplay=on; ts_refer=ADTAGh5_playsong; RK=pKOOKi2f1O; pgv_pvi=8927113216; o_cookie=2728578956; pgv_pvid=5107924810; ptui_loginuin=2728578956; ptcz=897c17d7e17ae9009e018ebf3f818355147a3a26c6c67a63ae949e24758baa2d; pt2gguin=o2728578956; pgv_si=s5715204096; qqmusic_fromtag=66; yplayer_open=1; ts_last=y.qq.com/portal/player.html; ts_uid=996779984; yq_index=0"
会返回一个json数据,包括原歌词和中文歌词。
data.lyric (原歌词)
data.trans (歌词翻译)
接下来就是最关键的部分了播放功能
播放能力
需要获取一个关键的vkey。
VKEY
http://base.music.qq.com/fcgi-bin /fcg_musicexpress.fcg?json=3&loginUin=0&format=jsonp&inCharset=GB2312&outCharset=GB2312¬ice=0&platform=yqq&needNewCode=0
合成歌曲播放url
"http://dl.stream.qqmusic.qq.com/"+prefix+musicId+ "."+extension +"?guid=2095717240&vkey="+vkey+"&uin=0&fromtag=53
参数有以下
标准音质:
prefix = "M500";
extension = "mp3";
高品质音质:
prefix = "M800";
extension = "mp3";
无损音质:
prefix = "F000";
extension = "flac";
这样就实现了歌曲播放能力
封面接口
非常简单
https://y.gtimg.cn/music/photo_new/T002R{0}x{1}M000' + {2} + '.jpg?max_age=2592000
{0}{1}代表长宽
{2}歌曲 id
本文参考了:大象已无形
本文参考了: TwilightLemon
如有错误请说明
仅供参考学习
网友评论