转载备忘:通过QQ音乐接口获取数据+播放源


作者:Rainy_K1
来源:CSDN
原文:https://blog.csdn.net/zc_xy/article/details/79015319
转载学习使用,版权归原作者所有,转载请附带原文链接

最近正在学习做一个web移动音乐播放器,因为不想做数据库存放数据,所以就学着在QQ音乐的接口获取一些数据

出现其他数据正常,但是无法播放的朋友可以试试这个

获取歌单数据:

url: https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg

//songList.js
export function getDiscList() {
const url = ‘/api/getDiscList’
const data = Object.assign({}, commonParams, {
platform: ‘yqq’,
hostUin: 0,
sin: 0,
ein: 29,
sortId: 5,
needNewCode: 0,
categoryId: 10000000,
rnd: Math.random(),
format: ‘json’
})

return axios.get(url, {
    params: data
}).then((res) => {
    return Promise.resolve(res.data)
})

}

webpack.dev.conf.js
// 通过axios代理获取
/**

  • 通过axios,从真实的QQ音乐的地址发送一个http请求,同时修改一个headers,正确响应,
  • 并将内容返回到前端界面
  • @param {[type]} req [require]
  • @param {String} res [response]
  • @param {Function} params: req.query [参数]
  • @return {[type]} [description]
    */
    apiRoutes.get(’/api/getDiscList’, function(req, res) {
    var url = ‘https://c.y.qq.com/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg
    axios.get(url, {
    headers: {
    referer: ‘https://c.y.qq.com/’,
    host: ‘c.y.qq.com
    },
    params: req.query
    }).then((response) => {
    // 将数据返回给前端
    res.json(response.data)
    }).catch((e) => {
    console.log(e)
    })
    })
    获取轮播图数据:

url: https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg

export function getRecommend() {
const url = ‘https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg
const data = Object.assign({}, commonParams, {
platform: ‘h5’,
uin: 0,
needNewCode: 1
})
return jsonp(url, data, options)
}
获取歌词数据:

url: https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg

export function getDiscList() {
const url = ‘/api/getDiscList’
const data = Object.assign({}, commonParams, {
platform: ‘yqq’,
hostUin: 0,
sin: 0,
ein: 29,
sortId: 5,
needNewCode: 0,
categoryId: 10000000,
rnd: Math.random(),
format: ‘jsonp’
})

return axios.get(url, {
    params: data
}).then((res) => {
    return Promise.resolve(res.data)
})

}
// webpack.dev.conf.js
apiRoutes.get(’/api/lyric’, function(req, res) {
var url = ‘https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg
axios.get(url, {
headers: {
referer: ‘https://c.y.qq.com’,
host: ‘c.y.qq.com
},
params: req.query
}).then((response) => {
var ret = response.data
if (typeof ret === ‘string’) {
var reg = /\w+(({[()]+}))$/
var matches = ret.match(reg)
if (matches) {
ret = JSON.parse(matches[1])
}
}
res.json(ret)
}).catch((e) => {
console.log(e)
})
})
获取歌手信息:

url: https://szc.y.qq.com/v8/fcg-bin/v8.fcg

export function getSingerList() {
const url = ‘https://c.y.qq.com/v8/fcg-bin/v8.fcg
const data = Object.assign({}, commonParams, {
channel: ‘singer’,
page: ‘list’,
key: ‘all_all_all’,
pagesize: 100,
pagenum: 1,
hostUin: 0,
needNewCode: 0,
platform: ‘yqq’,
g_tk: 2001751543
})
return jsonp(url, data, options)
}
获取歌曲详情:

url: https://c.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg

export function getSingerDetail(singerId) {
const url = ‘https://c.y.qq.com/v8/fcg-bin/fcg_v8_singer_track_cp.fcg

const data = Object.assign({}, commonParams, {
    hostUin: 0,
    needNewCode: 0,
    order: 'listen',
    platform: 'h5page',
    begin: 0,
    num: 100,
    songstatus: 1,
    singermid: singerId,
    g_tk: 2001751543
})
return jsonp(url, data, options)

}
获取排行榜数据(抓取移动端):

url: https://c.y.qq.com/v8/fcg-bin/fcg_myqq_toplist.fcg

获取歌单歌曲列表:

url: https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg

获取榜单详情(移动端):

url: https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值