Eighteen Blog

@TOC

更新

2020/6/03

  1. 接口已恢复。感谢蒟蒻…的帮助, 才能这么快解决这个问题。有兴趣可以查看他的关于sign获取的文章
  2. 之前分出了ts的分支,主要开始维护ts分支,master可能会更新的晚一点,如果需要自己启服务的话可以下载ts分支,有问题也可以回复,我可以协助一下。

    2020/5/27

  3. 发现获取vkey的接口现在获取不到了,应该是官方换了请求方式,目前播放地址受到了影响,无法播放,修复时间待定。

    2020/5/7

  4. 之前要使用api的话只能通过服务端请求,嗯嗯..想了想,现在支持跨域了。还是仅测试使用,服务器太渣渣。。经不起造。

    2020/2/25

  5. 最近在做新的项目,叫小鱼干APP,可以在百度,vivo,小米,apple store 中下载,暂时没有时间来搞这个音乐api的东西了,不过服务没有停,如果想用来测试或者玩玩的还是可以用的。

2019/12/26

  1. 获取歌曲播放地址接口 增加 lyric参数代表是否获取歌词。
  2. 增加获取歌词接口

2019/12/24

  1. 所有音乐接口更改,增加一层music/ ,获取地址改为 music/song
  2. 增加福利图片接口
  3. 示例接口更改为https

接口仅供交流学习使用

Github 项目地址

因为之前使用网络上别人封装的音乐api现在无法使用,或者一些需要付费使用,当然这也无可厚非。

但对我而言,只需要简单的一些音乐api做一些东西。 感觉给钱有点亏。 就自己搞一个简单的符合我的需求的吧。

文档

  1. 音乐搜索
  2. 音乐top100列表
  3. 音乐播放地址
  4. 福利图片 (新增 2019/12/24).
  5. 音乐歌词 (新增 2019/12/26).

很简单的三个基本的功能。

所有方法都是GET

本项目所支持的Api

一、音乐 music

1、音乐列表

list

GET

参数 类型 描述
p string 页码
n string 数目
w string 关键词

返回参数

上级 参数 类型 描述
curpage int 页码
curnum int 数目
list array [ object ] 音乐列表
list > {} songname string 歌曲名
list > {} songname string 歌曲名
list > {} albumname string 专辑名
list > {} songmid string 歌曲id,用来请求播放地址
list > {} albumimg string 封面图
list > {} singer object 歌手信息
list > {} > singer id int 歌手id
list > {} > singer name string 歌手名称

eg:

1
https://api.zsfmyz.top/music/list?p=1&n=30&w=蔡徐坤

返回参数举例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
    {
"code": "0",
"data": {
"curnum": 30,
"curpage": 1,
"list": [
{
"songname": "情人",
"singer": {
"id": 1016794,
"mid": "002nXp292LIOGV",
"name": "蔡徐坤",
"name_hilight": "<em>蔡徐坤</em>"
},
"albumname": "情人",
"songmid": "000aWBBQ2fMyBJ",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/88/300_albumpic_12583588_0.jpg"
},
{
"songname": "YOUNG",
"singer": {
"id": 1016794,
"mid": "002nXp292LIOGV",
"name": "蔡徐坤",
"name_hilight": "<em>蔡徐坤</em>"
},
"albumname": "YOUNG",
"songmid": "004BxrBT3coQnC",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/78/300_albumpic_7156278_0.jpg"
},
{
"songname": "Wait Wait Wait",
"singer": {
"id": 1016794,
"mid": "002nXp292LIOGV",
"name": "蔡徐坤",
"name_hilight": "<em>蔡徐坤</em>"
},
"albumname": "Wait Wait Wait",
"songmid": "002kRCBE4dfcU2",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/19/300_albumpic_4359819_0.jpg"
},
// .....
]
}
}

2、音乐top100列表

top

GET

参数

返回参数

上级 参数 类型 描述
date string 日期
curpage int 页码
curnum int 数目
list 音乐列表
list array [ object ] 音乐列表
list > {} songname string 歌曲名
list > {} songname string 歌曲名
list > {} albumname string 专辑名
list > {} songmid string 歌曲id,用来请求播放地址
list > {} albumimg string 封面图
list > {} singer object 歌手信息
list > {} > singer id int 歌手id
list > {} > singer name string 歌手名称
topinfo 音乐top100信息

list中歌曲信息比普通列表多了排名: cur_count

eg:

1
https://api.zsfmyz.top/music/top

返回参数举例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
    {
"code": "0",
"data": {
"code": 0,
"date": "2019-12-05",
"curnum": 100,
"curpage": 1,
"list": [
{
"cur_count": "1",
"songname": "像极了",
"singer": {
"id": 1441799,
"mid": "0023dQD40to8NP",
"name": "永彬Ryan.B"
},
"albumname": "像极了",
"songmid": "000V8En93R3Dvd",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/36300_albumpic_9218636_0.jpg"
},
{
"cur_count": "2",
"songname": "拱手相让",
"singer": {
"id": 22529,
"mid": "001z6uGh1j5qBh",
"name": "胜屿"
},
"albumname": "拱手相让",
"songmid": "002DIlMZ48qB1F",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/66300_albumpic_9414066_0.jpg"
},
{
"cur_count": "3",
"songname": "余年",
"singer": {
"id": 1060985,
"mid": "0022eAG537I1bg",
"name": "肖战"
},
"albumname": "余年",
"songmid": "000bFWrY2VrdVp",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/92300_albumpic_9423892_0.jpg"
},
{
"cur_count": "4",
"songname": "触不可及",
"singer": {
"id": 199509,
"mid": "003fA5G40k6hKc",
"name": "周深"
},
"albumname": "触不可及",
"songmid": "002EFRnf3ekI9S",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/4300_albumpic_9320604_0.jpg"
},
{
"cur_count": "5",
"songname": "冷静和热情之间",
"singer": {
"id": 198135,
"mid": "001IoTZp19YMDG",
"name": "易烊千玺"
},
"albumname": "冷静和热情之间",
"songmid": "0014YYnw3vadJJ",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/59300_albumpic_9415259_0.jpg"
},
{
"cur_count": "6",
"songname": "美丽谎言",
"singer": {
"id": 71976,
"mid": "001gthIA2JeIV1",
"name": "都智文"
},
"albumname": "美丽谎言",
"songmid": "003sJCeZ1iK9mZ",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/88300_albumpic_9353488_0.jpg"
},
{
"cur_count": "7",
"songname": "那男孩还好吗",
"singer": {
"id": 3298773,
"mid": "003yGiqM2qF7Gm",
"name": "Uu"
},
"albumname": "那男孩还好吗",
"songmid": "002COmzJ0SPZMl",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/36300_albumpic_9132036_0.jpg"
},
{
"cur_count": "8",
"songname": "星辰大海",
"singer": {
"id": 25724,
"mid": "0044vhyY2lfSB8",
"name": "周冬雨"
},
"albumname": "星辰大海",
"songmid": "003enTsq4M1J59",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/63300_albumpic_9305663_0.jpg"
},
{
"cur_count": "9",
"songname": "Lover (Remix)",
"singer": {
"id": 11921,
"mid": "000qrPik2w6lDr",
"name": "Taylor Swift"
},
"albumname": "Lover (Remix)",
"songmid": "000H6p9p0V4MXi",
"albumimg": "http://imgcache.qq.com/music/photo/album_300/58300_albumpic_9207358_0.jpg"
},
],
"topinfo": {
"ListName": "巅峰榜·新歌",
"MacDetailPicUrl": "http://y.gtimg.cn/music/common/upload/iphone_order_channel/20150820172435.jpg",
"MacListPicUrl": "http://y.gtimg.cn/music/common/upload/iphone_order_channel/20150820172427.jpg",
"UpdateType": "1",
"albuminfo": "",
"headPic_v12": "http://y.gtimg.cn/music/common/upload/iphone_order_channel/20150820174934.jpg",
"info": "集结30天内发行的优质歌曲,鼓励原创、着眼未来的乐坛风向标。根据每日综合数据进行排序,体现QQ音乐用户追新潮流,致力于打造最权威最有公信力的专业健康的新歌排行榜。<br><br>歌曲数量:100首<br>综合数据:登录用户在QQ音乐收听/分享/下载数据",
"listennum": 1497166,
"pic": "http://y.gtimg.cn/music/common/upload/iphone_order_channel/20150820172421.jpg",
"picDetail": "http://y.gtimg.cn/music/common/upload/iphone_order_channel/20150820172414.jpg",
"pic_album": "http://imgcache.qq.com/music/photo_new/T002R300x300M000000tSk703NJAVD.jpg",
"pic_h5": "http://y.gtimg.cn/music/common/upload/iphone_order_channel/20150820172242.jpg",
"pic_v11": "http://y.gtimg.cn/music/common/upload/iphone_order_channel/20150820172421.jpg",
"pic_v12": "http://y.gtimg.cn/music/photo_new/T003R300x300M000003zALCN1hkB6y.jpg",
"topID": "27",
"type": "0"
}
}
}

3、音乐播放地址

song

GET

参数 类型 描述
songmid string 用于获取token
guid string 用于获取token
lyric string 默认为0不获取歌词,1获取歌词

其他参数固定

返回参数

参数 类型 描述
musicUrl string 音乐播放地址

eg:

1
https://api.zsfmyz.top/music/song?songmid=000aWBBQ2fMyBJ&guid=126548448

返回参数举例

1
2
3
4
5
6
7
    {
"code": "0",
"data": {
"musicUrl": "https://ws.stream.qqmusic.qq.com/C400000aWBBQ2fMyBJ.m4a?guid=126548448&vkey=AD7592245F651C2509E1C9B94E3A234B039967023066203214278A71E9DE4E6F3972EA83BB52F80EE74218B39305B6EAC9B0F6A610B0F947&uin=0&fromtag=66",
"lyric": "无"
}
}

4、音乐歌词

lyric

GET

参数 类型 描述
songmid string 用于获取歌词

其他参数固定

返回参数

参数 类型 描述
lyric string 歌词内容

eg:

1
https://api.zsfmyz.top/music/lyric?songmid=000wocYU11tSzS

返回参数举例

1
2
3
4
5
6
7
    {
"code": "0",
"data": {
"lyric": "[ti:差不多姑娘]\n[ar:G.E.M. 邓紫棋]\n[al:差不多姑娘]\n[by:]\n[offset:0]\n[00:00.00]差不多姑娘 - G.E.M. 邓紫棋\n[00:00.17]\n[00:02.67]差不多的姑娘\n[00:06.27]追逐差不多的漂亮\n[00:11.88]她们差不多的愿望\n[00:17.18]牵着她们鼻子方向\n[00:23.05]我回到差不多的家\n[00:24.38]躺在差不多的沙发\n[00:25.68]微博差不多的刷\n[00:26.99]都吃着差不多的瓜\n[00:28.48]那标题差不多的炸\n[00:29.78]...",
}
}
}

二、福利图片 welfare

根据每日福利社的接口进行了封装,因为他们的https失效了,所以自己反向代理了。

1、图片列表

list

GET

参数 类型 描述
per_page string 每页数据量
page string 第几页

其他参数固定

返回参数

如下:

eg:

1
https://api.zsfmyz.top/welfare/list?per_page=20&page=2

返回参数举例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"code": 0,
"data": {
"error": false,
"results": [
{
"_id": "5b63cd4e9d21225e0d3f58c9",
"createdAt": "2018-08-03T11:34:38.672Z",
"desc": "2018-08-03", //描述
"publishedAt": "2018-08-03T00:00:00.0Z",
"source": "api",
"type": "福利", // 类型
"url": "https://ww1.sinaimg.cn/large/0065oQSqgy1ftwcw4f4a5j30sg10j1g9.jpg", //图片地址
"used": true,
"who": "lijinshan"
},
{
"_id": "5b6151509d21225206860f08",
"createdAt": "2018-08-01T14:21:04.556Z",
"desc": "2018-08-01",
"publishedAt": "2018-08-01T00:00:00.0Z",
"source": "api",
"type": "福利",
"url": "https://ww1.sinaimg.cn/large/0065oQSqly1ftu6gl83ewj30k80tites.jpg",
"used": true,
"who": "lijinshan"
},
// ...
]
}
}

over 暂时只有这 ~~ 三 ~~ 四个,不过做一个音乐demo足够了,有兴趣的话可以试试。

http://api.zsfmyz.top/ https://api.zsfmyz.top/ 是目前开放的api接口地址,可直接食用。

原接口说明

搜索

封面

歌曲token

此方法需要参考本文开头说明中的 2020/6/03 更新中的说明的获取sign的文章再获取token

  1. songmid可以从歌曲信息中取到,filename根据songmid生成。
  2. 比如,songmid是003lghpv0jfFXG,则filename就是前缀加上C400,后缀加上.m4a,即C400003lghpv0jfFXG.m4a。
  3. 其他字段format、platform、cid、guid可以写死,但都是必须的。

    拼接播放地址

原文依据

以下是我根据此api所写的服务的项目地址,大家可以拿来测试体验。

音乐api服务项目地址欢迎star

 评论