首页 > 其他分享 >基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)

时间:2023-05-25 15:33:34浏览次数:55  
标签:Qt kugou 音乐 接口 酷狗 api 歌曲 歌曲名称 com


2020博客之星年度总评选进行中:请为74号的狗子投上宝贵的一票!

我的投票地址:点击为我投票

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_json



文章目录

  • 前言
  • 1.获取歌曲搜索列表api接口
  • 2.获取单个歌曲详细信息包括歌词
  • 3.总结



前言

首先说明,本教程仅供个人学习,研究使用,禁止用于任何的商业和非法用途。(手动狗头)之所以要研究这个,是因为我想让我的播放器连上网络,而如果自己用数据库保存歌曲的相关信息不太现实,于是想到使用市面上的音乐软件,看看能不能找到api接口。最后声明,仅供学习使用,切莫用于商业用途。


1.获取歌曲搜索列表api接口

打开酷狗官网,在搜索栏中输入凤凰传奇,并按F12进入开发者工具,并选择Network(Network会显示网页和服务器之间的数据交流)。

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_json_02


我们再次按F5进行刷新,让页面与服务器进行交流,会立马显示很多数据:

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_json_03


我们试着找一找这些信息,不要漫无目的的找,我们的目标是api接口的地址,把重点放在地址上面,如果点开只有一小部分,但是还有被折叠的内容,也许就是我们要找的,经过排查,下面两个地址返回的内容包含我们所需要的歌曲信息。

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_音乐_04


通过比对ui列表的歌曲信息,可知有30条数据,经过对比,确定最终地址。

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_Qt_05


基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_C++_06


确定后,点击Headers,可以看到URL:

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_音乐_07


浏览器输入看看,是不是我们要找的接口:

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_音乐_08


果然没错,返回的是密密麻麻的json,我们用工具(在线解析)解析一下:

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_C++_09


我们再回到酷狗界面
对照着搜索列表不难总结出:

AlbumName: "中国美"         				//专辑名称
FileName: "<em>玖月奇迹</em> - 中国范儿"  //文件名称
SingerName: "<em>玖月奇迹</em>"  		//演唱者
SongName: "中国范儿"  		  			//歌曲名称
FileHash: "275B12560EF5C29AAB19537F14FB055E"   //文件名称 用于获取歌曲详细信息
HQDuration: 229    			 			//歌曲名称 秒单位

现在我们得到了搜索列表的api接口:
https://complexsearch.kugou.com/v2/search/song?callback=callback123&keyword=%E7%8E%96%E6%9C%88%E5%A5%87%E8%BF%B9&page=1&pagesize=30&bitrate=0&isfuzzy=0&tag=em&inputtype=0&platform=WebFilter&userid=-1&clientver=2000&iscorrection=1&privilege_filter=0&srcappid=2919&clienttime=1597134090150&mid=1597134090150&uuid=1597134090150&dfid=-&signature=F3F2D045B6F17C6D606353AD42E8C1FF

这里的word 就是我们搜索的内容,而%E7%8E%96%E6%9C%88%E5%A5%87%E8%BF%B9其实是玖月奇迹,我们使用的时候可直接使用中文玖月奇迹,但是本人能力有限,破不了最后signature,只好用了网上前辈留下的api,前辈所说的方法,在现在的酷狗的也不再实用,但是试了一下,接口还是可以用的,找到了两个。

http://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword=歌曲名称&page=1&pagesize=30

http://songsearch.kugou.com/song_search_v2?callback=jQuery191034642999175022426_1489023388639&keyword=歌曲名称&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1489023388641


2.获取单个歌曲详细信息包括歌词

找url的过程我们就跳过了,搜索列表中随便选择一首歌曲,有一个index打头的地址,打开后,就是歌曲的详情情况,包括(播放地址,歌词,照片等等)。

基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)_C++_10

https://wwwapi.kugou.com/yy/index.php?r=play/getdata &callback=jQuery19101743242916291361_1597125296933
&hash=3C3D93A5615FB42486CAB22024945264
&album_id=1645030
&dfid=3duBtm1dPh7H0yHDiX2OD3mw
&mid=a168b7359d24b7bc03957638c51d1cf9
&platid=4
&_=1597125296934
经过试验,发现有几个值是没有用的,可以使用如下的形式:
https://wwwapi.kugou.com/yy/index.php?r=play/getdata
&hash=275B12560EF5C29AAB19537F14FB055E
这里的hash 就是上面的filehash


3.总结

1.搜索列表api接口:

http://mobilecdn.kugou.com/api/v3/search/song?format=json&keyword=歌曲名称&page=1&pagesize=30

http://songsearch.kugou.com/song_search_v2?callback=jQuery191034642999175022426_1489023388639&keyword=歌曲名称&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1489023388641


2歌曲详细信息api接口:

https://wwwapi.kugou.com/yy/index.php?r=play/getdata &hash=275B12560EF5C29AAB19537F14FB055E

这里的275B12560EF5C29AAB19537F14FB055E就是搜索列表api中获取的值。

然后早些时候研究过json的解析,可能对大家有帮助:在java中json的解析和生成。



标签:Qt,kugou,音乐,接口,酷狗,api,歌曲,歌曲名称,com
From: https://blog.51cto.com/u_14770531/6348324

相关文章

  • 【转载】vs设置qt应用程序logo
    1、下载一个ico,拷贝到主函数工程目录下 2、新建一个文件如logo.rc,内容如下:IDI_ICON1ICONDISCARDABLE“logo.ico”3、修改主函数工程文件Main.vcxproj在文件最后添加<ItemGroup><ResourceCompileInclude="logo.rc"/></ItemGroup> 4、生成工程后即可看到ex......
  • MQTT入门DEMO(Java语言)
    目录快速开始准备下载及安装第一次安装EMQX第一次运行EMQX客户端代码快速开始准备MQTT简介EMQX简介下载及安装第一次安装EMQX版本选择EMQX支持多种操作系统,请选择合适您的版本下载。下载地址:https://www.emqx.io/cn/downloads#broker在MicrosoftWindows下安装目前EMQX......
  • QTLtools 协变量文件说明(covariate)
    协变量格式如下所示:注意事项:缺失值用NA表示;接受定性和定量的协变量;定量协变量用数值型表示;定性协变量用非数值型表示,类似于上图的A,B,C。定量和定性的判断依据是有没有等级关系,比如年龄属于定量,比如地区属于定性。需要注意的是,只要是定性的变量,都不能用数值表示,不然会被当成......
  • MQTT实现(Java语言)
    下面是我们Java语言实现的MQTT服务的发布/订阅1、添加Maven依赖<dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.client.mqttv3</artifactId><version>1.1.1</version></dependency......
  • QT输出彩色log
    要输出彩色信息有点类似于html的语法,即在要输出的文字前加上一段颜色指令。指令格式如下\033[*m这里的*就是转义字符,例如我们要输出一段绿色的文字,则qDebug()<<"\033[32m"<<"Hello!";即在输出文字前,先输出一个颜色指令。注意这个指令对后续的输出都会生效,如果想关掉颜色......
  • Qt Creator按顺序编译多个子项目
    0.环境Qt5.3.2mingw482_321.创建子项目这个子项目类似于VisualStudio中解决方案一样的存在,用于管理多个其他子项目。点击文件->新建文件或项目->其他项目->子项目项目->Choose:之后下一步,选择需要的编译器,我这里只有mingw,若有msvc编译器也可选择msvc,不同的编译器生成的静......
  • Qt+QtWebApp开发笔记(三):http服务器动态html连接跳转基础交互
    前言  网页很多时候是动态的,于是本篇文章目标实现一个简答的动态页面—页静态页面互相跳转,点击可以跳转到子页面。 Demo  下载地址  链接:https://pan.baidu.com/s/1bbhcu1XTiaJRYGRQRG5a0g?pwd=1234 HTML基本页面交换  上一篇的“HelloWorld”......
  • 使用QtCreator C++编写串口调试助手
    Qt小白一枚,喜欢嵌入式应用,以前都是使用别人的串口调试助手,学习了C++以后,自己也尝试着做了简单的串口调试助手,分享给大家吧,希望能帮助到大家,如果有错误,请大家指正。话不多说开干!1.首先看一下我设计的界面(我这里比较简单,大家可根据自己的需求进行设计)(界面设计的过程中,每一个控件......
  • Qt桌面应用程序打包
    小白一枚,今天来给大家分享一下如何将自己编写的桌面应用程序进行打包,便于在其他的电脑上进行安装使用。如有错误之处请大家指正,谢谢!好了,废话不多说开干。这里简要的介绍一下使用QtCreator编写的应用程序的打包。1.将Debug模式切换称为ewlease模式进行编译,编译后没有任何错误即......
  • QT5中动态更改图标的方法(转)
    简述在做工程中遇到一个问题,需要根据程序的运行动态的改变显示的图标。在网上找了几篇博客,都失败了,后来自己看UI文件,发现了失败原因,就是设置图标的时候,输入的问文件路径有问题。我摸索出的方法如下。Step1:添加资源文件在工程文件处,右击鼠标》添加新文件》QTresource修改前缀名......