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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)

@[TOC]


前言

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


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

==打开酷狗官网,在搜索栏中输入凤凰传奇,并按F12进入开发者工具,并选择Network(Network会显示网页和服务器之间的数据交流)。==
在这里插入图片描述
==我们再次按F5进行刷新,让页面与服务器进行交流,会立马显示很多数据:==
在这里插入图片描述
==我们试着找一找这些信息,不要漫无目的的找,我们的目标是api接口的地址,把重点放在地址上面,如果点开只有一小部分,但是还有被折叠的内容,也许就是我们要找的,经过排查,下面两个地址返回的内容包含我们所需要的歌曲信息。==
在这里插入图片描述
==通过比对ui列表的歌曲信息,可知有30条数据,经过对比,确定最终地址。==
在这里插入图片描述
在这里插入图片描述
==确定后,点击Headers,可以看到URL:==
在这里插入图片描述
==浏览器输入看看,是不是我们要找的接口:==
在这里插入图片描述
==果然没错,返回的是密密麻麻的json,我们用工具(在线解析)解析一下:==
在这里插入图片描述
==我们再回到酷狗界面
对照着搜索列表不难总结出:==

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打头的地址,打开后,就是歌曲的详情情况,包括(播放地址,歌词,照片等等)。==
在这里插入图片描述

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的解析和生成


相关文章
|
4天前
【qt】如何读取文件并拆分信息?
【qt】如何读取文件并拆分信息?
9 0
|
4天前
|
网络协议
【qt】TCP客户端信息的接受和发送
【qt】TCP客户端信息的接受和发送
10 0
|
5天前
|
网络协议
【qt】TCP 服务端怎么收到信息?
【qt】TCP 服务端怎么收到信息?
13 0
|
1天前
|
JSON 前端开发 API
【淘系】商品详情属性解析(属性规格详情图sku等json数据示例返回参考),淘系API接口系列
在淘宝(或天猫)平台上,商品详情属性(如属性规格、详情图、SKU等)是商家在发布商品时设置的,用于描述商品的详细信息和不同规格选项。这些信息对于消费者了解商品特性、进行购买决策至关重要。然而,直接通过前端页面获取这些信息的结构化数据(如JSON格式)并非直接暴露给普通用户或开发者,因为这涉及到平台的商业机密和数据安全。 不过,淘宝平台提供了丰富的API接口(如淘宝开放平台API),允许有资质的开发者或合作伙伴通过编程方式获取商品信息。这些API接口通常需要注册开发者账号、申请应用密钥(App Key)和秘钥(App Secret),并遵守淘宝的API使用协议。
|
20天前
|
开发框架 NoSQL 前端开发
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息
在Winform项目和Web API的.NetCore项目中使用Serilog 来记录日志信息
|
5天前
|
数据安全/隐私保护
【qt】获取主机信息系统
【qt】获取主机信息系统
7 0
|
5天前
|
容器
【qt】如何获取网卡的信息?
【qt】如何获取网卡的信息?
7 0
|
1月前
|
JSON 文字识别 数据格式
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
|
8天前
|
JSON JavaScript 前端开发
使用json-server搭建模拟api接口
使用json-server搭建模拟api接口
19 0
|
11天前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)

推荐镜像

更多