设为首页 加入收藏

TOP

音乐API之QQ音乐(一)
2017-10-13 10:43:38 】 浏览:3352
Tags:音乐 API

欢迎大家来到我的博客,这是我在博客园写的第一篇文章,但不会是最后一篇,希望大家多多关注我,支持我哦!
正文开始,今天我们要讲的是QQ音乐的API,都是来源于官方的地址,以前我也想写一个,但百度谷歌之后都是一些很久以前的,而今天的是我从QQ音乐客户端抓包而来,希望大家喜欢。

本教程的示例代码为C# WPF,其他语言也可以,最关键的还是API嘛。
首先我们需要搜索到音乐,取出他的各类值,才能进行播放
http://59.37.96.220/soso/fcgi-bin/client_search_cp?format=json&t=0&inCharset=GB2312&outCharset=utf-8&qqmusic_ver=1302&catZhida=0&p={0}&n={1}&w={2}&flag_qc=0&remoteplace=sizer.newclient.song&new_json=1&lossless=0&aggr=1&cr=1&sem=0&force_zonghe=0
{0} :当前页码数,从1开始
{1} :每次请求返回的数量
{2} :搜索关键词
我们就能得到一些json,在C#中 我熟悉使用Newtonsoft.Json来操作JSON.
例如这样:

C#示例代码:

 1 Music m = new Music();
 2 
 3 m.MusicName = o["data"]["song"]["list"][i]["name"].ToString();
 4 
 5 string Singer = "";
 6 
 7 for (int osxc = 0; osxc != o["data"]["song"]["list"][i]["singer"].Count(); osxc++)
 8 
 9 { Singer += o["data"]["song"]["list"][i]["singer"][osxc]["name"] + "/"; }
10 
11 m.Singer = Singer.Substring(0, Singer.LastIndexOf("/"));//歌手
12 
13 m.ZJ = o["data"]["song"]["list"][i]["album"]["name"].ToString();//专辑
14 
15 m.MusicID = o["data"]["song"]["list"][i]["mid"].ToString();//音乐ID
16 
17 m.ImageID = o["data"]["song"]["list"][i]["album"]["mid"].ToString();//专辑图ID
18 
19 m.GC = o["data"]["song"]["list"][i]["id"].ToString();//歌词ID
20 
21 m.Fotmat = o["data"]["song"]["list"][i]["file"]["size_flac"].ToString();//是否为FLAC,其实没有多大用
22 
23 m.HQFOTmat = o["data"]["song"]["list"][i]["file"]["size_ogg"].ToString();//HQ
24 
25 m.MV = o["data"]["song"]["list"][i]["mv"]["id"].ToString();//MV iD
26 
27 string Q = "";
28 
29 if (m.Fotmat != "0")
30 
31 Q = "SQ";
32 
33 if (m.HQFOTmat != "0")
34 
35 if (m.Fotmat == "0")
36 
37 Q = "HQ";
38 
39 //判断最高品质(SQ,HQ,标准)

 

其中,Music是我的一个自定义类,你可以直接储存到string中。

获取到了音乐信息,接下来就是使用了。

专辑图 API:

https://y.gtimg.cn/music/photo_new/T002R300x300M000{0}.jpg

{0} :从上面获取到的专辑图ID

 

接下来就是获取歌曲的步骤了,分别有3个品质,这要看歌曲是否支持(HQ,标准,经济),由于SQ的API加入了绿钻检测和QQ登陆检测,所以就无法破解SQ品质的歌曲。

 

经济品质,大小最小,品质最低的,并且获取最简单:

 

http://cc.stream.qqmusic.qq.com/C100{0}.m4a?fromtag=52

{0} :上面获取到的音乐ID

怎么样,很简单把~

 

标准品质,大小一般,品质一般,由于需要KEY所以获取有点难:

首先需要一下几样东西:

 Guid:20D919A4D7700FBC424740E8CED80C5F,用于获取KEY

 

地址:

http://59.37.96.220/base/fcgi-bin/fcg_musicexpress2.fcg?version=12&miniversion=92&key=19914AA57A96A9135541562F16DAD6B885AC8B8B5420AC567A0561D04540172E&guid={guid}

{guid} :就是上面那一串

 

我们可以用一个笨方法将key取出,就是取出中间文本:

前面: "key=\""  后面:"\" speedrpttype"

 

这样我们获取到了key就可以请求歌曲文件啦:

http://182.247.250.19/streamoc.music.tc.qq.com/M500{musicid}.mp3?vkey

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇消息队列MSMQ的使用 下一篇使用CoApp创建NuGet C++静态库包

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目