QQ音乐API分析

官网提供API

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

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

分析的API

说明:

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

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

https://192.168.60.50:8443/admin/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)

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

java qq音乐接口 api,QQ音乐API分析(示例代码)相关推荐

  1. java printwriter 文件,java使用PrintWriter写文件,javaprintwriter写,下面示例代码演示使用Pr...

    java使用PrintWriter写文件,javaprintwriter写,下面示例代码演示使用Pr 下面示例代码演示使用PrintWriter方法写文件. PrintWriter的构造函数接受Fil ...

  2. 第一篇:java调用公共数据接口:QQ在线状态查询(java调用http接口)

    java调用公共数据接口: webxml 前言 一.以webxml上的一个接口为案例 二.查看接口文档 1.查看支持的调用方式 2.确认接口地址与参数 三.编码(找代码直接跳这里!) 1.配置Rest ...

  3. PHP调用QQ互联接口实现QQ登录网站

    调用QQ登录接口,首先要到QQ互联完善开发者认证信息,并通过审核,然后创建一个网站应用,获得APP ID和APP Key,通过审核后即可调用基本接口get_user_info(获得用户信息),实现QQ ...

  4. 【小程序开发必备】微信小程序常用API全介绍,附示例代码和使用场景

    文章目录 1.网络请求相关API 1.1 wx.request 1.2 wx.uploadFile 1.3 wx.downloadFile 1.4 wx.connectSocket 2.页面跳转相关A ...

  5. java异常判断_Java异常退出条件的判断示例代码

    无论是功能性代码还是算法性代码,程序都是一系列流程的合集 既然是流程就分为:一般流程和异常流程: 一般流程保证了基本功能: 异常流程则是对程序稳定性的保证,不能因为一些非法输入,项目就挂了: 注意,布 ...

  6. java 静态初始化数据_Java 静态数据初始化的示例代码

    无论创建多少个对象,静态数据都只占用一份存储区域.static关键字不能应用于局部变量,因此它只能作用于域.如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本类型的标准初始值:如 ...

  7. java实现图像对比度增强_java图片对比度调整示例代码

    java图片对比度调整示例代码 发布于 2020-12-31| 复制链接 摘记: 前言本文主要给大家介绍了关于java图片对比度调整的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍 ...

  8. Java编写优雅接口,看看别人后端API接口写得,那叫一个优雅!

    在分布式.微服务盛行的今天,绝大部分项目都采用的微服务框架,前后端分离方式.题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟:以前后端人员瞧不起前端人员,那 ...

  9. java 门禁接口_门禁API接口文档.md

    # "闪开"API接口说明 [toc] #### 1:小区注册 使用之前必须先注册小区信息,获得小区的ID * #####接口调用请求说明 http请求方式: POST(请使用ht ...

  10. java调用go接口_go语言调用API实线分词

    1.确保已经安装go语言 2.代码实现 B.代码: package pullword import ( "bufio" "fmt" "net" ...

最新文章

  1. 【HDU】Flipper 3328 (stack + 模拟 + 英语阅读)
  2. ifstream note
  3. C++数组与指针回顾总结
  4. gulp 项目构建 代码压缩与混淆
  5. 入驻支付宝开放平台并创建应用的基本流程
  6. 一不小心,知乎炸了!
  7. 文件服务器复杂权限,运用技巧:如何提高文件服务器权限?
  8. [设计模式-行为型]模板方法模式(Template Method)
  9. linux命令(56):环境变量:/etc/profile、/etc/bashrc 、~/.profile、~/.bashrc
  10. 小怪掉落碎片及下级符文(灵晶)一览
  11. 如果计算机正执行屏幕保护程序 当用户,计算机1级考试参考试题(含答案)章节1.doc...
  12. 斐波那契数列的java代码
  13. 移动通信技术的未来发展趋势分析
  14. 联想V470 安装win7系统 经验
  15. ping计算机名获取IP
  16. Encrypted traffic 加密流量分类任务进展综述
  17. 711气象雷达电路图
  18. 查找数字的下标--二分法
  19. linux在root安装软件,避免使用root安装软件
  20. Python3 网易126邮箱收发邮件

热门文章

  1. c++重复代码检查工具
  2. 纯CSS3代码制作六边形图形教程
  3. Element-ui表格中图片放大简便方法
  4. 58条模拟、数字电路基础知识总结
  5. 大数据资料全解析(352个案例+大数据交易白皮书+国内外政策汇篇)
  6. 国际网页短信平台通道源码搭建软件后台定制-移讯云短信系统
  7. 设计模式(四)行为型之模板方法模式、策略模式、命令模式、责任链模式
  8. Linux 下安装交叉编译工具链
  9. Python 代码练习
  10. 中国渔船数量不断下降,海洋渔船下降速度较慢「图」