QQ音乐vkey获取,更新播放url
QQ音乐接口播放经常换,
最开始
url: `http://ws.stream.qqmusic.qq.com/${musicData.songid}.m4a?fromtag=46`
然后
url:`http://ws.stream.qqmusic.qq.com/C100${musicData.songmid}.m4a?fromtag=0&guid=126548448`
现在
url: `http://dl.stream.qqmusic.qq.com/C400${musicData.songmid}.m4a?fromtag=38&guid=5931742855&vkey=${vkey}`
vkey的获取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // 获取歌曲的vkey export function getSongVkey(songmid) { const url = 'https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg' const data = Object.assign({}, { callback: 'musicJsonCallback' , loginUin: 3051522991, format: 'jsonp' , platform: 'yqq' , needNewCode: 0, cid: 205361747, uin: 3051522991, guid: 5931742855, songmid: songmid, filename: `C400${songmid}.m4a` }) return jsonp(url, data) } |
调用
//重组 res.data.list 数据,只拿需要的 _formatSongs(list){ let result = [] list.forEach((item)=>{ // console.log('item',item) // 解构赋值-拿到item 下的 musicData 列表数据 let {musicData} = item //------------- 更新的加上vkey getSongVkey(musicData.songmid).then((res) => { const vkey = res.data.items[0].vkey; if (musicData.songid && musicData.albummid) { result.push(CreatSong(musicData, vkey)) } }) //------------- // console.log('musicData',musicData) // if(musicData.songid && musicData.albummid){ // result.push(CreatSong(musicData)) // } }) return result }
export function CreatSong(musicData,vkey){ //加了一个传参和更新了url return new Song({ id: musicData.songid, mid: musicData.songmid, singer: filterSinger(musicData.singer),//filterSinger 中处理一遍 name: musicData.songname, album: musicData.albumname, duration: musicData.interval, image: `https://y.gtimg.cn/music/photo_new/T002R300x300M000${musicData.albummid}.jpg?max_age=2592000`, url: `http://dl.stream.qqmusic.qq.com/C400${musicData.songmid}.m4a?fromtag=38&guid=5931742855&vkey=${vkey}` }) }
调用调试完成!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
2017-11-20 git pull遇到错误:error: Your local changes to the following files would be overwritten by merge: