音乐播放器之QQ音乐最新api,亲测可用

news/2024/11/17 6:27:01/

大家好,前段时间重写了自己的音乐播放器,源码放在github上,源码地址和项目地址下面都有,如果喜欢记得star一下哈。

由于之前给大家分享的api虽然可以用,但是版本太旧了,很多也没有了歌词,今天博主给大家分享一个最新的qq音乐api,亲测可用,话不多说直接上代码

最新音乐

        let url = 'https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?g_tk=5381&uin=0&format=json&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&tpl=3&page=detail&type=top&topid=27&_=1519963122923';$.ajax({url:url,type:"get",dataType:'jsonp',jsonp: "jsonpCallback",scriptCharset: 'GBK',//解决中文乱码success: function(data){//最新音乐数据},error:function (e) {console.log('error');}});

这里用的是jsonp跨域,json数据获取成功后可以在数据中的songList数组下找到很多条数据,这些都是最新音乐的信息,打开其中一条,找到data并展开,找到两个重要参数字段songmid以及albummid,分别用获取歌曲源和歌词以及图片用的

推荐音乐

        let url = 'https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?g_tk=5381&uin=0&format=json&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&tpl=3&page=detail&type=top&topid=36&_=1520777874472';$.ajax({url:url,type:"get",dataType:'jsonp',jsonp: "jsonpCallback",scriptCharset: 'GBK',//解决中文乱码success: function(data){//推荐音乐数据},error:function (e) {    console.log('error');}});

同样jsonp获取信息,得到数据和获取最新音乐差不多

歌曲

 
let url = 'https://api.bzqll.com/music/tencent/url?key=579621905&id='+songSmallMessage.songmid+'br=320''

这里的songmid就是上面所说过得啦,拿进来放到audio标签中就能直接听啦

搜索

let val = '青花瓷';
let url = 'https://c.y.qq.com/soso/fcgi-bin/search_for_qq_cp?g_tk=5381&uin=0&format=jsonp&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&w='+val+'&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&_=1520833663464';
$.ajax({url:url,type:"get",dataType:'jsonp',jsonp: "callback",jsonpCallback:'callback',scriptCharset: 'GBK',//解决中文乱码success: function(data){//获取搜索数据},error:function (e) {console.log('error');Indicator.close();}
});

歌词

获取歌词也算是个坎,因为QQ因为设置了防盗链我们需要伪装一下自己,单纯用js恐怕无法实现了,我们可以用后端语言去获取,博主用的是node,里有个request的依赖包,用来修改我们的header,从而得到数据

let url = "https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric_new.fcg?callback=MusicJsonCallback_lrc&pcachetime=1494070301711&songmid="+songId+"&g_tk=5381&jsonpCallback=MusicJsonCallback_lrc&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8¬ice=0&platform=yqq&needNewCode=0";
let options = {url: url,headers: {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36","Accept": "*/*","Referer": "https://y.qq.com/portal/player.html","Accept-Language": "zh-CN,zh;q=0.8","Cookie": "pgv_pvid=8455821612; ts_uid=1596880404; pgv_pvi=9708980224; yq_index=0; pgv_si=s3191448576; pgv_info=ssid=s8059271672; ts_refer=ADTAGmyqq; yq_playdata=s; ts_last=y.qq.com/portal/player.html; yqq_stat=0; yq_playschange=0; player_exist=1; qqmusic_fromtag=66; yplayer_open=1","Host": "c.y.qq.com",}
};
request(options,(error, response, body)=>{if(!error && response.statusCode == 200){console.log(body);}else{console.log("error");}
});

上面获取的数据在body中,长这个样子

"MusicJsonCallback_lrc({\"retcode\":0,\"code\":0,\"subcode\":0,\"lyric\":\"W3RpOuaDs+S9oOS4gOaVtOWknF0NClthcjrlrZnlrZDmtrVdDQpbYWw65oOz5L2g5LiA5pW05aScXQ0KW2J5Ol0NCltvZmZzZXQ6MF0NClswMDowMC4yM13mg7PkvaDkuIDmlbTlpJwgLSDlrZnlrZDmtrUNClswMDowMS4wMF3or43vvJrlrZnlrZDmtrUNClswMDowMS4xNl3mm7LvvJrlrZnlrZDmtrUNClswMDowMS4zM13nvJbmm7LvvJrnjovmn4/puL8NClswMDowMS41Ml3liLbkvZzkurrvvJrotZbkvJ/plIsNClswMDowMS43NF3lkozlo7DnvJblhpkv5ZKM5aOw77ya6LWW5Lyf6ZSLDQpbMDA6MDIuNTdd5b2V6Z+z5biIL+W9lemfs+WupO+8muaxneaWh+WNmi9CaWcgSiBTdHVkaW8NClswMDowMy4wM13mt7fpn7PluIgv5re36Z+z5a6k77ya6LW16Z2WL0JpZyBKIFN0dWRpbw0KWzAwOjAzLjkzXeavjeW4puW3peeoi+W4iC/mr43luKblpITnkIblrqTvvJrlhajnm7jlvaYvT0ttYXN0ZXJpbmcgU3R1ZGlvDQpbMDA6MDQuNDldT1DvvJrljJfkuqznroDljZXlv6vkuZDmlofljJblj5HlsZXmnInpmZDlhazlj7gNClswMDowNS4wMV0KWzAwOjA1LjY0XeaDs+S9oCDmg7PkvaANClswMDowNy4wMV0KWzAwOjA4LjM2XeaDs+S9oOS4gOaVtOWknA0KWzAwOjEwLjcwXUNvbWUgb24NClswMDoxMS41OV0KWzAwOjEyLjU0XeS4iuS4gOenkuaIkeS7rOWkmuS5iOmAjemBpQ0KWzAwOjE1LjUzXeWDj+mmluatjOS4gOagtw0KWzAwOjE3LjUxXQpbMDA6MTguNDNd5bqf5LiA5byg54Gr6L2m56WoIOaKmOiFvuS4gOaZmuS4ig0KWzAwOjIxLjQ2XeWPquS4uuiDveaKseS4gOaKsQ0KWzAwOjIzLjU4XQpbMDA6MjQuMjJd5LiL5LiA56eS5oiR5Lus5aSa5LmI6K6h6L6DDQpbMDA6MjcuNDdd5YOP5a2p5a2Q5LiA5qC3DQpbMDA6MjkuNDddClswMDozMC40NV3ov5nlv4PotbfotbfkvI/kvI8g5LiN5piv5byA546p56yRDQpbMDA6MzMuNTBd5a6g5L2g5oiR5oiS5LiN5o6JDQpbMDA6MzUuNzVdClswMDozNy43NF3mg7PkvaDkuIDmlbTlpJwg5oiR6YO95rKh552hDQpbMDA6NDAuOTZd5YK755yL552A6L+Z5pif56m6DQpbMDA6NDMuMTNdClswMDo0My44NV3miJHnmoTlubznqJog5piv5oiR55qE6aKG6KKWDQpbMDA6NDYuOTdd5LiL5Luk5ZC75L2g6aKd5aS0DQpbMDA6NDkuMTFdClswMDo0OS43OV3niLHmg4XlsLHmmK/or6Ug55So5p2l56ew6aKCDQpbMDA6NTIuOTdd5b+D5Yqo5LiN5Lya5Y+Y5penDQpbMDA6NTUuMTVdClswMDo1NS44M13miYDosJPmhIEg5LiN6L+H5LiA56eN5b2i5a65DQpbMDA6NTguOThd5oiR5rKJ6YaJ5Zyo5byA5aS0DQpbMDE6MDEuMTBdClswMTowNC4wN13mg7PkvaAg5oOz5L2gDQpbMDE6MDUuNThdClswMTowNi45OV3mg7PkvaDkuIDmlbTlpJwNClswMTowOC42NV0KWzAxOjEzLjg0XeayoeeQhueUsea3i+mbqOmHjeeXheS4gOWcug0KWzAxOjE3LjAzXeaIkeWwseaYr+i/meagtw0KWzAxOjE5LjA3XQpbMDE6MTkuODVd5Ye65bGA6ICF55qE5L2Z5q+SIOi/mOmcgOimgemHiuaUvg0KWzAxOjIzLjA0XeaIkeeXm+eahOW+iOWao+W8oA0KWzAxOjI0Ljk3XQpbMDE6MjYuMDRd5Li65L2g5byD55aX5pyJ5LuA5LmI5aS45bygDQpbMDE6MjguOTZd5oiR5bCx5piv6L+Z5qC3DQpbMDE6MzAuODJdClswMTozMS45MV3mmK/ku5bku6zkuI3nn6XpgZMg5oiR5YaF5b+D5aSa5oOzDQpbMDE6MzQuOTdd5Li65LiA5Liq5Lq65Y+R54OnDQpbMDE6MzcuODJdClswMTozOS4yMV3mg7PkvaDkuIDmlbTlpJwg5oiR6YO95rKh552hDQpbMDE6NDIuNDdd5YK755yL552A6L+Z5pif56m6DQpbMDE6NDQuNjhdClswMTo0NS4yNV3miJHnmoTlubznqJog5piv5oiR55qE6aKG6KKWDQpbMDE6NDguNDhd5LiL5Luk5ZC75L2g6aKd5aS0DQpbMDE6NTAuNDhdClswMTo1MS4yMF3niLHmg4XlsLHmmK/or6Ug55So5p2l56ew6aKCDQpbMDE6NTQuNDZd5b+D5Yqo5LiN5Lya5Y+Y5penDQpbMDE6NTYuNjNdClswMTo1Ny4yNV3miYDosJPmhIEg5LiN6L+H5LiA56eN5b2i5a65DQpbMDI6MDAuNDNd5oiR5rKJ6YaJ5Zyo5byA5aS0DQpbMDI6MDIuODddClswMjowNC4xNF3mg7PkvaAg5oOz5L2gIOaDs+S9oA0KWzAyOjA3LjkzXQpbMDI6MDguNDdd5oOz5L2g5LiA5pW05aScDQpbMDI6MTAuMTFd5oOz5L2gIOaDs+S9oCDmg7PkvaANClswMjoxMy44MV0KWzAyOjE1LjA2XeaDs+S9oOS4gOaVtOWknCDmiJHpg73msqHnnaENClswMjoxOC40NF3lgrvnnIvnnYDov5nmmJ/nqboNClswMjoyMC41MF0KWzAyOjIxLjIyXeaIkeeahOW5vOeomiDmmK/miJHnmoTpooboopYNClswMjoyNC40NV3kuIvku6TlkLvkvaDpop3lpLQNClswMjoyNi42MF0KWzAyOjI3LjI0XeeIseaDheWwseaYr+ivpSDnlKjmnaXnp7DpooINClswMjozMC40OF3lv4PliqjkuI3kvJrlj5jml6cNClswMjozMi42M10KWzAyOjMzLjIxXeaJgOiwk+aEgSDkuI3ov4fkuIDnp43lvaLlrrkNClswMjozNi4zOV3miJHmsonphonlnKjlvIDlpLQ=\",\"trans\":\"\"})"

看到这串字符串了吗,不要方,我们先把这些数据拿到前台处理,其实他们是一个json串而已被函数MusicJsonCallback_lrc包着一同返回了,我们可以创建一个MusicJsonCallback_lrc函数并且在对这个字符串进行eval一下的得到的json字符串的lyric中的数据,这个数据是个base64形式的字符我们转换一下就可以看到歌词啦

import Base64 from 'js-base64'eval(data);//把获取的字符串放进去,通过eval再次执行一次代码//创建一个函数MusicJsonCallback_lrc
function MusicJsonCallback_lrc(data){
let lyric = Base64.Base64.decode(data.lyric);
console.log(lyric);//歌词
}

注意一下这里base64的解析用的是js-base64的所以记得先npm install js-base64 一下,然后引入,就可以看到歌词啦

博主自己做了一个音乐播放器如果喜欢记得star一下哈

github: https://github.com/hhzzcc/CMusic

项目地址:

效果图:

这些都是博主去QQ音乐上面一个个挖的以及参考一些大佬的博客得出来的心得,如果写的不好还请大家见谅,如果有疑问底下评论区可以提出来,或者私聊,博主会尽力即使给大家回复!


http://www.ppmy.cn/news/408394.html

相关文章

【web】模拟QQ炫舞例子(键盘)

模拟QQ炫舞例子&#xff08;键盘&#xff09; 效果图 从1个到10个&#xff0c;模拟关卡升级从简单到难&#xff0c;图为10个的 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-U…

qq炫舞手游显示无法连接服务器失败,qq炫舞手游无法连接版本服务器_QQ炫舞手游无法连接版本服务器解决方法_游戏吧...

QQ炫舞手游有玩家遇到了无法连接版本服务器的原因&#xff0c;想必大家都很想知道怎么办吧。下面游戏吧小编就为各位玩家带来了QQ炫舞手游无法连接版本服务器解决方法。 无法连接版本服务器 亲爱的玩家 由于网络问题&#xff0c;服务器于8:30至10:00临时维护&#xff0c;开服进…

面向对象——必敲项目(简化版qq炫舞)

一、项目需求&#xff1a; &#xff08;1&#xff09;QuickHit游戏考验学员键盘输入内容的速度和准确性。 &#xff08;2&#xff09;根据输入速率和正确性将玩家分为不同级别&#xff0c;级别越高&#xff0c;一次显示的字符数越多&#xff0c;玩家正确输入一次的得分也越高。…

炫舞服务器在维护,QQ炫舞手游服务维护中

QQ炫舞手游出现了服务器维护中的问题&#xff0c;想必大家都很想知道到底应该怎么解决吧。下面游戏吧小编就为各位玩家带来了QQ炫舞手游服务器维护中的解决方法&#xff0c;快来看看吧。 QQ炫舞手游服务维护中 官方说由于网络问题&#xff0c;服务器于8:30至10:00临时维护。 但…

90 后董事长的国内首个元宇宙婚礼!网友:不由得想起了 QQ 炫舞和飞车......

在你的设想中&#xff0c;一场特别的婚礼应该是怎样的&#xff1f;拥有独一无二的主题&#xff0c;穿着打破陈规的服饰&#xff0c;还是举办在出其不意的地点&#xff1f; 10 月 8 日&#xff0c;国内一位 90 后董事长的婚礼登上热搜——1994 年出生的中青宝董事长李逸伦&…

unity制作qq炫舞的核心玩法

她 文章目录 一、 介绍二、 重点知识点和游戏逻辑三、 箭头脚本四、 管理箭头脚本五、 管理全局脚本六、 管理玩家输入脚本七、 ui脚本八、 制作动画九、 添加音乐节奏十、 工程下载 一、 介绍 QQ炫舞是由腾讯公司开发的一款音乐舞蹈网游&#xff0c;玩家可以在游戏中扮演自己…

QQ炫舞新上线紫钻Lv9和皇冠贵族Lv11 QQ炫舞紫钻9级图标上线

QQ炫舞新上线紫钻Lv9和皇冠贵族Lv11 QQ炫舞紫钻9级图标上线 即将正式进入2019炫舞节的狂欢月。 ALL PERFECT! 今天为各位揭晓3个2019炫舞节重要发布&#xff0c;以及11月的部分炫舞节狂欢活动。 期待已久且备受关注的炫舞紫钻Lv9、皇冠贵族Lv11将会在本届炫舞节到来时发布&a…

腾讯QQ音乐业务产品规划

腾讯QQ音乐业务产品规划