php计算QQ音乐guid,QQ音乐API分析2017

article/2025/3/4 19:10:13

官网提供API

说明:此API主要针对移动端直接调用QQ音乐API用,API只能在QQAPP内执行,上线时间尚短。

http://y.qq.com/m/api/api.html

自己分析的API

说明:

根据官网https://y.qq.com/分析的API,经过测试,可以使用,测试demo如下,demo流程

1、首先根据关键字搜索歌曲》获取播放key》获取播放地址播放

http://192.168.60.50:8081/shiro/public/music

经分析,也可不用获取播放key,先分类,排行榜》获取歌曲》获取单曲播放地址播放

自己分析api的优缺点

优点:API可直接js跨域直接调用,也可java二次封装,以restful方式提供出去,灵活方便

缺点:API有些参数不明确,接口更新变动情况不明,根据以前来看,2015年的接口,到现在基本可用。

以下的自己分析的部分api以及其他资源

获取热词列表

https://c.y.qq.com/splcloud/fcgi-bin/gethotkey.fcg?g_tk=5381&jsonpCallback=hotSearchKeysmod_top_search&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

获取版本更新日志

说明:版本更新说明

示例:

https://y.qq.com/download/download.js?loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

根据关键字搜索歌曲

地址:https://c.y.qq.com/soso/fcgi-bin/client_search_cp

说明:根据关键字搜索返回歌曲列表、专辑、歌手等信息

主要参数:

w:关键字

p:页码,从1开始

n:当前页的数据条数

示例:

https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.center&searchid=37602803789127241&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w=%E5%88%98%E5%BE%B7%E5%8D%8E&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

根据专辑搜索歌曲

地址:https://c.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg

说明:根据专辑ID搜索歌曲

主要参数:

albummid:专辑ID

示例:

https://c.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg?albummid=002LiyZW27dGjC&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

排行榜分类

https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_opt.fcg?page=index&format=html&tpl=macv4&v8debug=1&jsonCallback=jsonCallback

参数说明:

page=index表示这是排行榜的首页

format=html返回格式是html

debug:debug=1为调试模式,直接返回跨域json格式,其他值直接返回html页面

jsonCallback:此参数可有可无

此接口不能直接返回json格式,只能返回jsonp格式

返回数据格式是jsonp,可直接用jquery调用此接口回去数据

//JQuery JSONP Support

varurl ="http://192.168.0.103:12075/api/test.aspx?id=1&callback=?";

jQuery.getJSON(url, function(data){

//处理返回的json 数据

alert("name:"+ data.name+", Price:"+data.price);

});

专辑图片

90x90的小图

https://y.gtimg.cn/music/photo_new/T002R90x90M0000032gbwN4J7f7c.jpg?max_age=2592000

300x300的大图

https://y.gtimg.cn/music/photo_new/T002R300x300M0000032gbwN4J7f7c.jpg?max_age=2592000

专辑图片文件名解析

T002R:未知

300x300或90x90:图片大小

M000:未知

0032gbwN4J7f7c:专辑ID

.jpg:图片后缀

获取排行榜前多少条歌曲

主要参数:

date:查询日期

如果排行榜是按天统计,日期统计到昨天,格式为“2017-09-12”

如果排行榜是按周统计,统计到上周的星期四,格式为“2017_36”,标示2017年的第36周

具体怎么取,主要取“排行榜分类”接口返回的“update_key”字段值

song_begin:歌曲开始标记,从0开始

song_num:歌曲数量

topid:排行榜ID

https://c.y.qq.com/v8/fcg-bin/fcg_v8_toplist_cp.fcg?tpl=3&page=detail&date=2017-09-12&topid=4&type=top&song_begin=0&song_num=30&g_tk=5381&jsonpCallback=MusicJsonCallbacktoplist&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

获取key

地址:https://c.y.qq.com/base/fcgi-bin/fcg_musicexpress.fcg

说明:此API获取的KEY暂时没用到,猜测可能是已经过期的API

主要参数:guid:随机数,按一定规则生成,具体参考“guid生成规则”

示例:https://c.y.qq.com/base/fcgi-bin/fcg_musicexpress.fcg?json=3&guid=8383045540&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=GB2312&notice=0&platform=yqq&needNewCode=0

获取vkey

地址:https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg

说明:获取播放音乐的vkey,关键API

主要参数:

guid:随机数

songmid:歌曲ID

filename:歌曲文件名,按一定规则生成,具体参考:“歌曲文件名生成规则”

示例:

https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=5381  &loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0&cid=205361747&uin=0&songmid=001Qu4I30eVFYb&filename=C400001Qu4I30eVFYb.m4a&guid=8383045540

获取单曲播放地址

https://c.y.qq.com/v8/fcg-bin/fcg_play_single_song.fcg?songmid=004gPqc32etVgm&tpl=yqq_song_detail&format=jsonp&callback=getOneSongInfoCallback&g_tk=5381&jsonpCallback=getOneSongInfoCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

主要参数:

songmid:歌曲id

获取热门包含此歌曲的热门歌单

https://c.y.qq.com/rcmusic/fcgi-bin/fcg_iphone_music_rec_songlist?jsonpCallback=musicRecSongListCallback&cid=338&ct=20&songid=5110311&uin=10000&p=0.3702123376466666&g_tk=5381&jsonpCallback=musicRecSongListCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

播放歌曲

地址:http://dl.stream.qqmusic.qq.com/歌曲文件名

说明:实际上是带上vkey的文件路径,可放在html5音频标签中播放

主要参数:

vkey:通过“获取vkey”API,取得

guid:按一定规则生成

fromtag:不知道是怎么取得,目前取固定值66,取得以后存一个cookie(名称为qqmusic_fromtag)

示例:

http://dl.stream.qqmusic.qq.com/C400003OUlho2HcRHC.m4a?vkey=49B4DE20FEE0838FF6DBD07FE9925236361D5660C24BADBA91618A7D69A99F4F3754DE863CD187FD360A659795B5817D46B9D5B6C60E0782&guid=8383045540&uin=0&fromtag=66

无返回值,打开链接直接播放

获取专辑简介

https://c.y.qq.com/v8/fcg-bin/fcg_v8_album_info_cp.fcg?albummid=0032gbwN4J7f7c&g_tk=5381&jsonpCallback=getAlbumInfoCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

获取歌曲MV信息

https://c.y.qq.com/qzone/fcg-bin/fcg_mv_getinfo_bysongid.fcg?utf8=1&mids=0021SIVy2hJFCT&uin=10000&p=0.26223891580381453&g_tk=5381&jsonpCallback=JsonCallback&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

mids:歌曲的ID(songmid)

返回信息:

JsonCallback({"code":0,"reportcode":0,"subcode":0,"num":1,"mvlist":[{"songmid":"0021SIVy2hJFCT","songid":203785058,"mvid":1364014,"mvvid":"t0024qgbzmj"}]})

获取歌词

https://c.y.qq.com/lyric/fcgi-bin/fcg_query_lyric.fcg?nobase64=1&musicid=203785058&callback=jsonp1&g_tk=5381&jsonpCallback=jsonp1&loginUin=0&hostUin=0&format=jsonp&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq&needNewCode=0

主要参数:

musicid:歌曲ID(songid)

此API已经不能正常调用,这里可用另外一个API,返回XML格式数据

http://music.qq.com/miniportal/static/lyric/10/4900010.xml

4900010为歌曲ID

10为歌曲ID%100的值

guid生成规则

functiongetGuid() {

vart = (newDate).getUTCMilliseconds();

return_guid = Math.round(2147483647 * Math.random()) * t % 1e10;

}

guid为设置为cookie,获取guid的时候首先从cookie中获取,此cookie过期时间为2038年

document.cookie ="pgv_pvid=" + guid + "; Expires=Sun, 18 Jan 2038 00:00:00 GMT;PATH=/;";

歌曲文件名生成规则

说明:c100、c200、c300、c400为固定值,测试用的是c400;.m4a是歌曲文件名后缀

C100+歌曲ID+.m4a

C200+歌曲ID+.m4a

C300+歌曲ID+.m4a

C400+歌曲ID+.m4a

其他接口略,可在官网实时抓取。。。。。。。。。。。。。。。。。。。。。。。。。。。。

其他相关资料

播放核心JS

https://y.gtimg.cn/music/portal/js/common/pkg/player_module_b5739d0.js

新歌榜:http://music.qq.com/musicbox/shop/v3/data/hit/hit_newsong.js

总榜:http://music.qq.com/musicbox/shop/v3/data/hit/hit_all.js

总结

QQ在线音乐前端采用的nodejs,所有会看到很多这样的代码

a128cabab09dca38c4804641e23976c4.png

这里面的路径是相对路径,路径前缀为

https://y.gtimg.cn/music/portal/

便于分析源码


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

相关文章

java qq音乐接口 api,GitHub - yan123zi/qqMusicApi: qq音乐Api接口

qq音乐 API qq音乐 Node.js API service QQ音乐API koa2 版本, 通过Web网页版请求QQ音乐接口数据, 有问题请提 issue 当前代码仅共学习,不可做商业用途 API结构图 环境要求 因为本项目采用的是koa2, 所以请确保你的node版本是7.6.0 node -v 📦 安装 git…

QQ音乐API整理

最近准备用vue做个音乐播放器,网上找了找音乐API,看了一圈,还是QQ音乐最合适,这里做个整理 这篇博客已经过时了,下面的不用看了。。。。 歌曲搜索 接口地址 var num 3,name 王菲,urlString http://s.music.qq.co…

网易云音乐api、QQ音乐api、黑马电商api、小说api、漫画api接口

网易云音乐接口文档 基础访问地址(api的跟地址):https://autumnfish.cn/ 接口文档地址:https://binaryify.github.io/NeteaseCloudMusicApi/ QQ音乐接口文档 基础访问地址(api的跟地址):http…

QQ音乐API

** QQ音乐API ** 效果图: URL: 通过这条接口查找到这10条歌曲每一条的Songmid https://c.y.qq.com/soso/fcgi-bin/client_search_cp?aggr=1&cr=1&flag_qc=0&p=1&n=10&w=邓紫棋; 这条链接获取到QQ音乐当前使用的地址(QQ音乐不定期换地址,本人跳过这…

2019最新版QQ音乐api调用(原创)

下载QQ音乐任意歌曲方法: 1.首先在QQ音乐任意播放页面 2.进入开发者模式按F12即可 3.选择network,按ctrlR进行筛选多媒体文件 4.优先选择大小排序右击最大的多媒体文件出来快捷菜单,选择如下图的选项即可进入歌曲播放页面 5.如下链接就是播放…

QQ音乐api 最新版,亲测可用

关注公众号,每天都能领红包 最近这个api出现了403问题,已经找到原因了 原因是 歌曲不能再以第一参数当id了 要以倒数第5个 如以上的例子 002qU5aY3Qu24y当id,而且前面要加C100,完整的就是 http://ws.stream.qqmusic.qq.com/C1000…

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

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

QQ音乐API爬取全过程

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

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

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

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

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

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

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

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

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

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

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

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

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

键盘精灵_键盘

键盘精灵 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. 大约在三周前, DasKeyboard的同事们借给了我审阅他们完全空白的键盘的副本,此后我一直…

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号的凌晨开始了,虽然一年比一年瓜分的少,但不知不觉集福卡成了过年最佳的消遣娱乐方式了。活动从2月1日开始至1月11日结束。 扫下面这个福字,必得沾福卡! 零、额外福利 额外福卡二维码扫福器下载地址…

小程序图标-精灵图

文章来源:刘俊涛的博客 欢迎关注,有问题一起学习欢迎留言、评论。

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

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

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

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