Java版本中最好用的网易云音乐、qq音乐api请求工具,你还在忙于如何使用java调音乐api?来看下这里的实现

article/2025/3/4 22:12:15

去年闲着没事干,就封装了下面QQ和Netease音乐的 api ,目的就是通过java可以更便捷的调用,网易云音乐或者qq音乐的api,另外每个接口我都加了注释,对于不懂的参数,通过接口上的注释直接可以查看,不需要一边看在线文档一遍写java代码。

实现了主流音乐api,项目中还允许你快速的去搭建其它第三方音乐api,只需要按照规范写接口即可完成调用

在线文档:

一、QQ音乐API在线文档

二、网易云音乐API在线文档

封装工具的项目源码地址(附快速上手文档):https://github.com/1015770492/yumbo-music-utils


maven中央仓库地址

仓库地址:https://mvnrepository.com/artifact/top.yumbo.music/yumbo-music-utils

引入下面的maven依赖即可快速使用

gav坐标:

<repositories><repository><id>alimaven</id><name>aliyun maven</name><!-- 使用阿里云镜像仓库地址,防止maven去仓库找不到新版本的aliyun镜像仓库地址建议mirrors中也修改,如果已经改好了,则可以去掉这个repositories --><url>https://maven.aliyun.com/repository/central</url></repository>
</repositories><dependencies><!-- https://mvnrepository.com/artifact/top.yumbo.music/yumbo-music-utils --><dependency><groupId>top.yumbo.music</groupId><artifactId>yumbo-music-utils</artifactId><version>1.2.1</version></dependency>
</dependencies>


  作为一只喜欢听音乐的程序员,喜欢边听歌边敲代码、喜欢边听歌边学习。

就在我大二的时候我诞生了要自己做网站的想法,大二的时候我通过阿里云的云翼计划购买了学生云服务器,因为便宜后面我续购了几年一下子买到了2024年
如果你不想花钱买服务器想自己搭建一台高性能高带宽的公网服务器,可以看下我前面写过的一些文章
《时隔一年,我又来捣鼓我家移动光猫了,你还不知道如何获取公网ip吗?》
《家用移动光猫(型号:HS8545M5)利用公网ipv6对外提供公网服务。(100M的宽带,真香 )》
在这里插入图片描述
从大二开始我就一直想做一个属于自己的博客系统,用于自己日后写博客,这个想法我想了非常的久,因此在后面当我学过非常多的知识后,我对于这个想法有了更多幻想,我想在我的博客系统中加入音乐播放功能。

我模仿了:https://netease-music.fe-mm.com/#/music/playlist的界面,采用Vue+ElementUI自己设计了一个音乐播放器

下面是大致布局(响应式布局)

采用的是一个单组件
在这里插入图片描述
下面的Music.vue就是上面这个布局,github地址:https://github.com/1015770492/music
在这里插入图片描述

在我的想法中,我想把 QQ音乐网易云音乐 的 api 进行统一管理,例如搜索一首歌曲的资源,可以统一两个库中的音乐,这样就不容易因为版权问题不能播放。


因此诞生了统一QQ音乐网易云音乐 的 api 的想法。

在我去实现的过程中,我在思考我平常使用的springboot注解例如@Autowired@GetMapping等注解,我想模仿一下springboot中的做法

我想做到这样:

@MusicService(url = "/search/hot",serviceProvider = MusicEnum.NeteaseCloudMusic)
JSONObject jsonObject;// 调用网易云音乐api,将返回的数据注入到这个对象中

当时我想做到的是在局部变量中进行注入,也就是注解作用:@Target({ElementType.LOCAL_VARIABLE}),但是我失败了,因为通过反射只能得到局部变量的名称,却得不到局部变量的值,也就是实现不了将json注入到jsonObject中。


如果能这样做,那么使用起来最方便,可以直接在需要的地方直接加注解注入进去,然后直接使用。


另外我还要解决一个问题,那就是通过反射得到注解信息后,需要在调用它的时候才发请求(懒加载的含义)也就是代码执行到这个注解的时候才去发请求,得到返回的json数据。

这是一个比较麻烦的事情,我的处理方式是,将反射的时机放在了get方法中在get的时候执行反射并且将请求得到的数据返回

一个调用的例子

下面是网易云音乐的一个接口
在这里插入图片描述

import com.alibaba.fastjson.JSONObject;
import top.yumbo.util.music.musicImpl.netease.NeteaseCloudMusicInfo;public class NeteaseCloudMusicDemo {public static void main(String[] args) {// 得到封装网易云音乐信息的工具类final NeteaseCloudMusicInfo neteaseCloudMusicInfo = new NeteaseCloudMusicInfo();// 调用网易云的热搜服务,返回json数据final JSONObject jsonObject = neteaseCloudMusicInfo.searchHot();System.out.println(jsonObject);// 打印得到的json数据}
}

下面是控制台中打印的信息,最后一行就是json对象的打印,前面两行是反射的时候我为了方便debug将调用的方法信息都打印一下

当前执行:class top.yumbo.util.music.musicImpl.netease.NeteaseCloudMusicInfo.searchHot()
请求的相对路径:/search/hot
{"result":{"hots":[{"iconType":1,"first":"四季予你","second":1},{"iconType":1,"first":"有何不可","second":1},{"iconType":1,"first":"我的世界守则","second":1},{"iconType":1,"first":"踏山河","second":1},{"iconType":1,"first":"薛之谦","second":1},{"iconType":1,"first":"张杰","second":1},{"iconType":1,"first":"We Can't Stop","second":1},{"iconType":1,"first":"红黑","second":1},{"iconType":1,"first":"起风了","second":1},{"iconType":1,"first":"林俊杰","second":1}]},"code":200}

项目地址

https://github.com/1015770492/yumbo-music-utils

如果想要调用QQ音乐的api则调用我写好的工具类就行了
也就是替换上面new NeteaseCloudMusicInfo();改为new QQMusicInfo();
  因为两个音乐平台的地址以及功能是不一样的,因此我没有将他们再进行抽象化,准备后面通过类来完成它们的统一。
在这里插入图片描述

也为了日后方便,我计划会将他做成一个工具类通过maven发布到maven仓库中,这个工具或许日后我会把它做成springboot启动器以微服务的方式暴露出去。

项目后期工作

做好了这个架子,后面就非常简单,只需要按照文档

网易云音乐api文档在线地址
QQ音乐api文档在线地址

如下写封装方法即可
以热搜/search/hot为例
在这里插入图片描述

NeteaseCloudMusicInfo类中的定义如下即可,具体代码见github

在这里插入图片描述


http://chatgpt.dhexx.cn/article/UGpj8vgB.shtml

相关文章

QQ音乐API爬取全过程

QQ音乐API爬取全过程 1. 前序&#xff1a; 在以前的QQ音乐的API爬取中&#xff0c;是非常容易的&#xff0c;采用的是jsonp的请求方式&#xff0c;但现在QQ音乐请求已经全部改成XHR的ajax的方式发送请求&#xff0c;所以要爬取QQ音乐的数据就需要破解QQ音乐发送请求的参数。 …

QQ音乐API分析之-加密参数分析(sign计算)

QQ音乐API加密参数分析 1、背景2、QQ音乐sign计算3、Java代码实现4、总结 1、背景 不知道什么时候开始&#xff0c;各家音乐APP都开始对API进行加密&#xff0c;最近一段时间对六大音乐平台的加密算法进行了研究&#xff0c;逆向了网页端、安卓端等等&#xff0c;已经掌握了各…

微信小程序使用QQ音乐API完整实例

微信小程序使用QQ音乐API完整实例 一、QQ音乐常用API接口&#xff1a;1.1、音乐搜索接口&#xff1a;1.2、最新音乐排行榜top1001.3. 随机推荐 二、请求数据格式&#xff08;以搜索为例&#xff09;三、播放链接&#xff08;重点&#xff09;3.1、获取歌曲信息3.2 获取token3.3…

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

大家好&#xff0c;前段时间重写了自己的音乐播放器&#xff0c;源码放在github上&#xff0c;源码地址和项目地址下面都有&#xff0c;如果喜欢记得star一下哈。 由于之前给大家分享的api虽然可以用&#xff0c;但是版本太旧了&#xff0c;很多也没有了歌词&#xff0c;今天博…

步数精灵v3.0运动安卓版

软件介绍: 一键修改微信运动、支付宝运动的步数&#xff0c;让你在家足不出户也能走几万步&#xff0c;天天霸占好友排行榜首位&#xff01; 软件预览图&#xff1a; 软件版本号&#xff1a;3.0 软件是否收费&#xff1a;免费软件/共享软件 运行环境&#xff1a;安卓 软件…

艾出行广告精灵挂机源码+对接码支付即时到账+充值系统+推广下级系统+封装app

简介&#xff1a; 安装说明&#xff1a;请使用win系统 apache php5.6 mysql5.6 进行安装。 1、上传到网站根目录 2、用phpMyadmin导入数据库文件.sql 3、修改数据库链接文件 /APP/Conf/config.php &#xff08;记得不要用记事本修改&#xff0c;否则可能会出现验证码显示不了问…

支付平台架构:终端安全技术实现

前蚂蚁集团宣布即将IPO之后&#xff0c;9月11日晚间&#xff0c;以金融支付起家的京东数科也要上市了。近年来&#xff0c;第三方支付业务的资金规模不断扩大&#xff0c;支付业务量稳步增长&#xff0c;“第三方支付”及“移动支付”已成为年度搜索热词&#xff0c;支付平台作…

键盘精灵_键盘

键盘精灵 They folks over at DasKeyboard loaned me a reviewers copy of their totally blank keyboard about three weeks ago and Ive been typing on it since. 大约在三周前&#xff0c; DasKeyboard的同事们借给了我审阅他们完全空白的键盘的副本&#xff0c;此后我一直…

Telink ble mesh天猫精灵应用

文章目录 1 前言2 完美对接天猫精灵平台2.1 创建新产品2.1.1 添加产品类型2.1.2 添加产品信息2.1.3 添加产品功能 2.2 设置人机交互2.2.1 设置控制口令2.2.2 添加产品展示图2.2.3 添加配网指导2.2.4 添加升级指导2.2.5 添加控制面板 2.3 选择品牌模组2.4 下载并保管好三元组2.5…

[超详细] 2021支付宝集五福【攻略】来了-附自动化脚本

一年一度的支付宝集五福在2月1号的凌晨开始了&#xff0c;虽然一年比一年瓜分的少&#xff0c;但不知不觉集福卡成了过年最佳的消遣娱乐方式了。活动从2月1日开始至1月11日结束。 扫下面这个福字&#xff0c;必得沾福卡&#xff01; 零、额外福利 额外福卡二维码扫福器下载地址…

小程序图标-精灵图

文章来源&#xff1a;刘俊涛的博客 欢迎关注&#xff0c;有问题一起学习欢迎留言、评论。

python调用按键精灵插件_【按键精灵】三分钟教你实现自动解决各种验证码

金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot&#xff0c;Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习…

python调用按键精灵插件_【按键精灵教程】此帖在手,打码不愁

金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot&#xff0c;Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习…

python调用按键精灵插件_按键精灵教程打码平台接入

金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot&#xff0c;Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习…

手机端APP调起支付宝客户端支付!!!!

需要商户登录支付宝后台&#xff0c;在“账户中心-密钥管理”下配置MAPI网关产品密钥&#xff0c;用支付宝官方提供的openssl-1.0.2m工具生成一对私钥和公钥&#xff0c;把公钥配置上去就可以了。不清楚的也可以咨询支付宝的在线客服技术人员&#xff0c;很好的客服 赋代码&am…

支付宝蚂蚁森林php自动,auto.js蚂蚁森林智能脚本使用方法分享 支付宝蚂蚁森林自动辅助...

auto.js蚂蚁森林智能脚本使用方法分享 支付宝蚂蚁森林自动辅助 这个项目是 github上的一个开源项目&#xff0c;作者应该是 SuperMonster &#xff0c;此人在52也有ID 不管怎么说是一个长期维护的开源项目&#xff0c;安全性 跟可用性完全不用担心了 重点就是你玩不玩蚂蚁森林了…

按键精灵初接触

初衷 当目前想模拟人工操作的时候&#xff0c;而且不想去操作底层协议去攻破各大系统漏洞&#xff0c;还想自动化的操作&#xff0c;加流量&#xff0c;加粉丝&#xff0c;加关注&#xff0c;自动挂机等等。解放双手&#xff0c;按键精灵就是你需要的。 目前按键精灵类似软件…

MacOS 按键精灵推荐

前段时间本人被反复枯燥的工作折磨&#xff0c;后突发奇想使用按键精灵。 按键精灵是一款功能强大的自动化操作工具&#xff0c;可以用来完成一系列重复性的操作&#xff0c;比如键盘快捷键的模拟、文本自动输入、鼠标操作的模拟等等&#xff0c;可以大大提高工作效率。 工具…

支付宝集五福攻略

新年到了&#xff0c;支付宝又开启了一年一度的集五福活动 &#xff08;说实话一般情况下得不到多少钱&#xff09;&#xff0c;主要还是图个喜庆&#xff0c;图个高兴。下面小编为你奉上集五福攻略。 AR扫福这张图片大概率可以获得沾沾卡 第二是支付宝分别搜&#xff1a;滴滴…

1.3 JavaScript 输入与输出

1.3 JavaScript 输入与输出 输入 从HTML与用户的交互中输入信息&#xff0c;例如通过input、textarea等标签获取用户的键盘输入&#xff0c;通过click、hover等事件获取用户的鼠标输入。通过Ajax与WebSocket从服务器端获取输入标准输入&#xff0c;参考AcWing 1. A B let fs…