22 |
23 | | 参数名 | 是否必选 | 数据类型 | 默认值 | 说明 |
24 | |:----:|:----:|:------:|:---:|:---------|
25 | | sha1 | 是 | string | / | 文件的sha1值 |
26 | | md5 | 是 | string | / | 文件的md5值 |
27 | | size | 是 | int | / | 文件的大小 |
28 | | ext | 否 | string | png | 文件的扩展名 |
29 |
30 |
31 |
32 | ## 支持的扩展名
33 | - png、jpg、jpeg、gif、webp、bmp、svg
34 |
35 | ## 返回示例
36 | ``` json
37 | {
38 | "code": 0,
39 | "message": "访问成功",
40 | "data": {
41 | "url": "https://music-file-1258344705.cos.ap-guangzhou.myqcloud.com/songlist/p/1147c/4fbfbc28bbc4a67850fa90823fcea389fcfcd48d_c902.png", // 上传地址
42 | "method": "PUT", // 请求方法
43 | "header": { // 请求头
44 | "Host": "music-file-1258344705.cos.ap-guangzhou.myqcloud.com",
45 | "User-Agent": "workerman/http-client",
46 | "Connection": "keep-alive",
47 | "Content-Length": "51458",
48 | "content-md5": "+FOzn418LmF9ved9ymbUEw==",
49 | "x-cos-security-token": "GIzUbkNQfZH0Q4V27p2vHL75iRJ7tbha95c7097b1d14c7841cc356f2b5f5fde5nmIWL_hRE2_mVvAGwAqCv3Rrfhx3s6nAKSgHxZq1vawdWHrH7YnX1NM7UPEgPSMgE466zts5CRzMbgFfEYBv0AEzh5iKkfS0kuQVudbrPNGloJwSGh9ZJg5lvIB7J-dt_rbtlqqImTNrvMPpFJmB9Ugyus4WJk_TVieUUafxixaXvNjhItDeRnb6xa403LV33dSbNaa_1dq5AmNw0wEVy2scKrtRtChNyn1G3TndRcUcqfxrYbbfT2NdGoKR4-kPVPmp8qkhOWzIPLv9ss7pMfJ6jR8xVZNF6cVgR7bdADUuMHMvRZmlwOhSaW7y3gIfaLcKLEzOVM0Jfa-k8SUJ2V5JUCdMu7nxYlQMvUuycn-AqOEAlM8UNtcC7pDexu_D3aR8zsEGtaPjVID5eSqEphjwg93zPsi6YS83uGrwqyfaj5vAewuOuqEHW-_GDbiUF21ebmGmFysI0V6U6UiwOsg9twv5AM4PFM_Snu8TNEG8u6CYUTsqsccAtYHaoD_Gg-IDqevp2tHm-wG29LGHgMIXhAimJXRz8E2NS_bLUm6vUSypPApEuwk8c-T-d7sNKKQ3NLNRHnQXfwV01H2eFLhZ4MZ2_V7qCnH-oi7CHjnbo_yJpY9nix2zHQ-QyL8nHGQ3O7p1F7GdcjfZNueFOUN_lmOyxsrwrEBaCxaeSFQ0sq0qClUqnZAy6UoHKCqjmymsCFp3IKJbok5TAXPSsSEvZXOvYMcwtiQkGcAjVBpFlc43u-f-1lRqrcCLwZgW3WXnDB90M2QNfejIb19j_AVX3A9IpZk8xUuQmA0SsEiID55VQMg01MgCVPfp-8M21xVqDiVi3VAYlR-nu4aiBJzPJ9SfTUwDDqP3Yz4LCl6vsrxgFk3hHgMNy1juD28za_K8D1qgaaT8z53uc9vLlkWc6Wky_Zffv_cf4f4VIN7myW_si7XHr4_Y4OYshk1TJldOg2BXUsaGaxVEpspnzg48a2xa_GTeGb89V_H1RK7K3F854VYBK3ITRMFD-rCL6rbCMpHR3iBZ3qGuQWAzsQ",
50 | "Authorization": "q-sign-algorithm=sha1&q-ak=AKIDT4q2N7IcbGEJoS1J2U7y0eAqY4ndvk3TzzFa_avW2x3vbHMrmWbdtQQmnpTQz-Qp&q-sign-time=1746537582;1746539442&q-key-time=1746537582;1746539442&q-header-list=content-length;content-md5;host;x-cos-security-token&q-url-param-list=&q-signature=cd9d5033f413b66abbc91eae0c16a979bbed50ad"
51 | },
52 | "CDN": "https://music-file.y.qq.com/songlist/p/1147c/4fbfbc28bbc4a67850fa90823fcea389fcfcd48d_c902.png" // 访问地址
53 | },
54 | "time": "2025-05-06 21:20:42",
55 | "pid": 25,
56 | "tips": "欢迎使用落月API-V3"
57 | }
58 | ```
59 |
60 | ## 前端示例(需解决跨域问题)
61 | - 代码地址:https://github.com/lvluoyue/api-doc/blob/main/scripts/Cos.vue
62 |
--------------------------------------------------------------------------------
/src/v2/音乐模块/QQ音乐/6-songList.md:
--------------------------------------------------------------------------------
1 | # 歌手歌曲列表API )
92 | .provide(InjectionKey, {
93 | layoutSwitch: {
94 | disableHelp: true,
95 | defaultMode: LayoutMode.Original,
96 | contentLayoutMaxWidth: {
97 | defaultMaxWidth: 100
98 | },
99 | },
100 | spotlight: {
101 | defaultToggle: true,
102 | defaultStyle: SpotlightStyle.Aside
103 | }
104 | } as InjectionKeyOptions)
105 | },
106 | } satisfies Theme
107 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/点歌相关接口/2-link.md:
--------------------------------------------------------------------------------
1 | # 获取播放链接API
2 | ::: danger
3 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
4 | :::
5 |
6 | ::: danger
7 | 此接口与V2版本不同,当所选音质无法获取时不会自动切换音质,而是返回一个错误。因为V2版本无法准确知道返回的音质,实现逻辑需要自己去实现。
8 | :::
9 |
10 | ## 接口描述
11 |
12 | - 此接口可以根据音乐id或mid获取QQ音乐链接以及相关信息。
13 |
14 | ## 接口地址
15 | - `GET` `/music/tencent/song/link`
16 |
17 | ## 请求数据类型
18 | - `application/x-www-form-urlencoded`
19 |
20 | ## 请求示例
21 | - https://api.vkeys.cn/music/tencent/song/link?id=105648974
22 | - https://api.vkeys.cn/music/tencent/song/link?mid=0023CVP23SH17s
23 | - https://api.vkeys.cn/music/tencent/song/link?mid=0023CVP23SH17s&quality=8
24 |
25 | ## 请求参数
26 |
27 |
28 |
29 | | 参数名 | 是否必选 | 数据类型 | 默认值 | 说明 |
30 | |:-------:|:----:|:------:|:---:|:----------------------------|
31 | | id | 否 | int | 0 | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
32 | | mid | 否 | string | / | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
33 | | quality | 否 | int | 14 | 音质ID,不会降级 |
34 | | type | 否 | int | 1 | 歌曲类型 |
35 |
36 |
37 |
38 | ## 参数q可选值(音质选择)
39 | ::: info
40 | 默认值14。音质15、16不推荐使用。
41 | :::
42 |
43 |
44 |
45 | | 值 | 备注 |
46 | |:---:|:------------------|
47 | | 0 | 音乐试听 |
48 | | 1 | 有损音质 |
49 | | 2 | 有损音质 |
50 | | 3 | 有损音质 |
51 | | 4 | 标准音质 |
52 | | 5 | 标准音质 |
53 | | 6 | 标准音质 |
54 | | 7 | 标准音质 |
55 | | 8 | HQ高音质 |
56 | | 9 | HQ高音质(音质增强) |
57 | | 10 | SQ无损音质 |
58 | | 11 | Hi-Res音质 |
59 | | 12 | 杜比全景声 |
60 | | 13 | 臻品全景声 |
61 | | 14 | 臻品母带2.0 |
62 | | 15 | AI伴唱模式(4轨,2原唱2伴唱) |
63 | | 16 | AI5.1音质(6音轨) |
64 |
65 |
66 |
67 | ## 参数type可选值(歌曲类型)
68 |
69 | ::: warning
70 | 此参数只对id点歌和mid点歌有效,此模式由于无法确定歌曲类型,所以由用户提供。同一个id的情况下不同歌曲类型返回不同歌曲
71 | :::
72 |
73 |
74 |
75 | | 值 | 备注 |
76 | |:----:|:--------:|
77 | | 0或1 | 常规歌曲 |
78 | | 111 | 华语群星 |
79 | | 112 | 铃声 |
80 | | 113 | 伴奏 |
81 |
82 |
83 |
84 | ## 返回示例
85 | ``` json [geturl.json]
86 | {
87 | "code": 200,
88 | "message": "请求成功!",
89 | "data": {
90 | "id": 105648974,
91 | "mid": "0023CVP23SH17s",
92 | "vid": "v00199a1i1e",
93 | "song": "梦回还",
94 | "subtitle": "《狐妖小红娘·王权篇》网络动画片头曲",
95 | "album": "狐妖小红娘 动画原声带",
96 | "singer": "呦猫UNEKO",
97 | "cover": "https://y.qq.com/music/photo_new/T002R800x800M000000wd19g0wTd0d.jpg",
98 | "pay": "付费",
99 | "time": "2016-07-08",
100 | "type": 0,
101 | "bpm": 84,
102 | "quality": "SQ无损音质",
103 | "interval": "4分10秒",
104 | "link": "https://i.y.qq.com/v8/playsong.html?songmid=0023CVP23SH17s&type=0",
105 | "size": "56.05MB",
106 | "kbps": "1862kbps",
107 | "url": "http://ws.stream.qqmusic.qq.com/F000003t4TGX46UGp7.flac?guid=api.vkeys.cn&vkey=F052EA8F74368F9021DE77360BA46DD0F10BC87EA5749271DC4B1F50258B00C258FC2D95EEB95A516470289AC1A11FE56AF09877E8225816&uin=3503185131&fromtag=119114",
108 | "ekey": ""
109 | },
110 | "time": "2024-08-01 12:25:49",
111 | "pid": 19236,
112 | "tips": "欢迎使用API-Server"
113 | }
114 | ```
115 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/点歌相关接口/3-ekey.md:
--------------------------------------------------------------------------------
1 | # 获取加密播放链接API
2 | ::: danger
3 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
4 | :::
5 |
6 | ## 接口描述
7 |
8 | - 此接口可以根据音乐id或mid获取QQ音乐加密链接以及相关信息。
9 |
10 | ## 接口地址
11 | - `GET` `/music/tencent/song/ekey`
12 |
13 | ## 请求数据类型
14 | - `application/x-www-form-urlencoded`
15 |
16 | ## 请求示例
17 | - https://api.vkeys.cn/music/tencent/song/ekey?id=105648974
18 | - https://api.vkeys.cn/music/tencent/song/ekey?mid=0023CVP23SH17s
19 | - https://api.vkeys.cn/music/tencent/song/ekey?mid=0023CVP23SH17s&quality=8
20 |
21 | ## 请求参数
22 |
23 |
24 |
25 | | 参数名 | 是否必选 | 数据类型 | 默认值 | 说明 |
26 | |:-------:|:----:|:------:|:---:|:----------------------------|
27 | | id | 否 | int | 0 | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
28 | | mid | 否 | string | / | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
29 | | quality | 否 | int | 14 | 音质ID,不会降级 |
30 | | type | 否 | int | 1 | 歌曲类型 |
31 |
32 |
33 |
34 | ## 参数q可选值(音质选择)
35 | - 默认值14。音质15、16不推荐使用。
36 |
37 |
38 |
39 | | 值 | 备注 |
40 | |:---:|:------------------|
41 | | 0 | 音乐试听 |
42 | | 1 | 有损音质 |
43 | | 2 | 有损音质 |
44 | | 3 | 有损音质 |
45 | | 4 | 标准音质 |
46 | | 5 | 标准音质 |
47 | | 6 | 标准音质 |
48 | | 7 | 标准音质 |
49 | | 8 | HQ高音质 |
50 | | 9 | HQ高音质(音质增强) |
51 | | 10 | SQ无损音质 |
52 | | 11 | Hi-Res音质 |
53 | | 12 | 杜比全景声 |
54 | | 13 | 臻品全景声 |
55 | | 14 | 臻品母带2.0 |
56 | | 15 | AI伴唱模式(4轨,2原唱2伴唱) |
57 | | 16 | AI5.1音质(6音轨) |
58 |
59 |
60 |
61 | ## 参数type可选值(歌曲类型)
62 |
63 | ::: warning
64 | 此参数只对id点歌和mid点歌有效,此模式由于无法确定歌曲类型,所以由用户提供。同一个id的情况下不同歌曲类型返回不同歌曲
65 | :::
66 |
67 |
68 |
69 | | 值 | 备注 |
70 | |:----:|:--------:|
71 | | 0或1 | 常规歌曲 |
72 | | 111 | 华语群星 |
73 | | 112 | 铃声 |
74 | | 113 | 伴奏 |
75 |
76 |
77 |
78 | ## 关于ekey
79 | - ekey是加密音乐文件的密钥,可使用解密网站获取对应的解密文件
80 | - ekey解密网站:https://um-react.netlify.app/
81 |
82 | ## 返回示例
83 | ``` json [geturl.json]
84 | {
85 | "code": 200,
86 | "message": "请求成功!",
87 | "data": {
88 | "id": 105648974,
89 | "mid": "0023CVP23SH17s",
90 | "vid": "v00199a1i1e",
91 | "song": "梦回还",
92 | "subtitle": "《狐妖小红娘·王权篇》网络动画片头曲",
93 | "album": "狐妖小红娘 动画原声带",
94 | "singer": "呦猫UNEKO",
95 | "cover": "https://y.qq.com/music/photo_new/T002R800x800M000000wd19g0wTd0d.jpg",
96 | "pay": "付费",
97 | "time": "2016-07-08",
98 | "type": 0,
99 | "bpm": 84,
100 | "quality": "SQ无损音质",
101 | "interval": "4分10秒",
102 | "link": "https://i.y.qq.com/v8/playsong.html?songmid=0023CVP23SH17s&type=0",
103 | "size": "56.05MB",
104 | "kbps": "1862kbps",
105 | "url": "http://ws.stream.qqmusic.qq.com/F000003t4TGX46UGp7.flac?guid=api.vkeys.cn&vkey=F052EA8F74368F9021DE77360BA46DD0F10BC87EA5749271DC4B1F50258B00C258FC2D95EEB95A516470289AC1A11FE56AF09877E8225816&uin=3503185131&fromtag=119114",
106 | "ekey": ""
107 | },
108 | "time": "2024-08-01 12:25:49",
109 | "pid": 19236,
110 | "tips": "欢迎使用API-Server"
111 | }
112 | ```
113 |
--------------------------------------------------------------------------------
/scripts/Cos.vue:
--------------------------------------------------------------------------------
1 |
91 |
92 |
93 |
94 |
95 |
99 |
100 |
101 |
102 |
103 |
104 |
156 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/搜索相关接口/1-smartbox.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags:
3 | - QQ音乐
4 | progress: 85
5 | ---
6 |
7 | # 快捷搜索API
8 | ::: danger
9 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
10 | :::
11 |
12 | ## 接口描述
13 |
14 | - 用于歌单列表搜索,支持分页。
15 |
16 | ## 接口地址
17 | - `GET` `/music/tencent/search/smartbox`
18 |
19 | ## 请求数据类型
20 | - `application/x-www-form-urlencoded`
21 |
22 | ## 请求示例
23 | - https://api.vkeys.cn/music/tencent/search/smartbox?keyword=洛天依
24 |
25 | ## 请求参数
26 |
27 |
28 | | 参数名 | 是否必填 | 数据类型 | 默认值 | 说明 |
29 | |:-------:|:----:|:------:|:---:|:-----|
30 | | keyword | 是 | string | / | 歌单名称 |
31 |
32 |
33 |
34 | ## 返回示例
35 | ``` json
36 | {
37 | "code": 0,
38 | "message": "访问成功",
39 | "data": {
40 | "album": {
41 | "count": 2, // 专辑数量
42 | "itemlist": [
43 | {
44 | "id": "1283240", // 专辑id
45 | "mid": "001gQ5oZ3ZIbAw", // 专辑mid
46 | "name": "洛天依作品集", // 专辑名称
47 | "pic": "http://y.gtimg.cn/music/photo_new/T002R180x180M000001gQ5oZ3ZIbAw_2.jpg", // 专辑图片
48 | "singer": "洛天依" // 专辑作者
49 | },
50 | {
51 | "id": "22330356",
52 | "mid": "001CCsrz3ly1sO",
53 | "name": "2015哔哩哔哩拜年纪",
54 | "pic": "http://y.gtimg.cn/music/photo_new/T002R180x180M000001CCsrz3ly1sO_1.jpg",
55 | "singer": "洛天依"
56 | }
57 | ],
58 | "name": "专辑",
59 | "order": 2
60 | },
61 | "mv": {
62 | "count": 2, // MV数量
63 | "itemlist": [
64 | {
65 | "id": "1394231", // 歌曲id
66 | "mid": "001ldqdG4b0HfK", // MV mid
67 | "name": "【全职高手】达拉崩吧", // MV名称
68 | "singer": "洛天依", // 歌手名称
69 | "vid": "n00253s8ixk" // MV id
70 | },
71 | {
72 | "id": "1514774",
73 | "mid": "003Of2TX2aQWV5",
74 | "name": "非人哉",
75 | "singer": "洛天依",
76 | "vid": "w00303rq8yt"
77 | }
78 | ],
79 | "name": "MV",
80 | "order": 3
81 | },
82 | "singer": {
83 | "count": 1, // 歌手数量
84 | "itemlist": [
85 | {
86 | "id": "61386", // 歌手id
87 | "mid": "003ktdcg3E4kaG", // 歌手mid
88 | "name": "洛天依", // 歌手名称
89 | "pic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000003ktdcg3E4kaG_7.jpg", // 歌手图片
90 | "singer": "洛天依" // 歌手名称
91 | }
92 | ],
93 | "name": "歌手",
94 | "order": 1
95 | },
96 | "song": {
97 | "count": 4, // 歌曲数量
98 | "itemlist": [
99 | {
100 | "id": "104797698", // 歌曲id
101 | "mid": "001mzBxY4UVcAH", // 歌曲mid
102 | "name": "霜雪千年", // 歌曲名称
103 | "singer": "洛天依/乐正绫" // 歌手名称
104 | },
105 | {
106 | "id": "102176361",
107 | "mid": "001xZXiW4aAhkL",
108 | "name": "权御天下",
109 | "singer": "洛天依"
110 | },
111 | {
112 | "id": "102366907",
113 | "mid": "000eBrFh2kXacf",
114 | "name": "东京不太热",
115 | "singer": "洛天依"
116 | },
117 | {
118 | "id": "230393569",
119 | "mid": "0034QZCD0BISWP",
120 | "name": "非人哉",
121 | "singer": "洛天依"
122 | }
123 | ],
124 | "name": "单曲",
125 | "order": 0
126 | }
127 | },
128 | "time": "2025-04-07 08:05:48",
129 | "pid": 17908,
130 | "tips": "欢迎使用落月API-V3"
131 | }
132 | ```
133 |
--------------------------------------------------------------------------------
/src/v2/音乐模块/QQ音乐/7-albumList.md:
--------------------------------------------------------------------------------
1 | # 歌手专辑列表API
2 |
3 | ## 简要描述
4 |
5 | - 这是一个QQ音乐搜索接口,只能用于搜索,其他参数无效。
6 |
7 | ## 请求URL
8 | - `/v2/music/tencent/singer/albumlist`
9 |
10 | ## 请求方式
11 | - `GET` / `POST`
12 |
13 | ## 请求示例
14 | - https://api.vkeys.cn/v2/music/tencent/singer/albumlist?mid=003ktdcg3E4kaG
15 |
16 | ## 请求参数
17 |
18 | | 参数名 | 是否必选 | 数据类型 | 说明 |
19 | |:----:|:----:|:------:|:----------------------|
20 | | mid | 是 | string | 歌手mid |
21 | | page | 否 | int | 页数,默认为1 |
22 | | num | 否 | int | 每页显示数,默认为10,区间:[1,60] |
23 |
24 | ## 返回示例
25 | ``` json
26 | {
27 | "code": 200,
28 | "message": "请求成功!",
29 | "data": [
30 | {
31 | "albumMid": "001gQ5oZ3ZIbAw",
32 | "albumName": "洛天依作品集",
33 | "albumTranName": "",
34 | "publishDate": "2016-01-01",
35 | "totalNum": 0,
36 | "albumType": "录音室专辑",
37 | "pmid": "001gQ5oZ3ZIbAw_2",
38 | "albumID": 1283240,
39 | "singerName": "洛天依"
40 | },
41 | {
42 | "albumMid": "001E8Dko2o1D6p",
43 | "albumName": "末日DISCO",
44 | "albumTranName": "",
45 | "publishDate": "2013-06-05",
46 | "totalNum": 0,
47 | "albumType": "录音室专辑",
48 | "pmid": "001E8Dko2o1D6p_1",
49 | "albumID": 1283028,
50 | "singerName": "洛天依"
51 | },
52 | {
53 | "albumMid": "000s9Xs623THdK",
54 | "albumName": "Sing Sing Sing",
55 | "albumTranName": "",
56 | "publishDate": "2012-07-12",
57 | "totalNum": 0,
58 | "albumType": "录音室专辑",
59 | "pmid": "000s9Xs623THdK_1",
60 | "albumID": 1283081,
61 | "singerName": "洛天依"
62 | },
63 | {
64 | "albumMid": "0003jG162JjJGO",
65 | "albumName": "洛天依精选集二",
66 | "albumTranName": "",
67 | "publishDate": "2014-05-11",
68 | "totalNum": 0,
69 | "albumType": "录音室专辑",
70 | "pmid": "0003jG162JjJGO_1",
71 | "albumID": 515710,
72 | "singerName": "洛天依"
73 | },
74 | {
75 | "albumMid": "002BqWJr1jwHIF",
76 | "albumName": "百转千回",
77 | "albumTranName": "",
78 | "publishDate": "2013-07-22",
79 | "totalNum": 0,
80 | "albumType": "录音室专辑",
81 | "pmid": "002BqWJr1jwHIF_4",
82 | "albumID": 433484,
83 | "singerName": "洛天依"
84 | },
85 | {
86 | "albumMid": "003UGLjI0QfdvH",
87 | "albumName": "洛天依精选集一",
88 | "albumTranName": "",
89 | "publishDate": "2014-04-23",
90 | "totalNum": 0,
91 | "albumType": "录音室专辑",
92 | "pmid": "003UGLjI0QfdvH_1",
93 | "albumID": 494592,
94 | "singerName": "洛天依"
95 | },
96 | {
97 | "albumMid": "001S0WXZ0TapBn",
98 | "albumName": "宝贝",
99 | "albumTranName": "",
100 | "publishDate": "2013-08-16",
101 | "totalNum": 0,
102 | "albumType": "录音室专辑",
103 | "pmid": "001S0WXZ0TapBn_1",
104 | "albumID": 435266,
105 | "singerName": "洛天依"
106 | },
107 | {
108 | "albumMid": "002k5KVd3lZx78",
109 | "albumName": "花洛兮",
110 | "albumTranName": "",
111 | "publishDate": "2013-10-20",
112 | "totalNum": 0,
113 | "albumType": "录音室专辑",
114 | "pmid": "002k5KVd3lZx78_1",
115 | "albumID": 663475,
116 | "singerName": "洛天依"
117 | },
118 | {
119 | "albumMid": "0035MaNl4U0bG9",
120 | "albumName": "花洛兮Ⅱ",
121 | "albumTranName": "",
122 | "publishDate": "2014-10-10",
123 | "totalNum": 0,
124 | "albumType": "录音室专辑",
125 | "pmid": "0035MaNl4U0bG9_1",
126 | "albumID": 1040257,
127 | "singerName": "洛天依"
128 | },
129 | {
130 | "albumMid": "002WtP8A09kjSa",
131 | "albumName": "洛天依精选集三",
132 | "albumTranName": "",
133 | "publishDate": "2014-06-03",
134 | "totalNum": 0,
135 | "albumType": "录音室专辑",
136 | "pmid": "002WtP8A09kjSa_1",
137 | "albumID": 533425,
138 | "singerName": "洛天依"
139 | }
140 | ],
141 | "time": "2024-08-18 21:35:28",
142 | "pid": 26,
143 | "tips": "欢迎使用API-Server"
144 | }
145 | ```
146 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/Cookie相关接口/3-qrcodelogin.md:
--------------------------------------------------------------------------------
1 | # 二维码登录API
2 |
3 | ::: danger
4 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
5 | :::
6 |
7 | ## 接口描述
8 |
9 | - 使用二维码登录,并获取qq音乐的token。接口使用sse返回,需要前端使用`EventSource`监听sse事件。
10 |
11 | ## 接口地址
12 |
13 | - `GET` `/music/tencent/cookie/fastlogin`
14 |
15 | ## 请求数据类型
16 |
17 | - `application/x-www-form-urlencoded`
18 |
19 | ## 返回数据类型
20 |
21 | - `text/event-stream`
22 |
23 | ## 请求示例
24 |
25 | - https://api.vkeys.cn/music/tencent/cookie/qrcode
26 |
27 | ## 请求参数
28 |
29 |
30 |
31 | | 参数名 | 是否必选 | 数据类型 | 默认值 | 说明 |
32 | |:----:|:----:|:----:|:-----:|:-----------------|
33 | | save | 否 | bool | false | 是否将cookie保存在服务器中 |
34 |
35 |
36 |
37 | ## 在线获取
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 | ×
47 |
48 |
49 |
50 |
51 |
85 |
126 |
127 | ## 返回示例
128 |
129 | ``` json
130 | {
131 | "code": 200,
132 | "message": "请求成功!",
133 | "data": {
134 | "cookie": {
135 | "uin": 1569097443, // 账号ID
136 | "musickey": "Q_H_L_63kfNuk1fUK-t9Rshh-NGQrRsuQmM8eCpOAo4TtgtNtGBY7_4KESYJVVrXh35gdQrsbIJhHLcKGsNEjHRzwHMZ-CPaFB-i6gAsgcCLTYB-4KIh_SwMdTWUVWrZf-LyAhajDfpv5uwvu0-k0KiS3w",// token字段
137 | "refresh_token": "", // 刷新key
138 | "refresh_key": "", // 刷新token
139 | "musickeyCreateTimestamp": 1722693959, // token创建时间戳
140 | "musickeyCreateTime": "2024-08-03 22:05:59", // token创建时间
141 | "keyExpiresIn": 259200, // token过期时间
142 | "musickeyLastTimestamp": 1722953159, // token最后更新时间戳
143 | "musickeyLastTime": "2024-08-06 22:05:59" // token最后更新时间
144 | },
145 | "info": {
146 | "vip": false, // 是否为vip
147 | "vipEndTimestamp": 1694733645, // vip到期时间戳
148 | "vipEndTime": "2023-09-15 07:20:45", // vip到期时间
149 | "vipDateDiff": 323, // vip到期时间与当前时间差(永远为正数)
150 | "svip": false, // 是否为svip
151 | "svipEndTimestamp": 1692660579, // svip到期时间戳
152 | "svipEndTime": "2023-08-22 07:29:39", // svip到期时间
153 | "svipDateDiff": 347 // svip到期时间与当前时间差(永远为正数)
154 | }
155 | },
156 | "time": "2024-08-03 22:05:59",
157 | "pid": 14,
158 | "tips": "欢迎使用API-Server"
159 | }
160 | ```
161 |
--------------------------------------------------------------------------------
/src/v2/音乐模块/QQ音乐/4-smartbox.md:
--------------------------------------------------------------------------------
1 | # 快捷搜索API
2 |
3 | ## 简要描述
4 |
5 | - QQ音乐快搜索接口,用于音乐搜索表单提示。
6 |
7 | ## 请求URL
8 | - `/v2/music/tencent/search/smartbox`
9 |
10 | ## 请求方式
11 | - `GET` / `POST`
12 |
13 | ## 请求示例
14 | - https://api.vkeys.cn/v2/music/tencent/search/smartbox?word=狐妖小红娘
15 |
16 | ## 请求参数
17 |
18 | | 参数名 | 是否必选 | 数据类型 | 说明 |
19 | |:----:|:----:|:------:|:-----|
20 | | word | 是 | string | 搜索内容 |
21 |
22 | ## 返回示例
23 | ``` json
24 | {
25 | "code": 200,
26 | "message": "请求成功!",
27 | "data": {
28 | "album": {
29 | "count": 2,
30 | "itemlist": [
31 | {
32 | "docid": "1031692",
33 | "id": "1031692",
34 | "mid": "000wd19g0wTd0d",
35 | "name": "狐妖小红娘 动画原声带",
36 | "pic": "http://y.gtimg.cn/music/photo_new/T002R180x180M000000wd19g0wTd0d_1.jpg",
37 | "singer": "华语群星"
38 | },
39 | {
40 | "docid": "51294996",
41 | "id": "51294996",
42 | "mid": "003GLtZm09BdNc",
43 | "name": "狐妖小红娘月红篇 电视剧原声带",
44 | "pic": "http://y.gtimg.cn/music/photo_new/T002R180x180M000003GLtZm09BdNc_1.jpg",
45 | "singer": "黄绮珊/张杰/周深/袁娅维TIA RAY"
46 | }
47 | ],
48 | "name": "专辑",
49 | "order": 2,
50 | "type": 3
51 | },
52 | "mv": {
53 | "count": 2,
54 | "itemlist": [
55 | {
56 | "docid": "869531",
57 | "id": "869531",
58 | "mid": "0034qhHt3lnt4l",
59 | "name": "《狐妖小红娘》cp东方月初&涂山红红",
60 | "singer": "动画视频",
61 | "vid": "b0021738knz"
62 | },
63 | {
64 | "docid": "976752",
65 | "id": "976752",
66 | "mid": "001Iqurk3nC9Eo",
67 | "name": "狐妖小红娘 梦回还 王权富贵",
68 | "singer": "动画视频",
69 | "vid": "o0021shslfr"
70 | }
71 | ],
72 | "name": "MV",
73 | "order": 3,
74 | "type": 4
75 | },
76 | "singer": {
77 | "count": 2,
78 | "itemlist": [
79 | {
80 | "docid": "4914381",
81 | "id": "4914381",
82 | "mid": "000lnrtZ1tNHRN",
83 | "name": "狐妖小红娘-涂山苏苏",
84 | "pic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000000lnrtZ1tNHRN_2.jpg",
85 | "singer": "狐妖小红娘-涂山苏苏"
86 | },
87 | {
88 | "docid": "2117041",
89 | "id": "2117041",
90 | "mid": "00451sDD3QE2AJ",
91 | "name": "狐妖小红娘",
92 | "pic": "http://y.gtimg.cn/music/photo_new/T001R150x150M00000451sDD3QE2AJ_1.jpg",
93 | "singer": "狐妖小红娘"
94 | }
95 | ],
96 | "name": "歌手",
97 | "order": 1,
98 | "type": 2
99 | },
100 | "song": {
101 | "count": 4,
102 | "itemlist": [
103 | {
104 | "docid": "105648974",
105 | "id": "105648974",
106 | "mid": "0023CVP23SH17s",
107 | "name": "梦回还",
108 | "singer": "呦猫UNEKO"
109 | },
110 | {
111 | "docid": "231692423",
112 | "id": "231692423",
113 | "mid": "003yM7Uc3TRo5z",
114 | "name": "人间白首",
115 | "singer": "呦猫UNEKO"
116 | },
117 | {
118 | "docid": "107438148",
119 | "id": "107438148",
120 | "mid": "0005Y0qE4b8qoi",
121 | "name": "若当来世",
122 | "singer": "马里奥/冥月"
123 | },
124 | {
125 | "docid": "226150838",
126 | "id": "226150838",
127 | "mid": "001zYa4V2ZVYfw",
128 | "name": "愿我",
129 | "singer": "呦猫UNEKO"
130 | }
131 | ],
132 | "name": "单曲",
133 | "order": 0,
134 | "type": 1
135 | }
136 | },
137 | "time": "2024-08-03 19:41:11",
138 | "pid": 4528,
139 | "tips": "欢迎使用API-Server"
140 | }
141 | ```
142 |
--------------------------------------------------------------------------------
/scripts/qqkey.ps1:
--------------------------------------------------------------------------------
1 |
2 | Add-Type -AssemblyName Microsoft.PowerShell.Commands.Utility
3 | # 关闭curl进度显示
4 | $ProgressPreference = 'SilentlyContinue'
5 |
6 | function Invoke-Request {
7 | param (
8 | [string]$Uri,
9 | [hashtable]$Headers,
10 | [Microsoft.PowerShell.Commands.WebRequestSession]$WebSession = $null,
11 | [int]$Timeout = 30
12 | )
13 | try {
14 | return Invoke-WebRequest -Uri $Uri -Method Get `
15 | -UseBasicParsing `
16 | -DisableKeepAlive `
17 | -Headers $Headers `
18 | -WebSession $WebSession `
19 | -TimeoutSec $Timeout `
20 | -ErrorAction Stop
21 | } catch {
22 | if($_.Exception -match "The operation has timed out") {
23 | Write-Host "请求超时,请检查网络连接" -ForegroundColor Red
24 | }else {
25 | Write-Host "请求失败,错误信息:" -ForegroundColor Red
26 | Write-Host $_.Exception.Message
27 | }
28 | Exit ;
29 | }
30 | }
31 |
32 | function Get-CookieValue {
33 | param (
34 | [string[]]$Cookies,
35 | [string]$CookieName
36 | )
37 | $cookie = $Cookies | Where-Object { $_ -match "$CookieName=([^;]+)" }
38 | if ($cookie -and $matches[1]) {
39 | return $matches[1]
40 | }
41 | return $null
42 | }
43 |
44 | try {
45 | Write-Host "脚本启动,正在登录..." -ForegroundColor Green
46 |
47 | # 目标URL地址,原始格式
48 | $targetUrl = "https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=716027609&daid=383&style=33&login_text=%E7%99%BB%E5%BD%95&hide_title_bar=1&hide_border=1&target=self&s_url=https%3A%2F%2Fgraph.qq.com%2Foauth2.0%2Flogin_jump&pt_3rd_aid=100497308&pt_feedback_link=https%3A%2F%2Fsupport.qq.com%2Fproducts%2F77942%3FcustomInfo%3D.appid100497308&theme=2&verify_theme="
49 | $refererHeaders = @{"Referer" = $targetUrl}
50 |
51 | # 发送GET请求并自动处理响应
52 | $response = Invoke-Request -Uri $targetUrl
53 |
54 | # 获取目标Cookie
55 | $pt_local_token = Get-CookieValue -Cookies $response.Headers['Set-Cookie'] -CookieName "pt_local_token"
56 | if (-not $pt_local_token) {
57 | Write-Host "未能成功获取 pt_local_token Cookie值" -ForegroundColor Red
58 | Exit ;
59 | }
60 |
61 | Write-Host "成功获取 pt_local_token: $pt_local_token" -ForegroundColor Green
62 |
63 | $getUinsUrl = "https://localhost.ptlogin2.qq.com:4301/pt_get_uins?callback=ptui_getuins_CB&r=0.9038523633869937&pt_local_tk=$pt_local_token"
64 |
65 |
66 | # 创建WebSession对象并添加Cookie
67 | $webSession = New-Object Microsoft.PowerShell.Commands.WebRequestSession
68 | $cookieObj = New-Object System.Net.Cookie("pt_local_token", $pt_local_token, "/", "localhost.ptlogin2.qq.com")
69 | $webSession.Cookies.Add($cookieObj)
70 |
71 | $newResponse = Invoke-Request -Uri $getUinsUrl -Headers $refererHeaders -WebSession $webSession
72 |
73 | # 解析响应内容中的 var_sso_uin_list
74 | $responseContent = $newResponse.Content
75 | if (-not ($responseContent -match 'var var_sso_uin_list=(\[.*?\]);')) {
76 | Write-Host "未能发现有效的用户列表。" -ForegroundColor Red
77 | Exit ;
78 | }
79 |
80 | $userList = ConvertFrom-Json $matches[1]
81 |
82 | # 显示用户列表并让用户选择
83 | Write-Host "请选择一个用户:" -ForegroundColor Cyan
84 | for ($i = 0; $i -lt $userList.Length; $i++) {
85 | Write-Host "[$i] 账号: $($userList[$i].uin)"
86 | }
87 | $userChoice = Read-Host "请输入用户编号"
88 |
89 | if (-not ($userChoice -match '^\d+$') -or [int]$userChoice -lt 0 -or [int]$userChoice -ge $userList.Length) {
90 | Write-Host "无效的选择。" -ForegroundColor Red
91 | Exit ;
92 | }
93 |
94 | $selectedUser = $userList[$userChoice]
95 |
96 | # 构造新的请求
97 | $newRequestUrl = "https://localhost.ptlogin2.qq.com:4301/pt_get_st?clientuin=$($selectedUser.uin)&r=0.5287717305315094&pt_local_tk=$pt_local_token&callback=__jp0"
98 |
99 | $newRequestResponse = Invoke-Request -Uri $newRequestUrl -Headers $refererHeaders -WebSession $webSession
100 |
101 | # 获取Cookie
102 | $newCookieCollection = $newRequestResponse.Headers['Set-Cookie']
103 | $clientuin = Get-CookieValue -Cookies $newCookieCollection -CookieName "clientuin"
104 | $clientkey = Get-CookieValue -Cookies $newCookieCollection -CookieName "clientkey"
105 |
106 | if (-not $clientuin -or -not $clientkey) {
107 | Write-Host "未能发现有效的clientuin和clientkey" -ForegroundColor Red
108 | Exit ;
109 | }
110 |
111 | Write-Host "clientuin: $clientuin" -ForegroundColor Green
112 | Write-Host "clientkey: $clientkey" -ForegroundColor Green
113 | }
114 | finally {
115 | # 恢复默认的进度显示
116 | $ProgressPreference = 'Continue'
117 |
118 | Write-Host "按任意键退出程序。"
119 | [Console]::Read() | Out-Null ;
120 | Exit ;
121 | }
--------------------------------------------------------------------------------
/src/v2/音乐模块/QQ音乐/1-tencent.md:
--------------------------------------------------------------------------------
1 | # 点歌API(歌曲搜索+播放链接整合)
2 |
3 | ## 简要描述
4 | - 此接口是结合了歌曲搜索、列表选择、id/mid点歌等功能,适合大多数场景。
5 | - 使用多路线,保证正常获取,支持所有音乐,支持16种音质和音质自动选择(可限制最大音质)等。
6 | - 与v1版本有细微差别,主要在请求参数方面,使命名更规范。
7 |
8 | ## 请求URL
9 | - `/v2/music/tencent`
10 |
11 | ## 请求方式
12 | - `GET` / `POST`
13 |
14 | ## 请求示例
15 | - https://api.vkeys.cn/v2/music/tencent?word=狐妖小红娘
16 | - https://api.vkeys.cn/v2/music/tencent?word=狐妖小红娘&choose=1&quality=8
17 | - https://api.vkeys.cn/v2/music/tencent?id=105648974
18 | - https://api.vkeys.cn/v2/music/tencent?mid=0023CVP23SH17s
19 | - https://api.vkeys.cn/v2/music/tencent?mid=0023CVP23SH17s&ekey=1
20 |
21 | ## 请求参数
22 |
23 | | 参数名 | 是否必选 | 数据类型 | 说明 |
24 | |:--------:|:-------:|:-------:|:----------------------------|
25 | | word | 是 | string | 歌名,有id或mid参数可不填 |
26 | | page | 否 | int | 页数,默认为1 |
27 | | num | 否 | int | 每页显示数,默认为10,区间:[1,60] |
28 | | choose | 否 | int | 选择歌曲,0不可填 |
29 | | grp | 否 | int | 多版本音乐序号,如需使用参数num为必填 |
30 | | quality | 否 | int | 最大支持音质,默认值14,区间:[0,16] |
31 | | id | 是/否 | int | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
32 | | mid | 是/否 | string | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
33 | | type | 否 | int | 歌曲类型,默认为0 |
34 | | ekey | 否 | bool | 是否获取加密的音乐链接 |
35 |
36 | ## 参数q可选值(音质选择)
37 | - 默认值14。音质15、16不推荐使用。
38 |
39 | | 值 | 备注 |
40 | |:---:|:------------------|
41 | | 0 | 音乐试听 |
42 | | 1 | 有损音质 |
43 | | 2 | 有损音质 |
44 | | 3 | 有损音质 |
45 | | 4 | 标准音质 |
46 | | 5 | 标准音质 |
47 | | 6 | 标准音质 |
48 | | 7 | 标准音质 |
49 | | 8 | HQ高音质 |
50 | | 9 | HQ高音质(音质增强) |
51 | | 10 | SQ无损音质 |
52 | | 11 | Hi-Res音质 |
53 | | 12 | 杜比全景声 |
54 | | 13 | 臻品全景声 |
55 | | 14 | 臻品母带2.0 |
56 | | 15 | AI伴唱模式(4轨,2原唱2伴唱) |
57 | | 16 | AI5.1音质(6音轨) |
58 |
59 | ## 参数type可选值(歌曲类型)
60 |
61 | ::: warning
62 | 此参数只对id点歌和mid点歌有效,此模式由于无法确定歌曲类型,所以由用户提供。同一个id的情况下不同歌曲类型返回不同歌曲
63 | :::
64 |
65 | | 值 | 备注 |
66 | |:----:|:--------:|
67 | | 0或1 | 常规歌曲 |
68 | | 111 | 华语群星 |
69 | | 112 | 铃声 |
70 | | 113 | 伴奏 |
71 |
72 | ## 关于ekey
73 | - ekey是加密音乐文件的密钥,可使用解密网站获取对应的解密文件
74 | - ekey解密网站:https://um-react.netlify.app/
75 |
76 |
77 | ## 返回示例
78 | ::: code-group
79 |
80 | ``` json [搜索模式.json]
81 | {
82 | "code": 200,
83 | "message": "请求成功!",
84 | "data": [
85 | {
86 | "id": 105648974,
87 | "mid": "0023CVP23SH17s",
88 | "vid": "v00199a1i1e",
89 | "song": "梦回还",
90 | "subtitle": "《狐妖小红娘·王权篇》网络动画片头曲",
91 | "album": "狐妖小红娘 动画原声带",
92 | "singer": "呦猫UNEKO",
93 | "cover": "https://y.qq.com/music/photo_new/T002R800x800M000000wd19g0wTd0d.jpg",
94 | "pay": "付费",
95 | "time": "2016-07-08",
96 | "type": 0,
97 | "bpm": 84,
98 | "quality": "臻品母带2.0",
99 | "grp": [
100 | {
101 | "id": 235069670,
102 | "mid": "001SYUfq0ou27J",
103 | "vid": "i0031dmklxx",
104 | "song": "梦回还",
105 | "subtitle": "《狐妖小红娘·王权篇》网络动画片头曲",
106 | "album": "狐妖小红娘·王权篇 动画原声大碟 轮转",
107 | "singer": "呦猫UNEKO",
108 | "cover": "https://y.qq.com/music/photo_new/T002R800x800M000000LAXp222pE4w.jpg",
109 | "pay": "付费",
110 | "time": "2019-07-31",
111 | "type": 0,
112 | "bpm": 84,
113 | "quality": "臻品母带2.0",
114 | "grp": []
115 | }
116 | ]
117 | }
118 | ],
119 | "time": "2024-08-03 18:37:34",
120 | "pid": 12,
121 | "tips": "欢迎使用API-Server"
122 | }
123 | ```
124 |
125 | ``` json [点歌模式.json]
126 | {
127 | "code": 200,
128 | "message": "请求成功!",
129 | "data": {
130 | "id": 105648974,
131 | "mid": "0023CVP23SH17s",
132 | "vid": "v00199a1i1e",
133 | "song": "梦回还",
134 | "subtitle": "《狐妖小红娘·王权篇》网络动画片头曲",
135 | "album": "狐妖小红娘 动画原声带",
136 | "singer": "呦猫UNEKO",
137 | "cover": "https://y.qq.com/music/photo_new/T002R800x800M000000wd19g0wTd0d.jpg",
138 | "pay": "付费",
139 | "time": "2016-07-08",
140 | "type": 0,
141 | "bpm": 84,
142 | "quality": "SQ无损音质",
143 | "interval": "4分10秒",
144 | "link": "https://i.y.qq.com/v8/playsong.html?songmid=0023CVP23SH17s&type=0",
145 | "size": "56.05MB",
146 | "kbps": "1862kbps",
147 | "url": "http://ws.stream.qqmusic.qq.com/F000003t4TGX46UGp7.flac?guid=api.vkeys.cn&vkey=F052EA8F74368F9021DE77360BA46DD0F10BC87EA5749271DC4B1F50258B00C258FC2D95EEB95A516470289AC1A11FE56AF09877E8225816&uin=3503185131&fromtag=119114",
148 | "ekey": ""
149 | },
150 | "time": "2024-08-01 12:25:49",
151 | "pid": 19236,
152 | "tips": "欢迎使用API-Server"
153 | }
154 | ```
155 | :::
156 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/搜索相关接口/5-album.md:
--------------------------------------------------------------------------------
1 | # 专辑搜索API
2 | ::: danger
3 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
4 | :::
5 |
6 | ## 接口描述
7 |
8 | - 用于专辑列表搜索,支持分页。
9 |
10 | ## 接口地址
11 | - `GET` `/music/tencent/search/album`
12 |
13 | ## 请求数据类型
14 | - `application/x-www-form-urlencoded`
15 |
16 | ## 请求示例
17 | - https://api.vkeys.cn/music/tencent/search/album?keyword=洛天依作品集
18 |
19 | ## 请求参数
20 |
21 |
22 | | 参数名 | 是否必填 | 数据类型 | 默认值 | 说明 |
23 | |:-------:|:----:|:-------:|:---:|:----------------|
24 | | keyword | 是 | string | / | 专辑名称 |
25 | | page | 否 | int | 1 | 当前页数 |
26 | | limit | 否 | int | 10 | 每页显示数,区间:[1,60] |
27 |
28 |
29 |
30 | ## 返回示例
31 | ``` json
32 | {
33 | "code": 0,
34 | "message": "访问成功",
35 | "data": {
36 | "meta": { // [!code ++]
37 | "total": 4, //搜索结果总数 [!code ++]
38 | "nextPage": -1, //下一页的页码 [!code ++]
39 | "perPage": 10 //当前每页显示数 [!code ++]
40 | }, // [!code ++]
41 | "list": [
42 | {
43 | "albumID": 1283240, // 专辑ID
44 | "albumMID": "001gQ5oZ3ZIbAw", // 专辑MID
45 | "albumName": "洛天依作品集", // 专辑名称
46 | "albumPic": "http://y.gtimg.cn/music/photo_new/T002R180x180M000001gQ5oZ3ZIbAw_2.jpg", // 专辑图片
47 | "publicTime": "2016-01-01", // 发行时间
48 | "singerID": 61386, // 歌手ID
49 | "singerMID": "003ktdcg3E4kaG", // 歌手MID
50 | "singerName": "洛天依", // 歌手名称
51 | "songCount": 634, // 歌曲数量
52 | "singerList": [// 歌手列表
53 | {
54 | "id": 61386, // 歌手ID
55 | "mid": "003ktdcg3E4kaG", // 歌手MID
56 | "name": "洛天依", // 歌手名称
57 | "pmid": "",
58 | "title": "洛天依", // 歌手名称
59 | "type": 0,
60 | "uin": 0
61 | }
62 | ]
63 | },
64 | {
65 | "albumID": 47530135,
66 | "albumMID": "000yNHmX4MqqGE",
67 | "albumName": "洛天依作品集 (Explicit)",
68 | "albumPic": "http://y.gtimg.cn/music/photo_new/T002R180x180M000000yNHmX4MqqGE_2.jpg",
69 | "publicTime": "2016-01-01",
70 | "singerID": 61386,
71 | "singerMID": "003ktdcg3E4kaG",
72 | "singerName": "洛天依",
73 | "songCount": 2,
74 | "singerList": [
75 | {
76 | "id": 61386,
77 | "mid": "003ktdcg3E4kaG",
78 | "name": "洛天依",
79 | "pmid": "",
80 | "title": "洛天依",
81 | "type": 0,
82 | "uin": 0
83 | },
84 | {
85 | "id": 980372,
86 | "mid": "000yjTkK2E7Rpz",
87 | "name": "乐正绫",
88 | "pmid": "",
89 | "title": "乐正绫",
90 | "type": 0,
91 | "uin": 0
92 | }
93 | ]
94 | },
95 | {
96 | "albumID": 7921861,
97 | "albumMID": "002tQir12NohDb",
98 | "albumName": "洛天依作品集",
99 | "albumPic": "http://y.gtimg.cn/music/photo_new/T002R180x180M000002tQir12NohDb_1.jpg",
100 | "publicTime": "2019-09-08",
101 | "singerID": 61386,
102 | "singerMID": "003ktdcg3E4kaG",
103 | "singerName": "洛天依",
104 | "songCount": 1,
105 | "singerList": [
106 | {
107 | "id": 61386,
108 | "mid": "003ktdcg3E4kaG",
109 | "name": "洛天依",
110 | "pmid": "",
111 | "title": "洛天依",
112 | "type": 0,
113 | "uin": 0
114 | }
115 | ]
116 | },
117 | {
118 | "albumID": 23736313,
119 | "albumMID": "003HPZTd2IrgK7",
120 | "albumName": "洛天依翻唱作品集",
121 | "albumPic": "http://y.gtimg.cn/music/photo_new/T002R180x180M000003HPZTd2IrgK7_2.jpg",
122 | "publicTime": "2021-03-30",
123 | "singerID": 9596067,
124 | "singerMID": "002GdGBi2OeHCE",
125 | "singerName": "haru1ca",
126 | "songCount": 2,
127 | "singerList": [
128 | {
129 | "id": 9596067,
130 | "mid": "002GdGBi2OeHCE",
131 | "name": "haru1ca",
132 | "pmid": "",
133 | "title": "haru1ca",
134 | "type": 0,
135 | "uin": 0
136 | }
137 | ]
138 | }
139 | ]
140 | },
141 | "time": "2025-04-15 21:12:01",
142 | "pid": 29992,
143 | "tips": "欢迎使用落月API-V3"
144 | }
145 | ```
146 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/用户相关接口/1-info.md:
--------------------------------------------------------------------------------
1 | # 获取用户信息API
2 |
3 | ::: danger
4 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
5 | :::
6 |
7 | ## 接口描述
8 |
9 | - 用于歌曲列表搜索,支持分页。
10 |
11 | ## 接口地址
12 |
13 | - `GET` `/music/tencent/user/info`
14 |
15 | ## 请求数据类型
16 |
17 | - `application/x-www-form-urlencoded`
18 |
19 | ## 请求示例
20 |
21 | - https://api.vkeys.cn/music/tencent/user/info?uin=1569097443
22 |
23 | ## 请求参数
24 |
25 |
26 |
27 | | 参数名 | 是否必选 | 数据类型 | 默认值 | 说明 |
28 | |:---:|:----:|:------:|:---:|:----|
29 | | uin | 是 | int | / | QQ号 |
30 |
31 |
32 |
33 | ## 返回示例
34 |
35 | ``` json
36 | {
37 | "code": 0,
38 | "message": "访问成功",
39 | "data": {
40 | "songID": 105648974, //歌曲ID
41 | "songMID": "0023CVP23SH17s", //歌曲mid
42 | "vid": "v00199a1i1e", //mv的vid
43 | "title": "梦回还", //歌曲名
44 | "subtitle": "《狐妖小红娘·王权篇》网络动画片头曲", //副标题
45 | "album": "狐妖小红娘 动画原声带", //专辑名
46 | "singer": "呦猫UNEKO", //歌手名(多个歌手以/分割)
47 | "singerList": [ //歌手列表
48 | {
49 | "id": 1092914, //歌手ID
50 | "mid": "003VD9fu3Eh1q4", //歌手mid
51 | "name": "呦猫UNEKO", //歌手名
52 | "pmid": "",
53 | "title": "呦猫UNEKO", //歌手名
54 | "type": 1,
55 | "uin": 0
56 | }
57 | ],
58 | "cover": "https://y.qq.com/music/photo_new/T002R800x800M000000wd19g0wTd0d.jpg",//封面地址
59 | "pay": "付费", //是否付费(初步判断)
60 | "time": "2016-07-08", //发布时间
61 | "type": 0, //歌曲类型(点歌时需要用到)
62 | "bpm": 84, //BPM值
63 | "content": "",
64 | "grp": [], //多版本列表,此接口无效
65 | "qualityInfo": [// 音质列表
66 | {
67 | "type": 0, // 音质id,点歌时需要
68 | "size": 960887, //文件大小,0为无效
69 | "quality": "音乐试听", // 音质名
70 | "file": "RS020023CVP23SH17s.mp3" // 文件名
71 | },
72 | {
73 | "type": 1,
74 | "size": 0,
75 | "quality": "有损音质",
76 | "file": "C100003t4TGX46UGp7.m4a"
77 | },
78 | {
79 | "type": 2,
80 | "size": 1522964,
81 | "quality": "有损音质",
82 | "file": "C200003t4TGX46UGp7.m4a"
83 | },
84 | {
85 | "type": 3,
86 | "size": 3043806,
87 | "quality": "有损音质",
88 | "file": "C400003t4TGX46UGp7.m4a"
89 | },
90 | {
91 | "type": 4,
92 | "size": 6048661,
93 | "quality": "标准音质",
94 | "file": "C600003t4TGX46UGp7.m4a"
95 | },
96 | {
97 | "type": 5,
98 | "size": 3025258,
99 | "quality": "标准音质",
100 | "file": "O400003t4TGX46UGp7.ogg"
101 | },
102 | {
103 | "type": 6,
104 | "size": 4001341,
105 | "quality": "标准音质",
106 | "file": "M500003t4TGX46UGp7.mp3"
107 | },
108 | {
109 | "type": 7,
110 | "size": 6127530,
111 | "quality": "标准音质",
112 | "file": "O600003t4TGX46UGp7.ogg"
113 | },
114 | {
115 | "type": 8,
116 | "size": 10003026,
117 | "quality": "HQ高音质",
118 | "file": "M800003t4TGX46UGp7.mp3"
119 | },
120 | {
121 | "type": 9,
122 | "size": 10870748,
123 | "quality": "HQ高音质",
124 | "file": "O800003t4TGX46UGp7.ogg"
125 | },
126 | {
127 | "type": 10,
128 | "size": 58775435,
129 | "quality": "SQ无损音质",
130 | "file": "F000003t4TGX46UGp7.flac"
131 | },
132 | {
133 | "type": 11,
134 | "size": 0,
135 | "quality": "Hi-Res音质",
136 | "file": "RS01003t4TGX46UGp7.flac"
137 | },
138 | {
139 | "type": 12,
140 | "size": 0,
141 | "quality": "杜比全景声",
142 | "file": "D001003t4TGX46UGp7.mp4"
143 | },
144 | {
145 | "type": 13,
146 | "size": 32270821,
147 | "quality": "臻品全景声",
148 | "file": "Q000000Ok4Fl4ckn34.flac"
149 | },
150 | {
151 | "type": 14,
152 | "size": 188505804,
153 | "quality": "臻品母带2.0",
154 | "file": "AI00004XGZCG3gCeKc.flac"
155 | },
156 | {
157 | "type": 15,
158 | "size": 21475189,
159 | "quality": "AI伴奏消音(试验)",
160 | "file": "O801003YeTqm3yCpZQ.ogg"
161 | },
162 | {
163 | "type": 16,
164 | "size": 82846386,
165 | "quality": "AI人声消音(试验)",
166 | "file": "Q001000Ok4Fl4ckn34.flac"
167 | }
168 | ]
169 | },
170 | "time": "2025-04-08 14:29:43",
171 | "pid": 11444,
172 | "tips": "欢迎使用落月API-V3"
173 | }
174 | ```
175 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/搜索相关接口/3-singer.md:
--------------------------------------------------------------------------------
1 | # 歌手搜索API
2 | ::: danger
3 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
4 | :::
5 |
6 | ## 接口描述
7 |
8 | - 用于歌手列表搜索,支持分页。
9 |
10 | ## 接口地址
11 | - `GET` `/music/tencent/search/singer`
12 |
13 | ## 请求数据类型
14 | - `application/x-www-form-urlencoded`
15 |
16 | ## 请求示例
17 | - https://api.vkeys.cn/music/tencent/search/singer?keyword=洛天依
18 |
19 | ## 请求参数
20 |
21 |
22 | | 参数名 | 是否必填 | 数据类型 | 默认值 | 说明 |
23 | |:-------:|:----:|:-------:|:---:|:----------------|
24 | | keyword | 是 | string | / | 歌手 |
25 | | page | 否 | int | 1 | 当前页数 |
26 | | limit | 否 | int | 10 | 每页显示数,区间:[1,60] |
27 |
28 |
29 |
30 | ## 返回示例
31 | ``` json
32 | {
33 | "code": 0,
34 | "message": "访问成功",
35 | "data": {
36 | "meta": { // [!code ++]
37 | "total": 12, //搜索结果总数 [!code ++]
38 | "nextPage": 2, //下一页的页码 [!code ++]
39 | "perPage": 10 //当前每页显示数 [!code ++]
40 | }, // [!code ++]
41 | "list": [
42 | {
43 | "albumNum": 1564, //专辑数
44 | "concern_status": 0,
45 | "mvNum": 980, // MV视频数
46 | "singerID": 61386, // 歌手ID
47 | "singerMID": "003ktdcg3E4kaG", // 歌手MID
48 | "singerName": "洛天依", // 歌手名
49 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000003ktdcg3E4kaG_7.jpg", // 歌手图片
50 | "songNum": 8149 // 歌曲数
51 | },
52 | {
53 | "albumNum": 30,
54 | "concern_status": 0,
55 | "mvNum": 15,
56 | "singerID": 5332545,
57 | "singerMID": "001QFs3W35Wt6h",
58 | "singerName": "ChiliChill",
59 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000001QFs3W35Wt6h_8.jpg",
60 | "songNum": 67
61 | },
62 | {
63 | "albumNum": 323,
64 | "concern_status": 0,
65 | "mvNum": 154,
66 | "singerID": 980372,
67 | "singerMID": "000yjTkK2E7Rpz",
68 | "singerName": "乐正绫",
69 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000000yjTkK2E7Rpz_3.jpg",
70 | "songNum": 2989
71 | },
72 | {
73 | "albumNum": 56,
74 | "concern_status": 0,
75 | "mvNum": 1511,
76 | "singerID": 7221,
77 | "singerMID": "000CK5xN3yZDJt",
78 | "singerName": "许嵩",
79 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000000CK5xN3yZDJt_3.jpg",
80 | "songNum": 389
81 | },
82 | {
83 | "albumNum": 1,
84 | "concern_status": 0,
85 | "mvNum": 0,
86 | "singerID": 16391754,
87 | "singerMID": "003n7boS45qc2N",
88 | "singerName": "Dr.Nur单、洛天依",
89 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000003n7boS45qc2N_2.jpg",
90 | "songNum": 0
91 | },
92 | {
93 | "albumNum": 0,
94 | "concern_status": 0,
95 | "mvNum": 0,
96 | "singerID": 3784859,
97 | "singerMID": "0032oxg80FFbNg",
98 | "singerName": "洛天依&阿良良木健",
99 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000002PVWDN3kBtTe_0.jpg",
100 | "songNum": 1
101 | },
102 | {
103 | "albumNum": 1,
104 | "concern_status": 0,
105 | "mvNum": 0,
106 | "singerID": 16337046,
107 | "singerMID": "001Itbnk3KPLbC",
108 | "singerName": "水蓝琉璃洛天依",
109 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000001Itbnk3KPLbC_1.jpg",
110 | "songNum": 1
111 | },
112 | {
113 | "albumNum": 17,
114 | "concern_status": 0,
115 | "mvNum": 6,
116 | "singerID": 1020907,
117 | "singerMID": "003f2cre1hniJ6",
118 | "singerName": "ilem",
119 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000003f2cre1hniJ6_5.jpg",
120 | "songNum": 54
121 | },
122 | {
123 | "albumNum": 175,
124 | "concern_status": 0,
125 | "mvNum": 273,
126 | "singerID": 170683,
127 | "singerMID": "002OBqhv118O38",
128 | "singerName": "言和",
129 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000002OBqhv118O38_3.jpg",
130 | "songNum": 2139
131 | },
132 | {
133 | "albumNum": 174,
134 | "concern_status": 0,
135 | "mvNum": 92,
136 | "singerID": 36239,
137 | "singerMID": "001AkuJH2G5OJJ",
138 | "singerName": "河图",
139 | "singerPic": "http://y.gtimg.cn/music/photo_new/T001R150x150M000001AkuJH2G5OJJ_7.jpg",
140 | "songNum": 581
141 | }
142 | ]
143 | },
144 | "time": "2025-04-15 18:31:11",
145 | "pid": 19,
146 | "tips": "欢迎使用落月API-V3"
147 | }
148 | ```
149 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/点歌相关接口/1-info.md:
--------------------------------------------------------------------------------
1 | # 歌曲信息及音质列表API
2 |
3 | ::: danger
4 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
5 | :::
6 |
7 | ## 接口描述
8 |
9 | - 用于歌曲列表搜索,支持分页。
10 |
11 | ## 接口地址
12 |
13 | - `GET` `/music/tencent/song/info`
14 |
15 | ## 请求数据类型
16 |
17 | - `application/x-www-form-urlencoded`
18 |
19 | ## 请求示例
20 |
21 | - https://api.vkeys.cn/music/tencent/song/info?id=105648974
22 | - https://api.vkeys.cn/music/tencent/song/info?mid=0023CVP23SH17s
23 |
24 | ## 请求参数
25 |
26 |
27 |
28 | | 参数名 | 是否必选 | 数据类型 | 默认值 | 说明 |
29 | |:----:|:----:|:------:|:---:|:----------------------------|
30 | | id | 否 | int | 0 | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
31 | | mid | 否 | string | / | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
32 | | type | 否 | int | 1 | 歌曲类型 |
33 |
34 |
35 |
36 | ## 返回示例
37 |
38 | ``` json
39 | {
40 | "code": 0,
41 | "message": "访问成功",
42 | "data": {
43 | "songID": 105648974, //歌曲ID
44 | "songMID": "0023CVP23SH17s", //歌曲mid
45 | "vid": "v00199a1i1e", //mv的vid
46 | "title": "梦回还", //歌曲名
47 | "subtitle": "《狐妖小红娘·王权篇》网络动画片头曲", //副标题
48 | "album": "狐妖小红娘 动画原声带", //专辑名
49 | "singer": "呦猫UNEKO", //歌手名(多个歌手以/分割)
50 | "singerList": [ //歌手列表
51 | {
52 | "id": 1092914, //歌手ID
53 | "mid": "003VD9fu3Eh1q4", //歌手mid
54 | "name": "呦猫UNEKO", //歌手名
55 | "pmid": "",
56 | "title": "呦猫UNEKO", //歌手名
57 | "type": 1,
58 | "uin": 0
59 | }
60 | ],
61 | "cover": "https://y.qq.com/music/photo_new/T002R800x800M000000wd19g0wTd0d.jpg",//封面地址
62 | "pay": "付费", //是否付费(初步判断)
63 | "time": "2016-07-08", //发布时间
64 | "type": 0, //歌曲类型(点歌时需要用到)
65 | "bpm": 84, //BPM值
66 | "content": "",
67 | "grp": [], //多版本列表,此接口无效
68 | "qualityInfo": [// 音质列表
69 | {
70 | "type": 0, // 音质id,点歌时需要
71 | "size": 960887, //文件大小,0为无效
72 | "quality": "音乐试听", // 音质名
73 | "file": "RS020023CVP23SH17s.mp3" // 文件名
74 | },
75 | {
76 | "type": 1,
77 | "size": 0,
78 | "quality": "有损音质",
79 | "file": "C100003t4TGX46UGp7.m4a"
80 | },
81 | {
82 | "type": 2,
83 | "size": 1522964,
84 | "quality": "有损音质",
85 | "file": "C200003t4TGX46UGp7.m4a"
86 | },
87 | {
88 | "type": 3,
89 | "size": 3043806,
90 | "quality": "有损音质",
91 | "file": "C400003t4TGX46UGp7.m4a"
92 | },
93 | {
94 | "type": 4,
95 | "size": 6048661,
96 | "quality": "标准音质",
97 | "file": "C600003t4TGX46UGp7.m4a"
98 | },
99 | {
100 | "type": 5,
101 | "size": 3025258,
102 | "quality": "标准音质",
103 | "file": "O400003t4TGX46UGp7.ogg"
104 | },
105 | {
106 | "type": 6,
107 | "size": 4001341,
108 | "quality": "标准音质",
109 | "file": "M500003t4TGX46UGp7.mp3"
110 | },
111 | {
112 | "type": 7,
113 | "size": 6127530,
114 | "quality": "标准音质",
115 | "file": "O600003t4TGX46UGp7.ogg"
116 | },
117 | {
118 | "type": 8,
119 | "size": 10003026,
120 | "quality": "HQ高音质",
121 | "file": "M800003t4TGX46UGp7.mp3"
122 | },
123 | {
124 | "type": 9,
125 | "size": 10870748,
126 | "quality": "HQ高音质",
127 | "file": "O800003t4TGX46UGp7.ogg"
128 | },
129 | {
130 | "type": 10,
131 | "size": 58775435,
132 | "quality": "SQ无损音质",
133 | "file": "F000003t4TGX46UGp7.flac"
134 | },
135 | {
136 | "type": 11,
137 | "size": 0,
138 | "quality": "Hi-Res音质",
139 | "file": "RS01003t4TGX46UGp7.flac"
140 | },
141 | {
142 | "type": 12,
143 | "size": 0,
144 | "quality": "杜比全景声",
145 | "file": "D001003t4TGX46UGp7.mp4"
146 | },
147 | {
148 | "type": 13,
149 | "size": 32270821,
150 | "quality": "臻品全景声",
151 | "file": "Q000000Ok4Fl4ckn34.flac"
152 | },
153 | {
154 | "type": 14,
155 | "size": 188505804,
156 | "quality": "臻品母带2.0",
157 | "file": "AI00004XGZCG3gCeKc.flac"
158 | },
159 | {
160 | "type": 15,
161 | "size": 21475189,
162 | "quality": "AI伴奏消音(试验)",
163 | "file": "O801003YeTqm3yCpZQ.ogg"
164 | },
165 | {
166 | "type": 16,
167 | "size": 82846386,
168 | "quality": "AI人声消音(试验)",
169 | "file": "Q001000Ok4Fl4ckn34.flac"
170 | }
171 | ]
172 | },
173 | "time": "2025-04-08 14:29:43",
174 | "pid": 11444,
175 | "tips": "欢迎使用落月API-V3"
176 | }
177 | ```
178 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/用户相关接口/2-playlist.md:
--------------------------------------------------------------------------------
1 | # 获取用户收藏API
2 |
3 | ::: danger
4 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
5 | :::
6 |
7 | ## 接口描述
8 |
9 | - 用于歌曲列表搜索,支持分页。
10 |
11 | ## 接口地址
12 |
13 | - `GET` `/music/tencent/user/playlist`
14 |
15 | ## 请求数据类型
16 |
17 | - `application/x-www-form-urlencoded`
18 |
19 | ## 请求示例
20 |
21 | - https://api.vkeys.cn/music/tencent/user/playlist?uin=1569097443
22 |
23 | ## 请求参数
24 |
25 |
26 |
27 | | 参数名 | 是否必选 | 数据类型 | 默认值 | 说明 |
28 | |:---:|:----:|:------:|:---:|:----|
29 | | uin | 是 | int | / | QQ号 |
30 |
31 |
32 |
33 | ## 返回示例
34 |
35 | ``` json
36 | {
37 | "code": 0,
38 | "message": "访问成功",
39 | "data": {
40 | "likeSong": {
41 | "tid": 1754192231,
42 | "uin": "1569097443",
43 | "nick": "",
44 | "title": "我喜欢",
45 | "image": "http://y.gtimg.cn/mediastyle/y/img/cover_love_300.jpg",
46 | "songNum": 442,
47 | "createTime": 1746534001,
48 | "updateTime": 1745261358
49 | },
50 | "myDiss": [
51 | {
52 | "tid": 8315602051,
53 | "uin": "1569097443",
54 | "nick": "",
55 | "title": "水·花",
56 | "image": "",
57 | "songNum": 11,
58 | "createTime": 1642052979,
59 | "updateTime": 1665127741
60 | },
61 | {
62 | "tid": 8026554234,
63 | "uin": "1569097443",
64 | "nick": "",
65 | "title": "aa",
66 | "image": "http://y.gtimg.cn/music/photo_new/T002R500x500M000002DbpNa1zRNqa.jpg?n=1",
67 | "songNum": 25,
68 | "createTime": 1623328208,
69 | "updateTime": 1690696093
70 | },
71 | {
72 | "tid": 6751322298,
73 | "uin": "1569097443",
74 | "nick": "",
75 | "title": "好听的",
76 | "image": "http://y.gtimg.cn/music/photo_new/T002R500x500M000003s6uBn238PvQ.jpg?n=1",
77 | "songNum": 58,
78 | "createTime": 1551270593,
79 | "updateTime": 1690307616
80 | }
81 | ],
82 | "likeDiss": [
83 | {
84 | "tid": 7853791967,
85 | "uin": "2830388142",
86 | "nick": "墨雨",
87 | "title": "妄想症系列",
88 | "image": "http://qpic.y.qq.com/music_cover/EEIuGFXJcibxA80v5Hc1RNhwkFJ8zwicIQkIG2hyGSUYrGkRvxp8J6NQ/600?n=1",
89 | "songNum": 10,
90 | "createTime": 1610299800,
91 | "updateTime": 1610830387
92 | },
93 | {
94 | "tid": 7793074360,
95 | "uin": "2993552933",
96 | "nick": "早睡早起",
97 | "title": "〖洛天依〗恋爱理论",
98 | "image": "http://qpic.y.qq.com/music_cover/3o3EV9KZWcK7icPUAuETxpQ25J4GZ7icmbygc90z8jTvsj4NtBeAmTPw/600?n=1",
99 | "songNum": 8,
100 | "createTime": 1606229589,
101 | "updateTime": 1611923682
102 | },
103 | {
104 | "tid": 7670951918,
105 | "uin": "2256154299",
106 | "nick": "轻痕无迹",
107 | "title": "国风电子|洛天依的华夏情怀",
108 | "image": "http://qpic.y.qq.com/music_cover/xnI1ZgbxtYofBy9PIcmqEP89CZnZgtPxBCaSHXGeqy3aPbnqCiby9bw/600?n=1",
109 | "songNum": 44,
110 | "createTime": 1596960244,
111 | "updateTime": 1648646235
112 | },
113 | {
114 | "tid": 7627299556,
115 | "uin": "2256154299",
116 | "nick": "轻痕无迹",
117 | "title": "[洛天依]洛殿下歌曲精选之古风集",
118 | "image": "http://qpic.y.qq.com/music_cover/xnI1ZgbxtYofBy9PIcmqEP6TVVtKvveUMAaeDGD1Avz9NjUNjH3bWg/600?n=1",
119 | "songNum": 111,
120 | "createTime": 1593957908,
121 | "updateTime": 1715354975
122 | },
123 | {
124 | "tid": 6954294851,
125 | "uin": "1181707581",
126 | "nick": "妮蔻玲可莉",
127 | "title": "可爱到爆炸 800首萌音的洗脑",
128 | "image": "http://qpic.y.qq.com/music_cover/S6tZcNpwzyEmry2LnEzibR3HHiam4mErbmtFjtEzFIlyrJtj7kqtwPicA/600?n=1",
129 | "songNum": 825,
130 | "createTime": 1556417079,
131 | "updateTime": 1703831303
132 | },
133 | {
134 | "tid": 6937788130,
135 | "uin": "1812948313",
136 | "nick": "听风Xyi",
137 | "title": "国风动漫 · 若忘此生来世忆",
138 | "image": "http://qpic.y.qq.com/music_cover/qH8rLHHhL8O8Iibm56uPzJxicMIUJV96BOCHh79SuW8JA50SMsDMZXVg/600?n=1",
139 | "songNum": 28,
140 | "createTime": 1555301126,
141 | "updateTime": 1631209275
142 | },
143 | {
144 | "tid": 1167624049,
145 | "uin": "3050999021",
146 | "nick": "淡白的阳光",
147 | "title": "「ACG」洛天依古风曲大盘点",
148 | "image": "http://qpic.y.qq.com/music_cover/az4TLJ60PVdO54ZsMQeKYooXkEGq2GlKGpI5AXclxIpgoC0BLByHAQ/600?n=1",
149 | "songNum": 115,
150 | "createTime": 1498044379,
151 | "updateTime": 1659892414
152 | }
153 | ]
154 | },
155 | "time": "2025-05-06 20:20:02",
156 | "pid": 40,
157 | "tips": "欢迎使用落月API-V3"
158 | }
159 | ```
160 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/搜索相关接口/4-playlist.md:
--------------------------------------------------------------------------------
1 | # 歌单搜索API
2 | ::: danger
3 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
4 | :::
5 |
6 | ## 接口描述
7 |
8 | - 用于歌单列表搜索,支持分页。
9 |
10 | ## 接口地址
11 | - `GET` `/music/tencent/search/playlist`
12 |
13 | ## 请求数据类型
14 | - `application/x-www-form-urlencoded`
15 |
16 | ## 请求示例
17 | - https://api.vkeys.cn/music/tencent/search/playlist?keyword=洛天依作品集
18 |
19 | ## 请求参数
20 |
21 |
22 | | 参数名 | 是否必填 | 数据类型 | 默认值 | 说明 |
23 | |:-------:|:----:|:-------:|:---:|:----------------|
24 | | keyword | 是 | string | / | 歌单名称 |
25 | | page | 否 | int | 1 | 当前页数 |
26 | | limit | 否 | int | 10 | 每页显示数,区间:[1,60] |
27 |
28 |
29 |
30 | ## 返回示例
31 | ``` json
32 | {
33 | "code": 0,
34 | "message": "访问成功",
35 | "data": {
36 | "meta": { // [!code ++]
37 | "total": 289, //搜索结果总数 [!code ++]
38 | "nextPage": 2, //下一页的页码 [!code ++]
39 | "perPage": 10 //当前每页显示数 [!code ++]
40 | }, // [!code ++]
41 | "list": [
42 | {
43 | "dissID": "1469226790", //歌单id
44 | "dissName": "洛天依作品集", //歌单名称
45 | "dissPic": "http://y.gtimg.cn/music/photo_new/T002R300x300M000001gQ5oZ3ZIbAw.jpg?n=1", //歌单封面
46 | "introduction": "洛天依之追光使者洛天依", //歌单简介
47 | "songCount": 409, // 歌曲数量
48 | "qq": 3341727742, //创建者QQ
49 | "listenum": 63411, // 播放量
50 | "createTime": "2017-06-16", //创建时间
51 | "modifyTime": "2024-09-01" //更新时间
52 | },
53 | {
54 | "dissID": "3571679444",
55 | "dissName": "洛天依作品集",
56 | "dissPic": "http://y.gtimg.cn/music/photo_new/T002R300x300M000004WJ7Yo421SNH.jpg?n=1",
57 | "introduction": "恰似你的温柔,洛天依给你带来快乐。",
58 | "songCount": 168,
59 | "qq": 739904599,
60 | "listenum": 27079,
61 | "createTime": "2017-07-09",
62 | "modifyTime": "2018-11-17"
63 | },
64 | {
65 | "dissID": "2944228749",
66 | "dissName": "洛天依作品集",
67 | "dissPic": "http://qpic.y.qq.com/music_cover/eicCfYgX0hvaYS4KMD2PZWWQhwmW7nUiaPoib5EjicpBmia49wK8ex2EEkw/300?n=1",
68 | "introduction": "这里是洛天依迷的歌单呐~我自己也是。我已经尽量把歌单丰富了,但是达到上限了。我觉得惋惜,对不起了,各位!
歌单作者,铭晨留。",
69 | "songCount": 999,
70 | "qq": 122974457,
71 | "listenum": 21629,
72 | "createTime": "2017-01-07",
73 | "modifyTime": "2019-09-10"
74 | },
75 | {
76 | "dissID": "1462266537",
77 | "dissName": " 洛天依作品集",
78 | "dissPic": "http://qpic.y.qq.com/music_cover/pD0SibuibAVRMUOOiaAjJPOxkxgQ2CSmQ696jhcdY1jLv5ZCQEr3VrSOA/300?n=1",
79 | "introduction": "洛天依洛天依洛天依洛天依洛天依洛天依洛天依",
80 | "songCount": 109,
81 | "qq": 2891000732,
82 | "listenum": 18292,
83 | "createTime": "2017-04-24",
84 | "modifyTime": "2019-08-22"
85 | },
86 | {
87 | "dissID": "3186267568",
88 | "dissName": "洛天依作品集",
89 | "dissPic": "http://qpic.y.qq.com/music_cover/PJpqE89pQzOM6iaLicxvLAVls94bkFk5IkeurOutoRE7JrLwDv7U8Mjg/300?n=1",
90 | "introduction": "天依宝宝的作品集,加油,love you",
91 | "songCount": 31,
92 | "qq": 156387868,
93 | "listenum": 17815,
94 | "createTime": "2010-07-30",
95 | "modifyTime": "2017-08-09"
96 | },
97 | {
98 | "dissID": "745606172",
99 | "dissName": "洛天依作品集",
100 | "dissPic": "http://qpic.y.qq.com/music_cover/O0qtbxjiaiar7A3GsvrtTfBb5aicbRLy7yfiaj1WhicZbVG1yC3atq62LWQ/300?n=1",
101 | "introduction": "你是洛天依的粉丝吗?是的话就快来听这些歌吧",
102 | "songCount": 420,
103 | "qq": 2782862320,
104 | "listenum": 16706,
105 | "createTime": "2015-02-03",
106 | "modifyTime": "2022-10-30"
107 | },
108 | {
109 | "dissID": "1457575363",
110 | "dissName": "洛天依作品集",
111 | "dissPic": "http://qpic.y.qq.com/music_cover/Y1hiaAvOFPzDXTq6gBeEc0BkicibkWnLXarcd9ZQSt3Gib84Nhia0okHN2w/300?n=1",
112 | "introduction": "!!!!!!!!!!!!!!!!!!!!!!",
113 | "songCount": 649,
114 | "qq": 1656864332,
115 | "listenum": 16280,
116 | "createTime": "2017-03-19",
117 | "modifyTime": "2017-05-06"
118 | },
119 | {
120 | "dissID": "2622473421",
121 | "dissName": "洛天依作品集",
122 | "dissPic": "http://qpic.y.qq.com/music_cover/K1DxGIW9dOwP9dL6qjYnZQHQovO8MIibduQZAGJwkaF5ibibss3DpeBKw/300?n=1",
123 | "introduction": "天依独唱及与阿绫言和和心华星尘合唱。。
都是老曲子了",
124 | "songCount": 652,
125 | "qq": 2215356586,
126 | "listenum": 14457,
127 | "createTime": "2016-06-24",
128 | "modifyTime": "2019-08-10"
129 | },
130 | {
131 | "dissID": "1155013959",
132 | "dissName": "洛天依作品集",
133 | "dissPic": "http://qpic.y.qq.com/music_cover/pPDCthTn5RGdQcY2DaibiaiaH0dUsh4BOgadleJn6MIaNBQwH6d4bzOdw/300?n=1",
134 | "introduction": "洛天依单品合集 超治愈",
135 | "songCount": 395,
136 | "qq": 468621421,
137 | "listenum": 13982,
138 | "createTime": "2017-03-18",
139 | "modifyTime": "2017-03-30"
140 | },
141 | {
142 | "dissID": "2342340771",
143 | "dissName": "洛天依作品集",
144 | "dissPic": "http://qpic.y.qq.com/music_cover/m42gVSkGzvcSictSiark0ibpeXDffLRxwKjzYD5mJZBeLd7yu6VjTmWcw/300?n=1",
145 | "introduction": "你也喜欢洛天依的歌吗?那就来听一听吧!",
146 | "songCount": 166,
147 | "qq": 3306255015,
148 | "listenum": 11018,
149 | "createTime": "2016-11-26",
150 | "modifyTime": "2017-03-30"
151 | }
152 | ]
153 | },
154 | "time": "2025-04-15 20:06:43",
155 | "pid": 15668,
156 | "tips": "欢迎使用落月API-V3"
157 | }
158 | ```
159 |
--------------------------------------------------------------------------------
/src/v2/音乐模块/网易云音乐/2-lyric.md:
--------------------------------------------------------------------------------
1 | # 歌词API
2 |
3 | ## 简要描述
4 |
5 | - 这是一个获取网易云音乐歌词接口,只能用于获取歌词,其他参数无效。
6 | - 所需参数在搜索或获取播放地址时获取
7 |
8 | ## 请求URL
9 | - `/v2/music/netease/lyric`
10 |
11 | ## 请求方式
12 | - `GET` / `POST`
13 |
14 | ## 请求示例
15 | - https://api.vkeys.cn/v2/music/netease/lyric?id=2078368206
16 |
17 | ## 请求参数
18 |
19 | | 参数名 | 是否必选 | 数据类型 | 说明 |
20 | |:---:|:----:|:----:|:-----|
21 | | id | 是/否 | int | 歌曲id |
22 |
23 | ## 返回示例
24 | ``` json
25 | {
26 | "code": 200,
27 | "message": "请求成功!",
28 | "data": {
29 | "lrc": "[00:00.00]作词: 乐仔\n[00:01.00]作曲: 徐肖@Alnova\n[00:02.00]编曲: 徐肖@Alnova\n[00:03.00]制作人: 赵磊\n[00:12.42]ya la hu la\n[00:15.84]任天地之间 吟游四方\n[00:19.68]偶尔有风浪\n[00:23.22]是否也无妨\n[00:26.43]\n[00:31.92]耳边牧歌送来青色海洋\n[00:34.77]看朝霞 吻他乡\n[00:39.06]远看仙女嬉戏雪山间\n[00:41.64]天音也悠扬\n[00:46.26]\n[00:46.29]琴声沙哑越过西域长廊\n[00:49.17]惹昭君 裙舞旋转\n[00:52.74]千山万水 写成诗篇里的远方\n[00:58.83]\n[00:59.67]那些对生活的向往\n[01:03.30]流进这梦想的微光\n[01:06.81]星空下眺望却 听见南来北往\n[01:11.61]\n[01:11.64]a ya la hu la\n[01:17.43]任天地之间 吟游四方\n[01:20.91]行囊厚如山\n[01:24.57]思绪却柔软\n[01:28.98]\n[01:29.01]a ya la hu la\n[01:31.86]任天地之间 吟游四方\n[01:35.52]偶尔有风浪\n[01:38.97]我想也无妨\n[01:42.39]\n[02:11.67]那些对生活的向往\n[02:15.30]流进这梦想的微光\n[02:18.78]星空下眺望却 听见南来北往\n[02:23.61]\n[02:26.47]a ya la hu la\n[02:30.36]任天地之间 吟游四方\n[02:33.84]行囊厚如山\n[02:37.50]思绪却柔软\n[02:40.82]a ya la hu la\n[02:44.76]任天地之间 吟游四方\n[02:48.45]偶尔有风浪\n[02:51.87]我想也无妨\n[02:54.36]\n[02:55.56]a ya la hu la\n[02:59.13]听声声不息 吟游四方\n[03:02.58]寻烟火的绚烂\n[03:06.27]就在此生此刻\n[03:08.10]平淡也有光\n[03:09.84]\n[03:09.87]来 扬帆远航 人海茫茫\n[03:13.56]有歌的地方 自有向往\n[03:16.83]岁月不声不响\n[03:22.38]肆意而生长\n[03:23.87]调校:Creuzer\n[03:25.37]和声:徐肖@Alnova/ 于妍 / 张超俊 / 高海旭 / 张娜\n[03:26.86]录音:贠昕成/刘芷钰/北京艾基木音乐工作室/拉萨蓝面具音乐工作室混音 \n[03:28.36]母带:赵靖\n[03:29.86]葫芦丝:丁晓逵\n[03:31.35]冬不拉:穆热阿勒·比目拉提\n[03:32.85]藏戏 / 藏鼓 / 钹:旦增益西\n[03:34.34]马头琴 / 呼麦:哈拉木吉\n[03:35.84]热瓦普:努日亚·阿不力米提\n[03:37.34]新疆手鼓:依克拉姆·外力\n[03:38.83]出品:徐博(波吉)\n[03:40.33]项目策划:黄欢淼 / 林捷\n[03:41.82]版权所有:上海哔哩哔哩科技有限公司/ Vsinger\n[03:43.32]版权声明:未经著作权人书面许可,任何人不得以任何方式使用(包括翻唱、翻录等)\n\n",
30 | "yrc": "{\"t\":0,\"c\":[{\"tx\":\"作词: \"},{\"tx\":\"乐仔\"}]}\n{\"t\":3105,\"c\":[{\"tx\":\"作曲: \"},{\"tx\":\"徐肖@Alnova\"}]}\n{\"t\":6210,\"c\":[{\"tx\":\"编曲: \"},{\"tx\":\"徐肖@Alnova\"}]}\n{\"t\":9315,\"c\":[{\"tx\":\"制作人: \"},{\"tx\":\"赵磊\"}]}\n[12420,3470](12420,290,0)ya (12710,380,0)la (13090,90,0)hu (13180,60,0)la\n[15890,3800](15890,270,0)任(16160,360,0)天(16520,320,0)地(16840,240,0)之(17080,600,0)间 (17680,320,0)吟(18000,630,0)游(18630,360,0)四(18990,430,0)方\n[19690,3600](19690,240,0)偶(19930,310,0)尔(20240,320,0)有(20560,190,0)风(20850,270,0)浪\n[23290,8580](23290,360,0)是(23650,320,0)否(23970,320,0)也(24290,280,0)无(24570,1860,0)妨\n[31870,2920](31870,130,0)耳(32000,280,0)边(32280,170,0)牧(32450,240,0)歌(32690,220,0)送(32910,220,0)来(33130,190,0)青(33320,240,0)色(33560,280,0)海(33840,440,0)洋\n[34790,4270](34790,340,0)看(35130,200,0)朝(35330,620,0)霞 (36590,310,0)吻(36900,250,0)他(37150,850,0)乡\n[39060,2600](39060,180,0)远(39240,160,0)看(39400,260,0)仙(39660,210,0)女(39870,200,0)嬉(40070,290,0)戏(40360,140,0)雪(40500,280,0)山(40780,610,0)间\n[41660,4520](41660,370,0)天(42030,210,0)音(42240,360,0)也(42600,610,0)悠(43210,370,0)扬\n[46180,3010](46180,200,0)琴(46380,250,0)声(46630,210,0)沙(46840,320,0)哑(47160,140,0)越(47300,250,0)过(47550,280,0)西(47830,150,0)域(47980,550,0)长(48530,470,0)廊\n[49190,3580](49190,340,0)惹(49530,250,0)昭(49780,560,0)君 (50340,340,0)裙(50680,570,0)舞(51250,340,0)旋(51590,1010,0)转\n[52770,6900](52770,300,0)千(53070,300,0)山(53370,310,0)万(53680,670,0)水 (54510,390,0)写(54900,240,0)成(55140,340,0)诗(55480,340,0)篇(55820,350,0)里(56170,380,0)的(56660,350,0)远(57010,1050,0)方\n[59670,3650](59670,290,0)那(59960,410,0)些(60370,200,0)对(60570,580,0)生(61150,380,0)活(61530,470,0)的(62030,300,0)向(62330,770,0)往\n[63320,3540](63320,310,0)流(63630,300,0)进(63930,230,0)这(64160,570,0)梦(64730,410,0)想(65140,310,0)的(65720,300,0)微(66020,520,0)光\n[66860,7010](66860,360,0)星(67220,240,0)空(67460,350,0)下(67810,490,0)眺(68300,360,0)望(68660,450,0)却 (69270,310,0)听(69580,540,0)见(70120,380,0)南(70500,540,0)来(71040,390,0)北(71430,500,0)往\n[73870,3570](73870,110,0)a (73980,400,0)ya (74380,170,0)la (76920,60,0)hu (76980,420,0)la\n[77440,3580](77440,270,0)任(77710,340,0)天(78050,300,0)地(78350,250,0)之(78600,250,0)间 (79300,210,0)吟(79510,260,0)游(79990,420,0)四(80410,330,0)方\n[81020,3610](81020,320,0)行(81340,280,0)囊(81620,320,0)厚(81940,180,0)如(82120,350,0)山\n[84630,3650](84630,270,0)思(84900,300,0)绪(85200,250,0)却(85450,350,0)柔(85800,360,0)软\n[88280,3580](88280,100,0)a (88380,430,0)ya (88810,280,0)la (89090,300,0)hu (89390,190,0)la\n[91860,3700](91860,280,0)任(92140,300,0)天(92440,300,0)地(92740,260,0)之(93030,540,0)间 (93600,330,0)吟(93930,280,0)游(94550,280,0)四(94830,310,0)方\n[95560,3480](95560,200,0)偶(95760,260,0)尔(96020,290,0)有(96310,260,0)风(96570,210,0)浪\n[99040,32630](99040,180,0)我(99220,400,0)想(99620,320,0)也(99940,240,0)无(100180,220,0)妨\n[131670,3630](131670,290,0)那(131960,400,0)些(132360,210,0)对(132570,550,0)生(133120,410,0)活(133530,430,0)的(133990,350,0)向(134340,760,0)往\n[135300,3560](135300,330,0)流(135630,310,0)进(135940,220,0)这(136160,590,0)梦(136750,370,0)想(137120,310,0)的(137760,230,0)微(137990,550,0)光\n[138860,7910](138860,370,0)星(139230,230,0)空(139460,330,0)下(139790,530,0)眺(140320,350,0)望(140670,410,0)却 (141310,270,0)听(141580,540,0)见(142120,370,0)南(142490,530,0)来(143020,410,0)北(143430,370,0)往\n[146770,3620](146770,517,0)a (147287,517,0)ya (148321,517,0)la (149355,517,0)hu (149872,518,0)la\n[150390,3490](150390,210,0)任(150600,360,0)天(150960,280,0)地(151240,230,0)之(151470,320,0)间 (152130,300,0)吟(152440,250,0)游(153000,300,0)四(153370,160,0)方\n[153880,3670](153880,300,0)行(154180,230,0)囊(154440,390,0)厚(154830,170,0)如(155000,320,0)山\n[157550,2260](157550,250,0)思(157800,270,0)绪(158070,280,0)却(158350,380,0)柔(158730,310,0)软\n[159810,4960](159810,30,0)a (159840,760,0)ya (160640,860,0)la (162080,220,0)hu (162300,170,0)la\n[164770,3680](164770,200,0)任(164970,360,0)天(165330,320,0)地(165650,240,0)之(165890,220,0)间 (166560,270,0)吟(166830,540,0)游(167370,330,0)四(167770,680,0)方\n[168450,3480](168450,270,0)偶(168740,180,0)尔(168920,290,0)有(169210,190,0)风(169500,240,0)浪\n[171930,3640](171930,190,0)我(172120,380,0)想(172500,320,0)也(172820,260,0)无(173080,1830,0)妨\n[175570,3560](175570,100,0)a (175670,410,0)ya (176080,240,0)la (176320,250,0)hu (176570,60,0)la\n[179130,3500](179130,260,0)听(179390,290,0)声(179680,360,0)声(180040,240,0)不(180280,220,0)息 (180960,270,0)吟(181230,480,0)游(181770,320,0)四(182090,240,0)方\n[182630,3710](182630,400,0)寻(183030,320,0)烟(183350,180,0)火(183530,310,0)的(183840,360,0)绚(184710,1320,0)烂\n[186340,1700](186340,180,0)就(186520,110,0)在(186630,260,0)此(186890,340,0)生(187230,330,0)此(187560,180,0)刻\n[188040,1840](188040,420,0)平(188460,240,0)淡(188700,330,0)也(189030,300,0)有(189330,480,0)光\n[189880,3650](189880,340,0)来 (190220,320,0)扬(190540,280,0)帆(190820,210,0)远(191100,270,0)航 (191760,270,0)人(192030,570,0)海(192600,300,0)茫(192900,270,0)茫\n[193530,3040](193530,210,0)有(193740,150,0)歌(193890,240,0)的(194130,240,0)地(194370,330,0)方 (195210,140,0)自(195350,190,0)有(195540,300,0)向(195840,60,0)往\n[196570,5850](196570,731,0)岁(197301,731,0)月(198763,731,0)不(199494,731,0)声(200225,731,0)不(200956,731,0)响\n[202420,20910](202420,390,0)肆(202810,410,0)意(203220,170,0)而(203390,320,0)生(203710,2490,0)长\n{\"t\":223330,\"c\":[{\"tx\":\"调校:Creuzer\"}]}\n{\"t\":223430,\"c\":[{\"tx\":\"和声:徐肖@Alnova/ 于妍 / 张超俊 / 高海旭 / 张娜\"}]}\n{\"t\":223530,\"c\":[{\"tx\":\"录音:贠昕成/刘芷钰/北京艾基木音乐工作室/拉萨蓝面具音乐工作室混音 \"}]}\n{\"t\":223630,\"c\":[{\"tx\":\"母带:赵靖\"}]}\n{\"t\":223730,\"c\":[{\"tx\":\"葫芦丝:丁晓逵\"}]}\n{\"t\":223830,\"c\":[{\"tx\":\"冬不拉:穆热阿勒·比目拉提\"}]}\n{\"t\":223930,\"c\":[{\"tx\":\"藏戏 / 藏鼓 / 钹:旦增益西\"}]}\n{\"t\":224030,\"c\":[{\"tx\":\"马头琴 / 呼麦:哈拉木吉\"}]}\n{\"t\":224130,\"c\":[{\"tx\":\"热瓦普:努日亚·阿不力米提\"}]}\n{\"t\":224230,\"c\":[{\"tx\":\"新疆手鼓:依克拉姆·外力\"}]}\n{\"t\":224330,\"c\":[{\"tx\":\"出品:徐博(波吉)\"}]}\n{\"t\":224430,\"c\":[{\"tx\":\"项目策划:黄欢淼 / 林捷\"}]}\n{\"t\":224530,\"c\":[{\"tx\":\"版权所有:上海哔哩哔哩科技有限公司/ Vsinger\"}]}\n{\"t\":224630,\"c\":[{\"tx\":\"版权声明:未经著作权人书面许可,任何人不得以任何方式使用(包括翻唱、翻录等)\"}]}\n"
31 | },
32 | "time": "2024-01-12 15:28:59",
33 | "tips": "欢迎使用API-Server"
34 | }
35 | ```
36 |
37 | ## 备注
38 |
39 | - [点击查看调用信息](https://api.vkeys.cn/V1/Music/Netease/Lyric/Call "点击查看调用信息")
40 |
--------------------------------------------------------------------------------
/src/v3/音乐模块/QQ音乐/搜索相关接口/6-mv.md:
--------------------------------------------------------------------------------
1 | # 视频(MV)搜索API
2 | ::: danger
3 | 此接口仍在开发中,在此期间接口可能会经常变更,不建议使用。
4 | :::
5 |
6 | ## 接口描述
7 |
8 | - 用于视频列表搜索,支持分页。
9 |
10 | ## 接口地址
11 | - `GET` `/music/tencent/search/mv`
12 |
13 | ## 请求数据类型
14 | - `application/x-www-form-urlencoded`
15 |
16 | ## 请求示例
17 | - https://api.vkeys.cn/music/tencent/search/mv?keyword=追光使者
18 |
19 | ## 请求参数
20 |
21 |
22 | | 参数名 | 是否必填 | 数据类型 | 默认值 | 说明 |
23 | |:-------:|:----:|:-------:|:---:|:----------------|
24 | | keyword | 是 | string | / | 视频名称 |
25 | | page | 否 | int | 1 | 当前页数 |
26 | | limit | 否 | int | 10 | 每页显示数,区间:[1,60] |
27 |
28 |
29 |
30 | ## 返回示例
31 | ``` json
32 | {
33 | "code": 0,
34 | "message": "访问成功",
35 | "data": {
36 | "meta": { // [!code ++]
37 | "total": 16, //搜索结果总数 [!code ++]
38 | "nextPage": 2, //下一页的页码 [!code ++]
39 | "perPage": 10 //当前每页显示数 [!code ++]
40 | }, // [!code ++]
41 | "list": [
42 | {
43 | "vid": "s0022035zvf", // 视频ID
44 | "mvID": 1068730, // MV ID
45 | "mvName": "追光使者", // MV名称
46 | "mvPic": "http://y.gtimg.cn/music/photo_new/T015R640x360M101003r1thD0srXkQ.jpg", // MV封面图片
47 | "publishDate": "2017-01-04", // 发布时间
48 | "duration": 195, // 视频时长,单位:秒
49 | "playCount": 1785486, // 播放次数
50 | "uploaderNick": "", // 上传者昵称
51 | "uploaderUin": "", // 上传者UIN
52 | "singerMID": "003ktdcg3E4kaG", // 歌手MID
53 | "singerName": "洛天依", // 歌手名称
54 | "singerList": [ // 歌手列表
55 | {
56 | "id": 61386,
57 | "mid": "003ktdcg3E4kaG",
58 | "name": "洛天依",
59 | "pmid": "003ktdcg3E4kaG_7",
60 | "title": "洛天依",
61 | "type": 0,
62 | "uin": 0
63 | }
64 | ]
65 | },
66 | {
67 | "vid": "c0024yx5qi2",
68 | "mvID": 1360366,
69 | "mvName": "追光使者 (2017洛天依全息演唱会)",
70 | "mvPic": "http://y.gtimg.cn/music/photo_new/T015R640x360M000002RGkIW2SQWGE.jpg",
71 | "publishDate": "2017-08-07",
72 | "duration": 187,
73 | "playCount": 342184,
74 | "uploaderNick": "倾听着雪花飘落的声音",
75 | "uploaderUin": "3223141926",
76 | "singerMID": "003ktdcg3E4kaG",
77 | "singerName": "洛天依",
78 | "singerList": [
79 | {
80 | "id": 61386,
81 | "mid": "003ktdcg3E4kaG",
82 | "name": "洛天依",
83 | "pmid": "003ktdcg3E4kaG_7",
84 | "title": "洛天依",
85 | "type": 0,
86 | "uin": 0
87 | }
88 | ]
89 | },
90 | {
91 | "vid": "011puuFb18cI28",
92 | "mvID": 16219862,
93 | "mvName": "【洛天依原创】追光使者【官方PV版】",
94 | "mvPic": "http://y.gtimg.cn/music/photo_new/T023R750x750M0000029jIK63GCXrX.jpg",
95 | "publishDate": "2021-09-14",
96 | "duration": 195,
97 | "playCount": 251,
98 | "uploaderNick": "最IN乐",
99 | "uploaderUin": "1728803671",
100 | "singerMID": "0032fmHO2UDnV3",
101 | "singerName": "",
102 | "singerList": []
103 | },
104 | {
105 | "vid": "0112669H3Hh4gT",
106 | "mvID": 11850730,
107 | "mvName": "马可搭档洛天依乐正绫 同框合唱《追光使者》",
108 | "mvPic": "http://y.gtimg.cn/music/photo_new/T023R750x750M000001xOn0d06JPJR.jpg",
109 | "publishDate": "2020-10-23",
110 | "duration": 239,
111 | "playCount": 771,
112 | "uploaderNick": "最IN乐",
113 | "uploaderUin": "1728803671",
114 | "singerMID": "0032fmHO2UDnV3",
115 | "singerName": "",
116 | "singerList": []
117 | },
118 | {
119 | "vid": "011ykUa20zbSCK",
120 | "mvID": 16626766,
121 | "mvName": "洛天依《追光使者》历次演出汇总",
122 | "mvPic": "http://y.gtimg.cn/music/photo_new/T023R750x750M000004ZtrGF3hRuc7.jpg",
123 | "publishDate": "2021-10-06",
124 | "duration": 201,
125 | "playCount": 157,
126 | "uploaderNick": "乐下瓜田",
127 | "uploaderUin": "3272406171",
128 | "singerMID": "0032fmHO2UDnV3",
129 | "singerName": "",
130 | "singerList": []
131 | },
132 | {
133 | "vid": "0133qIju4b2TQR",
134 | "mvID": 13984407,
135 | "mvName": "原以为只是一个动漫,竟然跟着洛天依的歌声进入二次元海底世界",
136 | "mvPic": "https://y.gtimg.cn/music/photo_new/T053R750x750M000002XdNl84Ji4rr.jpg",
137 | "publishDate": "2021-05-21",
138 | "duration": 195,
139 | "playCount": 18863,
140 | "uploaderNick": "致燃音乐汇",
141 | "uploaderUin": "1152921504974775463",
142 | "singerMID": "0032fmHO2UDnV3",
143 | "singerName": "洛天依",
144 | "singerList": []
145 | },
146 | {
147 | "vid": "0148nLMI4Y7rQz",
148 | "mvID": 9929699,
149 | "mvName": "洛天依直播“假唱”,李佳琦对着空气一顿猛夸!680万网友看懵了",
150 | "mvPic": "https://y.gtimg.cn/music/photo_new/T023R750x750M00000241lDb2GvJko.jpg",
151 | "publishDate": "2020-04-24",
152 | "duration": 209,
153 | "playCount": 23991,
154 | "uploaderNick": "音乐Fans小琼",
155 | "uploaderUin": "3403045185",
156 | "singerMID": "0032fmHO2UDnV3",
157 | "singerName": "洛天依",
158 | "singerList": []
159 | },
160 | {
161 | "vid": "01040OZC31W8uu",
162 | "mvID": 15520908,
163 | "mvName": "#夏日打卡挑战 这么可爱的依依,你爱了吗#带着抖音逛漫展 #洛天依为孙越唱小白船",
164 | "mvPic": "https://y.gtimg.cn/music/photo_new/T053R750x750M000001cWMfQ1nCYmE.jpg",
165 | "publishDate": "2021-08-16",
166 | "duration": 28,
167 | "playCount": 4681,
168 | "uploaderNick": "小花猫动漫屋",
169 | "uploaderUin": "4295059946",
170 | "singerMID": "0032fmHO2UDnV3",
171 | "singerName": "洛天依/秦昊/孙越",
172 | "singerList": []
173 | },
174 | {
175 | "vid": "012teAxL1KtSfh",
176 | "mvID": 23159235,
177 | "mvName": "【音乐Fans小琼】 洛天依直播“假唱”,李佳琦对着空气一顿猛夸!680万网友看懵了! | 音乐Fans小琼",
178 | "mvPic": "https://y.gtimg.cn/music/photo_new/T053R750x750M000001oTAUm37HAee.jpg",
179 | "publishDate": "2022-05-18",
180 | "duration": 209,
181 | "playCount": 971,
182 | "uploaderNick": "爱听晴天的音乐君",
183 | "uploaderUin": "4295130390",
184 | "singerMID": "0032fmHO2UDnV3",
185 | "singerName": "",
186 | "singerList": []
187 | },
188 | {
189 | "vid": "012XNZrW0qt7BK",
190 | "mvID": 14534384,
191 | "mvName": "原以为只是一个动漫,竟然跟着洛天依的歌声进入二次元海底世界",
192 | "mvPic": "https://y.gtimg.cn/music/photo_new/T053R750x750M000003RiHvS2KEwFC.jpg",
193 | "publishDate": "2021-06-25",
194 | "duration": 188,
195 | "playCount": 172,
196 | "uploaderNick": "最美倾听",
197 | "uploaderUin": "1152921504833243136",
198 | "singerMID": "0032fmHO2UDnV3",
199 | "singerName": "",
200 | "singerList": []
201 | }
202 | ]
203 | },
204 | "time": "2025-04-16 19:42:42",
205 | "pid": 14,
206 | "tips": "欢迎使用落月API-V3"
207 | }
208 | ```
209 |
--------------------------------------------------------------------------------
/.vitepress/config.mts:
--------------------------------------------------------------------------------
1 | import {loadEnv, type ConfigEnv, defineConfig, type UserConfig} from 'vitepress'
2 | import {withSidebar, VitePressSidebarOptions} from 'vitepress-sidebar';
3 | import {transformerTwoslash} from '@shikijs/vitepress-twoslash'
4 | import { createFileSystemTypesCache } from '@shikijs/vitepress-twoslash/cache-fs'
5 | import {groupIconMdPlugin} from 'vitepress-plugin-group-icons'
6 | import {withI18n} from 'vitepress-i18n';
7 | import {withPwa} from "@vite-pwa/vitepress";
8 | import markdownItTaskCheckbox from 'markdown-it-task-checkbox'
9 |
10 | const basePath = '/'
11 | const title = "落月API";
12 | const description = "介绍";
13 |
14 |
15 | // https://vitepress.dev/reference/site-config
16 | const vitePressConfig = (env): UserConfig => {
17 | return {
18 | lang: 'zh-CN',
19 | title: title,
20 | description: description,
21 | contentProps: {
22 | ...env
23 | },
24 | sitemap: {
25 | hostname: 'https://doc.vkeys.cn/'
26 | },
27 | metaChunk: true,
28 | // mpa: true,
29 | head: [
30 | ['script', {
31 | src: 'https://at.alicdn.com/t/c/font_4891400_cfrebzhw43.js',
32 | }],
33 | ['script', {
34 | src: 'https://gcore.jsdelivr.net/npm/oh-my-live2d@0.19.3/dist/index.min.js',//testingcf.jsdelivr.net
35 | 'data-global': 'OML2D'
36 | }],
37 | ['script', {
38 | async: 'async',
39 | // 记得替换成你的真正的 src
40 | src: 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8772090059199613',
41 | crossorigin: 'anonymous',
42 | }],
43 | [
44 | "link",
45 | {
46 | rel: "icon",
47 | sizes: "16x16",
48 | href: basePath + "favicon-16x16.ico"
49 | }
50 | ],
51 | [
52 | "link",
53 | {
54 | rel: "shortcut icon",
55 | href: basePath + "favicon-16x16.ico"
56 | }
57 | ],
58 | ],
59 | markdown: {
60 | container: {
61 | tipLabel: '提示',
62 | warningLabel: '警告',
63 | dangerLabel: '危险',
64 | infoLabel: '信息',
65 | detailsLabel: '详细信息'
66 | },
67 | image: {
68 | lazyLoading: true
69 | },
70 | lineNumbers: true,
71 | config(md) {
72 | md.use(groupIconMdPlugin, {
73 | titleBar: {includeSnippet: true},
74 | })
75 | .use(markdownItTaskCheckbox)
76 | },
77 | codeTransformers: [
78 | transformerTwoslash({
79 | typesCache: createFileSystemTypesCache(),
80 | })
81 | ],
82 | languages: ['js', 'jsx', 'ts', 'tsx']
83 | },
84 | themeConfig: {
85 | // https://vitepress.dev/reference/default-theme-config
86 | logo: "/images/pwa-512x512.png",
87 | socialLinks: [
88 | {icon: 'github', link: 'https://github.com/lvluoyue/api-doc'},
89 | {icon: 'qq', link: 'https://github.com/lvluoyue/api-doc'},
90 | ],
91 | nav: [
92 | {text: '介绍', link: '/jieshao'},
93 | {text: 'MCP服务器', link: '/mcp'},
94 | {
95 | text: '版本',
96 | items: [
97 | {text: 'v3', link: '/v3'},
98 | {text: 'v2', link: '/v2'},
99 | {text: 'v1', link: '/v1'},
100 | ]
101 | }
102 | ],
103 | search: {
104 | provider: "local",
105 | options: {
106 | miniSearch: {
107 | options: {
108 | /* ... */
109 | },
110 | searchOptions: {
111 | /* ... */
112 | },
113 | },
114 | translations: {
115 | button: {
116 | buttonText: "搜索文档",
117 | buttonAriaLabel: "搜索文档",
118 | },
119 | modal: {
120 | noResultsText: "没有找到结果",
121 | resetButtonTitle: "清除搜索条件",
122 | footer: {
123 | selectText: "选择",
124 | navigateText: "切换",
125 | closeText: "关闭",
126 | },
127 | },
128 | },
129 | },
130 | },
131 |
132 | footer: {
133 | // message: `京ICP备20016634号-2`,
134 | copyright: `版权所有 © 2023-${new Date().getFullYear()} 落月`,
135 | },
136 |
137 | docFooter: {
138 | prev: "上一页",
139 | next: "下一页",
140 | },
141 |
142 | // https://vitepress.dev/zh/reference/default-theme-config#outline
143 | outline: {
144 | level: [2, 3],
145 | label: "页面导航",
146 | },
147 |
148 | editLink: {
149 | pattern: 'https://github.com/lvluoyue/api-doc/edit/main/src/:path'
150 | },
151 |
152 | lastUpdated: {
153 | text: "最后更新于",
154 | formatOptions: {
155 | dateStyle: "short", // full
156 | timeStyle: "medium", // medium
157 | hourCycle: "h24"
158 | },
159 | },
160 |
161 | langMenuLabel: "多语言",
162 | returnToTopLabel: "回到顶部",
163 | sidebarMenuLabel: "菜单",
164 | darkModeSwitchLabel: "主题",
165 | lightModeSwitchTitle: "切换到浅色模式",
166 | darkModeSwitchTitle: "切换到深色模式",
167 | },
168 | outDir: 'dist',
169 | srcDir: 'src',
170 | cacheDir: '.cache',
171 | base: basePath,
172 | vite: {
173 | configFile: './vite.config.mts'
174 | },
175 | pwa: {
176 | devOptions: {
177 | enabled: true,
178 | suppressWarnings: true,
179 | type: 'module',
180 | navigateFallback: '/',
181 | resolveTempFolder: () => 'dev-dist'
182 | },
183 | mode: env.VITE_APP_MODE || 'development',
184 | base: basePath,
185 | outDir: "../dist", // 输出目录
186 | registerType: "autoUpdate", // 注册类型为自动更新
187 | includeManifestIcons: false, // 不包含清单图标
188 | display: "fullscreen",
189 | manifest: {
190 | id: "1", // 清单 ID
191 | name: title, // 应用名称
192 | short_name: title, // 应用的短名称
193 | description: description, // 应用的描述
194 | theme_color: "#ffffff", // 主题颜色
195 | lang: "zh-CN",
196 | version: "1.0.1",
197 | icons: [
198 | {
199 | src: "./images/pwa-192x192.png", // 图标路径
200 | sizes: "192x192", // 图标尺寸
201 | type: "image/png", // 图标类型
202 | purpose: "any",
203 | },
204 | {
205 | src: "./images/pwa-512x512.png",
206 | sizes: "512x512",
207 | type: "image/png",
208 | purpose: "any",
209 | },
210 | ],
211 | },
212 | workbox: {
213 | globPatterns: ["**/*.{css,js,html,svg,png,ico,txt,woff2,moc,json}"], // 匹配需要缓存的文件类型
214 | globIgnores: ["sw.js"],
215 | runtimeCaching: [
216 | {
217 | urlPattern: /^https:\/\/model\.hacxy\.cn\/.*/i, // 匹配需要缓存的 Google 字体
218 | handler: "CacheFirst", // 缓存优先策略
219 | options: {
220 | cacheName: "live2d-model-hacxy", // 缓存名称
221 | expiration: {
222 | maxEntries: 30, // 最大缓存条目数
223 | maxAgeSeconds: 60 * 60 * 24 * 365, // 缓存有效期,365天
224 | },
225 | cacheableResponse: {
226 | statuses: [0, 200], // 缓存的响应状态码
227 | },
228 | },
229 | },
230 | {
231 | urlPattern: /^https:\/\/giscus\.app\/.*/i, // 匹配需要缓存的 Google 字体
232 | handler: "CacheFirst", // 缓存优先策略
233 | options: {
234 | cacheName: "giscus", // 缓存名称
235 | expiration: {
236 | maxEntries: 20, // 最大缓存条目数
237 | maxAgeSeconds: 60 * 60 * 24 * 7, // 缓存有效期,7天
238 | },
239 | cacheableResponse: {
240 | statuses: [0, 200], // 缓存的响应状态码
241 | },
242 | },
243 | },
244 | {
245 | urlPattern: /^https:\/\/gh-proxy\.com\/.*/i, // 匹配需要缓存的 gh-proxy 图片
246 | handler: "CacheFirst", // 网络优先策略
247 | options: {
248 | cacheName: "gh-proxy", // 缓存名称
249 | expiration: {
250 | maxEntries: 50, // 最大缓存条目数
251 | maxAgeSeconds: 60 * 60 * 24 * 7, // 缓存有效期,365天
252 | },
253 | cacheableResponse: {
254 | statuses: [0, 200], // 缓存的响应状态码
255 | },
256 | },
257 | },
258 | {
259 | urlPattern: /^https:\/\/proxy\.pipers\.cn\/.*/i, // 匹配需要缓存的 gh-proxy 图片
260 | handler: "CacheFirst", // 网络优先策略
261 | options: {
262 | cacheName: "proxy-pipers", // 缓存名称
263 | expiration: {
264 | maxEntries: 50, // 最大缓存条目数
265 | maxAgeSeconds: 60 * 60 * 24 * 7, // 缓存有效期,365天
266 | },
267 | cacheableResponse: {
268 | statuses: [0, 200], // 缓存的响应状态码
269 | },
270 | },
271 | },
272 | {
273 | urlPattern: /\.(js|html)(\?.*)?/i, // 匹配json后缀
274 | handler: "NetworkFirst", // 缓存优先策略
275 | options: {
276 | cacheName: "docs", // 缓存名称
277 | expiration: {
278 | maxEntries: 200, // 最大缓存条目数
279 | maxAgeSeconds: 60 * 60 * 24 * 3, // 缓存有效期,3天
280 | },
281 | cacheableResponse: {
282 | statuses: [0, 200], // 缓存的响应状态码
283 | },
284 | },
285 | },
286 | ],
287 | },
288 | },
289 | };
290 | }
291 |
292 | const vitePressSidebarConfig: VitePressSidebarOptions = () => {
293 | return [
294 | {
295 | documentRootPath: "/src",
296 | scanStartPath: 'v3',
297 | resolvePath: '/v3/',
298 | collapsed: false,
299 | useTitleFromFileHeading: true,
300 | useTitleFromFrontmatter: true,
301 | sortMenusOrderNumericallyFromLink: true,
302 | includeRootIndexFile: true,
303 | sortFolderTo: 'bottom',
304 | manualSortFileNameByPriority: ['指南', '音乐模块', '搜索相关接口']
305 | },
306 | {
307 | documentRootPath: "/src",
308 | scanStartPath: 'v2',
309 | resolvePath: '/v2/',
310 | collapsed: false,
311 | useTitleFromFileHeading: true,
312 | useTitleFromFrontmatter: true,
313 | sortMenusOrderNumericallyFromLink: true,
314 | includeRootIndexFile: true,
315 | sortFolderTo: 'bottom',
316 | manualSortFileNameByPriority: ['指南', '音乐模块']
317 | },
318 | {
319 | documentRootPath: "/src",
320 | scanStartPath: 'v1',
321 | resolvePath: '/v1/',
322 | collapsed: false,
323 | useTitleFromFileHeading: true,
324 | useTitleFromFrontmatter: true,
325 | sortMenusOrderNumericallyFromLink: true,
326 | includeRootIndexFile: true,
327 | manualSortFileNameByPriority: []
328 | }
329 | ];
330 | }
331 |
332 | const vitePressI18nConfig = () => {
333 | return {
334 | // VitePress I18n config
335 | locales: ['zhHans'], // first locale 'en' is root locale //, 'en', 'ko'
336 | searchProvider: 'local' // enable search with auto translation
337 | };
338 | }
339 |
340 | export default defineConfig(({mode}: ConfigEnv): UserConfig => {
341 | const env = loadEnv(mode, process.cwd());
342 | return withPwa(withSidebar(withI18n(vitePressConfig(env), vitePressI18nConfig(env)), vitePressSidebarConfig(env)))
343 | })
344 |
--------------------------------------------------------------------------------
/src/v2/音乐模块/QQ音乐/8-lyric.md:
--------------------------------------------------------------------------------
1 | # 歌词API
2 |
3 | ## 简要描述
4 | - 获取歌曲的歌词,此API包含lyric歌词、逐字歌词、翻译歌词、音译歌词。
5 | - 逐字歌词标记了每个字在音频中的某个时间段,可用于编写歌词渐变。
6 |
7 | ## 请求URL
8 | - `/v2/music/tencent/lyric`
9 |
10 | ## 请求方式
11 | - `GET` / `POST`
12 |
13 | ## 请求示例
14 | - https://api.vkeys.cn/v2/music/tencent/lyric?id=213836590
15 | - https://api.vkeys.cn/v2/music/tencent/lyric?mid=001CJxVG1yppB0
16 |
17 | ## 请求参数
18 |
19 | | 参数名 | 是否必选 | 数据类型 | 说明 |
20 | |:---:|:----:|:------:|:----------------------------|
21 | | id | 是/否 | int | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
22 | | mid | 是/否 | string | 根据音乐id获取音乐链接,id与mid选择其中一个即可 |
23 |
24 | ## 返回示例
25 | ``` json
26 | {
27 | "code": 200,
28 | "message": "请求成功!",
29 | "data": {
30 | "lrc": "[ti:嘘つきは恋のはじまり]\n[ar:洛天依]\n[al:嘘つきは恋の始まり]\n[by:]\n[offset:0]\n[kana:1うそ1こい1111し11きょく111きょく11す1ひと1きみ1と1かぜ1ふ1かみ1ゆ1きょう1しつ1とき1と1け1ゆか1お1ひろ1あ1わら1こた1うそ1ほん1とう1い1あめ1ひ1かぜ1ひ1おも1つづ1ひと1め1まえ1わたし1き1きみ1べつ1わ1だい2きのう1はなし1し1こわ1きみ1む1じゃ1き1わら1じ1ぶん1なさ1ちか1ちか1とお1むね1こ1どう1き1め1まえ1うそ1とも1だち1うそ1わたし1こい1ごころ1かん1たん1ご1ま1か1あめ1ひ1かぜ1ひ1おも1つづ1ひと1す]\n[00:00.00]嘘つきは恋のはじまり - 洛天依\n[00:04.69]词:40mP\n[00:09.38]曲:40mP\n[00:14.07]编曲:40mP\n[00:18.77]「ねえ\n[00:19.53]好きな人いるの?」なんて\n[00:25.39]君が問いかけてきた\n[00:30.27]\n[00:31.43]風が吹いて髪が揺れて\n[00:37.93]教室の時が止まる\n[00:44.56]消しゴムが床に落ちて\n[00:50.64]すぐに拾い上げて\n[00:54.33]笑いながら答える\n[00:58.10]「いないよ」\n[01:00.71]ほんのちょっと嘘をついた\n[01:03.71]バレるのがこわくて\n[01:06.89]本当のことなんて\n[01:09.93]言えるわけないでしょ?\n[01:13.24]雨の日も風の日も\n[01:16.16]想い続けている人\n[01:21.55]目の前にいるのに\n[01:26.86]\n[01:36.70]「ねえ\n[01:37.51]そっちこそどうなの?」って\n[01:43.30]私も聞きたいけど\n[01:48.19]\n[01:49.34]君はすぐに別の話題\n[01:55.85]昨日のテレビの話\n[02:00.76]\n[02:02.28]知りたくてでもこわくて\n[02:08.60]壊れそうなのに\n[02:12.30]君は無邪気に笑う\n[02:16.13]ズルイよ\n[02:18.66]ほんのちょっとベソをかいた\n[02:21.65]自分が情けなくて\n[02:24.89]近づけば近づくほど\n[02:28.00]遠ざかるみたいだ\n[02:31.07]この胸の鼓動さえ\n[02:34.15]聞こえてしまいそうなほど\n[02:39.44]目の前にいるのに\n[02:44.67]\n[03:04.87]嘘つきのままでいれば\n[03:10.87]ずっと友達でいられるから\n[03:16.07]そのほうがいいよね?\n[03:20.77]\n[03:23.96]ほんのちょっと嘘をついた\n[03:27.09]私の恋心\n[03:30.36]簡単に誤魔化せる\n[03:33.27]そんなわけないでしょ?\n[03:36.68]雨の日も風の日も\n[03:39.62]想い続けている人\n[03:46.58]\n[03:48.21]こんなに好きなのに",
31 | "trans": "[ti:嘘つきは恋のはじまり]\n[ar:洛天依]\n[al:嘘つきは恋の始まり]\n[by:]\n[offset:0]\n[kana:1うそ1こい1111し11きょく111きょく11す1ひと1きみ1と1かぜ1ふ1かみ1ゆ1きょう1しつ1とき1と1け1ゆか1お1ひろ1あ1わら1こた1うそ1ほん1とう1い1あめ1ひ1かぜ1ひ1おも1つづ1ひと1め1まえ1わたし1き1きみ1べつ1わ1だい2きのう1はなし1し1こわ1きみ1む1じゃ1き1わら1じ1ぶん1なさ1ちか1ちか1とお1むね1こ1どう1き1め1まえ1うそ1とも1だち1うそ1わたし1こい1ごころ1かん1たん1ご1ま1か1あめ1ひ1かぜ1ひ1おも1つづ1ひと1す]\n[00:00.00]QQ音乐享有本翻译作品的著作权\n[00:04.69]//\n[00:09.38]//\n[00:14.07]//\n[00:18.77]呐\n[00:19.53]你有喜欢的人吗?\n[00:25.39]你突然如此问我\n[00:30.27]\n[00:31.43]发丝随着清风扬起\n[00:37.93]教室里的时光也停止了流动\n[00:42.87]\n[00:44.48]橡皮擦掉在了地板上\n[00:50.64]我马上把它捡了起来\n[00:54.33]紧接着笑着回答你道\n[00:58.10]没有哦\n[01:00.71]其实是说了一个小谎\n[01:03.71]因为害怕会被你发现\n[01:06.89]我真正的心意\n[01:09.93]怎么可能说得出口呢\n[01:13.24]无论刮风还是下雨\n[01:16.16]那个我朝思暮想的人\n[01:21.55]明明就站在我的眼前\n[01:26.86]\n[01:36.70]呐\n[01:37.51]那你呢 你有喜欢的人吗\n[01:43.30]我也想问你这个问题\n[01:48.19]\n[01:49.34]你瞬间就转换了话题\n[01:55.85]和我聊起昨天的电视节目\n[02:00.76]\n[02:02.28]想知道答案却又感到害怕\n[02:08.60]明明我已经濒临崩溃的境地\n[02:12.30]你却露出了那样天真无邪的笑容\n[02:16.13]真狡猾\n[02:18.66]其实还是掉了一点点的眼泪\n[02:21.65]觉得那样的自己真是没出息\n[02:24.89]越是靠近你\n[02:28.00]你却仿佛离我更远了\n[02:31.07]可你明明就近在眼前\n[02:34.15]近到连我的心跳声\n[02:39.44]仿佛也能清楚听见\n[02:44.67]\n[03:04.87]只要继续隐瞒这份心意\n[03:10.87]就可以一直和你做普通朋友\n[03:16.07]那样是不是比较好?\n[03:20.77]\n[03:23.96]其实我说了一个小谎\n[03:27.09]可我的恋慕之心\n[03:30.36]却无法如此轻易地\n[03:33.27]敷衍而过\n[03:36.68]无论刮风还是下雨\n[03:39.62]那个我朝思暮想的人\n[03:46.58]\n[03:48.21]明明我是如此的喜欢着你",
32 | "yrc": "[ti:嘘つきは恋のはじまり]\n[ar:洛天依]\n[al:嘘つきは恋の始まり]\n[by:]\n[offset:0]\n[kana:1うそ1こい1111し11きょく111きょく11す1ひと1きみ1と1かぜ1ふ1かみ1ゆ1きょう1しつ1とき1と1け1ゆ(47359,293)か(47652,687)1お1ひろ1あ1わら1こた1うそ1ほん1とう1い1あめ1ひ1かぜ1ひ1おも1つづ1ひと1め1まえ1わたし1き1きみ1べつ1わ1だい2きのう1はなし1し1こわ1きみ1む1じゃ1き1わら1じ1ぶん1なさ1ちか1ちか1とお1むね1こ1どう1き1め1まえ1うそ1とも1だち1うそ1わたし1こい1ごころ1かん1たん1ご1ま1か1あめ1ひ1かぜ1ひ1おも1つづ1ひと1す]\n[0,4690]嘘(0,293)つ(293,293)き(586,293)は(879,293)恋(1172,293)の(1465,293)は(1758,293)じ(2051,293)ま(2344,293)り(2637,293) (2930,293)-(3223,293) (3516,293)洛(3809,293)天(4102,293)依(4395,293)\n[4690,4690]词(4690,1563):(6253,1563)40(7816,781)mP(8597,782)\n[9380,4690]曲(9380,1563):(10943,1563)40(12506,781)mP(13287,782)\n[14070,4690]编(14070,1172)曲(15242,1172):(16414,1172)40(17586,586)mP(18172,586)\n[18770,677]「(18770,151)ね(18921,151)え(19072,375)\n[19538,5596]好(19538,207)き(19745,207)な(19952,527)人(20479,1759)い(22238,559)る(22797,223)の(23020,175)?(23195,191)」(23386,135)な(23521,200)ん(23721,182)て(23903,1231)\n[25394,4879]君(25394,471)が(25865,391)問(26256,311)い(26567,247)か(26814,567)け(27381,407)て(27788,383)き(28171,335)た(28506,1767)\n[31434,6158]風(31434,784)が(32218,254)吹(32472,263)い(32735,303)て(33038,1655)髪(34693,520)が(35213,318)揺(35531,319)れ(35850,327)て(36177,1415)\n[37930,6632]教(37930,471)室(38401,503)の(38904,495)時(39399,543)が(39942,351)止(40293,359)ま(40652,415)る(41067,1807)\n[44562,5977]消(44562,688)し(45250,592)ゴ(45842,440)ム(46282,388)が(46670,689)床(47359,980)に(48339,624)落(48963,340)ち(49303,416)て(49719,820)\n[50642,3569]す(50642,559)ぐ(51201,711)に(51912,599)拾(52511,535)い(53046,271)上(53317,183)げ(53500,159)て(53659,552)\n[54330,3584]笑(54330,263)い(54593,255)な(54848,191)が(55039,207)ら(55246,607)答(55853,336)え(56189,310)る(56499,1415)\n[58106,2424]「(58106,199)い(58305,167)な(58472,381)い(58853,201)よ(59054,1189)」(60243,287)\n[60712,2885]ほ(60712,239)ん(60951,167)の(61118,175)ち(61293,175)ょ(61468,152)っ(61620,158)と(61778,295)嘘(62073,247)を(62320,184)つ(62504,166)い(62670,440)た(63110,487)\n[63712,3007]バ(63712,199)レ(63911,184)る(64095,174)の(64269,488)が(64757,286)こ(65043,183)わ(65226,327)く(65553,287)て(65840,879)\n[66896,2913]本(66896,344)当(67240,255)の(67495,678)こ(68173,271)と(68444,239)な(68683,200)ん(68883,327)て(69210,599)\n[69936,3126]言(69936,207)え(70143,176)る(70319,222)わ(70541,359)け(70900,256)な(71156,222)い(71378,327)で(71705,199)し(71904,159)ょ(72063,679)?(72742,320)\n[73248,2792]雨(73248,327)の(73575,199)日(73774,311)も(74085,398)風(74483,256)の(74739,248)日(74987,582)も(75569,471)\n[76160,5198]想(76160,335)い(76495,424)続(76919,510)け(77429,247)て(77676,303)い(77979,231)る(78210,1213)人(79423,1935)\n[81558,5304]目(81558,273)の(81831,325)前(82156,647)に(82803,359)い(83162,430)る(83592,311)の(83903,528)に(84431,2431)\n[96702,732]「(96702,183)ね(96885,151)え(97036,398)\n[97518,5561]そ(97518,190)っ(97708,151)ち(97859,462)こ(98321,232)そ(98553,1431)ど(99984,350)う(100334,511)な(100845,359)の(101204,231)?(101435,183)」(101618,191)っ(101809,383)て(102192,887)\n[103308,4888]私(103308,607)も(103915,600)聞(104515,318)き(104833,447)た(105280,375)い(105655,439)け(106094,399)ど(106493,1703)\n[109348,6192]君(109348,951)は(110299,207)す(110506,263)ぐ(110769,255)に(111024,1552)別(112576,575)の(113151,334)話(113485,399)題(113884,1656)\n[115852,4912]昨日(115852,614)の(116466,247)テ(116713,255)レ(116968,311)ビ(117279,743)の(118022,271)話(118293,2471)\n[122284,6070]知(122284,824)り(123108,583)た(123691,247)く(123938,287)て(124225,855)で(125080,367)も(125447,327)こ(125774,791)わ(126565,455)く(127020,279)て(127299,1055)\n[128603,3555]壊(128603,1265)れ(129868,352)そ(130220,342)う(130562,431)な(130993,215)の(131208,215)に(131423,735)\n[132301,3544]君(132301,279)は(132580,239)無(132819,182)邪(133001,240)気(133241,335)に(133576,223)笑(133799,543)う(134342,1503)\n[136133,2036]ズ(136133,191)ル(136324,471)イ(136795,271)よ(137066,1103)\n[138669,2891]ほ(138669,231)ん(138900,151)の(139051,199)ち(139250,167)ょ(139417,159)っ(139576,167)と(139743,239)ベ(139982,207)ソ(140189,295)を(140484,167)か(140651,263)い(140914,239)た(141153,407)\n[141653,3072]自(141653,183)分(141836,263)が(142099,583)情(142682,336)け(143018,478)な(143496,207)く(143703,335)て(144038,687)\n[144893,3103]近(144893,287)づ(145180,207)け(145387,327)ば(145714,431)近(146145,271)づ(146416,191)く(146607,487)ほ(147094,263)ど(147357,639)\n[148005,2912]遠(148005,263)ざ(148268,151)か(148419,383)る(148802,367)み(149169,471)た(149640,215)い(149855,295)だ(150150,767)\n[151077,2984]こ(151077,239)の(151316,191)胸(151507,504)の(152011,438)鼓(152449,255)動(152704,335)さ(153039,463)え(153502,559)\n[154157,5068]聞(154157,231)こ(154388,167)え(154555,151)て(154706,351)し(155057,247)ま(155304,223)い(155527,383)そ(155910,183)う(156093,359)な(156452,711)ほ(157163,655)ど(157818,1407)\n[159445,5226]目(159445,343)の(159788,223)前(160011,551)に(160562,479)い(161041,415)る(161456,319)の(161775,607)に(162382,2289)\n[184870,5669]嘘(184870,1143)つ(186013,391)き(186404,223)の(186627,823)ま(187450,351)ま(187801,263)で(188064,919)い(188983,351)れ(189334,319)ば(189653,886)\n[190870,5116]ず(190870,247)っ(191117,903)と(192020,863)友(192883,416)達(193299,374)で(193673,879)い(194552,215)ら(194767,191)れ(194958,183)る(195141,183)か(195324,280)ら(195604,382)\n[196078,4694]そ(196078,191)の(196269,223)ほ(196492,167)う(196659,263)が(196922,1615)い(198537,183)い(198720,319)よ(199039,328)ね(199367,1071)?(200438,334)\n[203966,3022]ほ(203966,295)ん(204261,191)の(204452,159)ち(204611,167)ょ(204778,159)っ(204937,159)と(205096,311)嘘(205407,247)を(205654,271)つ(205925,399)い(206324,256)た(206580,408)\n[207095,3003]私(207095,414)の(207509,632)恋(208141,462)心(208603,1495)\n[210369,2754]簡(210369,345)単(210714,231)に(210945,735)誤(211680,215)魔(211895,167)化(212062,215)せ(212277,376)る(212653,470)\n[213275,3269]そ(213275,184)ん(213459,190)な(213649,263)わ(213912,295)け(214207,239)な(214446,335)い(214781,319)で(215100,199)し(215299,167)ょ(215466,799)?(216265,279)\n[216683,2760]雨(216683,191)の(216874,191)日(217065,311)も(217376,383)風(217759,319)の(218078,207)日(218285,615)も(218900,543)\n[219627,6961]想(219627,263)い(219890,215)続(220105,687)け(220792,223)て(221015,359)い(221374,191)る(221565,1088)人(222653,3935)\n[228212,5704]こ(228212,216)ん(228428,184)な(228612,256)に(228868,416)好(229284,256)き(229540,664)な(230204,312)の(230516,440)に(230956,2960)",
33 | "roma": "[ti:嘘つきは恋のはじまり]\n[ar:洛天依]\n[al:嘘つきは恋の始まり]\n[by:]\n[offset:0]\n[0,4690](4395,293)\n[4690,4690](8597,782)\n[9380,4690](13287,782)\n[14070,4690](18172,586)\n[18770,677]「 (18770,151)ne (18921,151)e (19072,375)\n[19538,5596]su (19538,207)ki (19745,207)na (19952,527)hi (20479,879)to (21358,880)i (22238,559)ru (22797,223)no (23020,175)? (23195,191)」 (23386,135)na (23521,200)n (23721,182)te (23903,1231)\n[25394,4879]ki (25394,235)mi (25629,236)ga (25865,391)to (26256,311)i (26567,247)ka (26814,567)ke (27381,407)te (27788,383)ki (28171,335)ta (28506,1767)\n[31434,6158]ka (31434,392)ze (31826,392)ga (32218,254)fu (32472,263)i (32735,303)te (33038,1655)ka (34693,260)mi (34953,260)ga (35213,318)yu (35531,319)re (35850,327)te (36177,1415)\n[37930,6632]kyo (37930,156)u (38244,157)shi (38401,251)tsu (38652,252)no (38904,495)to (39399,271)ki (39670,272)ga (39942,351)to (40293,359)ma (40652,415)ru (41067,1807)\n[44562,5977]ke (44562,687)shi (45250,591)go (45841,440)mu (46282,387)ga (46669,689)yu (47359,292)ka (47652,687)ni (48339,624)o (48963,340)chi (49303,416)te (49719,819)\n[50642,3569]su (50642,559)gu (51201,711)ni (51912,599)hi (52511,267)ro (52778,268)i (53046,271)a (53317,183)ge (53500,159)te (53659,552)\n[54330,3584]wa (54330,131)ra (54461,132)i (54593,255)na (54848,191)ga (55039,207)ra (55246,607)ko (55853,168)ta (56021,168)e (56189,310)ru (56499,1415)\n[58106,2424]「 (58106,199)i (58305,167)na (58472,381)i (58853,201)yo (59054,1189)」 (60243,287)\n[60712,2885]ho (60712,239)n (60951,167)no (61118,175)cho (61293,152)'t (61620,158)to (61778,295)u (62073,123)so (62196,124)wo (62320,184)tsu (62504,166)i (62670,440)ta (63110,487)\n[63712,3007]ba (63712,199)re (63911,184)ru (64095,174)no (64269,488)ga (64757,286)ko (65043,183)wa (65226,327)ku (65553,287)te (65840,879)\n[66896,2913]ho (66896,172)n (67068,172)to (67240,127)u (67367,128)no (67495,678)ko (68173,271)to (68444,239)na (68683,200)n (68883,327)te (69210,599)\n[69936,3126]i (69936,207)e (70143,176)ru (70319,222)wa (70541,359)ke (70900,256)na (71156,222)i (71378,327)de (71705,199)sho (71904,679)? (72742,320)\n[73248,2792]a (73248,163)me (73411,164)no (73575,199)hi (73774,311)mo (74085,398)ka (74483,128)ze (74611,128)no (74739,248)hi (74987,582)mo (75569,471)\n[76160,5198]o (76160,167)mo (76327,168)i (76495,424)tsu (76919,255)zu (77174,255)ke (77429,247)te (77676,303)i (77979,231)ru (78210,1213)hi (79423,967)to (80390,968)\n[81558,5304]me (81558,273)no (81831,325)ma (82156,323)e (82479,324)ni (82803,359)i (83162,430)ru (83592,311)no (83903,528)ni (84431,2431)\n[96702,732]「 (96702,183)ne (96885,151)e (97036,398)\n[97518,5561]so (97518,190)'c (97708,151)chi (97859,462)ko (98321,232)so (98553,1431)do (99984,350)u (100334,511)na (100845,359)no (101204,231)? (101435,183)」 (101618,191)'t (101809,383)te (102192,887)\n[103308,4888]wa (103308,202)ta (103510,202)shi (103712,203)mo (103915,600)ki (104515,318)ki (104833,447)ta (105280,375)i (105655,439)ke (106094,399)do (106493,1703)\n[109348,6192]ki (109348,475)mi (109823,476)wa (110299,207)su (110506,263)gu (110769,255)ni (111024,1552)be (112576,287)tsu (112863,288)no (113151,334)wa (113485,399)da (113884,828)i (114712,828)\n[115852,4912]ki (115852,204)no (116056,204)u (116260,206)no (116466,247)te (116713,255)re (116968,311)bi (117279,743)no (118022,271)ha (118293,823)na (119116,823)shi (119939,825)\n[122284,6070]shi (122284,824)ri (123108,583)ta (123691,247)ku (123938,287)te (124225,855)de (125080,367)mo (125447,327)ko (125774,791)wa (126565,455)ku (127020,279)te (127299,1055)\n[128603,3555]ko (128603,632)wa (129235,633)re (129868,352)so (130220,342)u (130562,431)na (130993,215)no (131208,215)ni (131423,735)\n[132301,3544]ki (132301,139)mi (132440,140)wa (132580,239)mu (132819,182)ja (133001,120)ki (133241,335)ni (133576,223)wa (133799,271)ra (134070,272)u (134342,1503)\n[136133,2036]zu (136133,191)ru (136324,471)i (136795,271)yo (137066,1103)\n[138669,2891]ho (138669,231)n (138900,151)no (139051,199)cho (139250,158)'t (139576,167)to (139743,239)be (139982,207)so (140189,295)wo (140484,167)ka (140651,263)i (140914,239)ta (141153,407)\n[141653,3072]ji (141653,183)bu (141836,131)n (141967,132)ga (142099,583)na (142682,168)sa (142850,168)ke (143018,478)na (143496,207)ku (143703,335)te (144038,687)\n[144893,3103]chi (144893,143)ka (145036,144)zu (145180,207)ke (145387,327)ba (145714,431)chi (146145,135)ka (146280,136)zu (146416,191)ku (146607,487)ho (147094,263)do (147357,639)\n[148005,2912]to (148005,131)o (148136,132)za (148268,151)ka (148419,383)ru (148802,367)mi (149169,471)ta (149640,215)i (149855,295)da (150150,767)\n[151077,2984]ko (151077,239)no (151316,191)mu (151507,252)ne (151759,252)no (152011,438)ko (152449,255)do (152704,167)u (152871,168)sa (153039,463)e (153502,559)\n[154157,5068]ki (154157,231)ko (154388,167)e (154555,151)te (154706,351)shi (155057,247)ma (155304,223)i (155527,383)so (155910,183)u (156093,359)na (156452,711)ho (157163,655)do (157818,1407)\n[159445,5226]me (159445,343)no (159788,223)ma (160011,275)e (160286,276)ni (160562,479)i (161041,415)ru (161456,319)no (161775,607)ni (162382,2289)\n[184870,5669]u (184870,571)so (185441,572)tsu (186013,391)ki (186404,223)no (186627,823)ma (187450,351)ma (187801,263)de (188064,919)i (188983,351)re (189334,319)ba (189653,886)\n[190870,5116]zu (190870,247)'t (191117,903)to (192020,863)to (192883,208)mo (193091,208)da (193299,187)chi (193486,187)de (193673,879)i (194552,215)ra (194767,191)re (194958,183)ru (195141,183)ka (195324,280)ra (195604,382)\n[196078,4694]so (196078,191)no (196269,223)ho (196492,167)u (196659,263)ga (196922,1615)i (198537,183)i (198720,319)yo (199039,328)ne (199367,1071)? (200438,334)\n[203966,3022]ho (203966,295)n (204261,191)no (204452,159)cho (204611,158)'t (204937,159)to (205096,311)u (205407,123)so (205530,124)wo (205654,271)tsu (205925,399)i (206324,256)ta (206580,408)\n[207095,3003]wa (207095,138)ta (207233,138)shi (207371,138)no (207509,632)ko (208141,231)i (208372,231)go (208603,498)ko (209101,498)ro (209599,499)\n[210369,2754]ka (210369,172)n (210541,173)ta (210714,115)n (210829,116)ni (210945,735)go (211680,215)ma (211895,167)ka (212062,215)se (212277,376)ru (212653,470)\n[213275,3269]so (213275,184)n (213459,190)na (213649,263)wa (213912,295)ke (214207,239)na (214446,335)i (214781,319)de (215100,199)sho (215299,799)? (216265,279)\n[216683,2760]a (216683,95)me (216778,96)no (216874,191)hi (217065,311)mo (217376,383)ka (217759,159)ze (217918,160)no (218078,207)hi (218285,615)mo (218900,543)\n[219627,6961]o (219627,131)mo (219758,132)i (219890,215)tsu (220105,343)zu (220448,344)ke (220792,223)te (221015,359)i (221374,191)ru (221565,1088)hi (222653,1967)to (224620,1968)\n[228212,5704]ko (228212,216)n (228428,184)na (228612,256)ni (228868,416)su (229284,256)ki (229540,664)na (230204,312)no (230516,440)ni (230956,2960)"
34 | },
35 | "time": "2024-08-03 20:59:33",
36 | "pid": 17,
37 | "tips": "欢迎使用API-Server"
38 | }
39 | ```
40 |
--------------------------------------------------------------------------------
/.vitepress/theme/style.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Customize default theme styling by overriding CSS variables:
3 | * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
4 | */
5 |
6 | /**
7 | * Colors
8 | *
9 | * Each colors have exact same color scale system with 3 levels of solid
10 | * colors with different brightness, and 1 soft color.
11 | *
12 | * - `XXX-1`: The most solid color used mainly for colored text. It must
13 | * satisfy the contrast ratio against when used on top of `XXX-soft`.
14 | *
15 | * - `XXX-2`: The color used mainly for hover state of the button.
16 | *
17 | * - `XXX-3`: The color for solid background, such as bg color of the button.
18 | * It must satisfy the contrast ratio with pure white (#ffffff) text on
19 | * top of it.
20 | *
21 | * - `XXX-soft`: The color used for subtle background such as custom container
22 | * or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
23 | * on top of it.
24 | *
25 | * The soft color must be semi transparent alpha channel. This is crucial
26 | * because it allows adding multiple "soft" colors on top of each other
27 | * to create a accent, such as when having inline code block inside
28 | * custom containers.
29 | *
30 | * - `default`: The color used purely for subtle indication without any
31 | * special meanings attached to it such as bg color for menu hover state.
32 | *
33 | * - `brand`: Used for primary brand colors, such as link text, button with
34 | * brand theme, etc.
35 | *
36 | * - `tip`: Used to indicate useful information. The default theme uses the
37 | * brand color for this by default.
38 | *
39 | * - `warning`: Used to indicate warning to the users. Used in custom
40 | * container, badges, etc.
41 | *
42 | * - `danger`: Used to show error, or dangerous message to the users. Used
43 | * in custom container, badges, etc.
44 | * -------------------------------------------------------------------------- */
45 |
46 | :root {
47 | --vp-c-default-1: var(--vp-c-gray-1);
48 | --vp-c-default-2: var(--vp-c-gray-2);
49 | --vp-c-default-3: var(--vp-c-gray-3);
50 | --vp-c-default-soft: var(--vp-c-gray-soft);
51 |
52 | --vp-c-brand-1: var(--vp-c-indigo-1);
53 | --vp-c-brand-2: var(--vp-c-indigo-2);
54 | --vp-c-brand-3: var(--vp-c-indigo-3);
55 | --vp-c-brand-soft: var(--vp-c-indigo-soft);
56 |
57 | --vp-c-tip-1: var(--vp-c-brand-1);
58 | --vp-c-tip-2: var(--vp-c-brand-2);
59 | --vp-c-tip-3: var(--vp-c-brand-3);
60 | --vp-c-tip-soft: var(--vp-c-brand-soft);
61 |
62 | --vp-c-warning-1: var(--vp-c-yellow-1);
63 | --vp-c-warning-2: var(--vp-c-yellow-2);
64 | --vp-c-warning-3: var(--vp-c-yellow-3);
65 | --vp-c-warning-soft: var(--vp-c-yellow-soft);
66 |
67 | --vp-c-danger-1: var(--vp-c-red-1);
68 | --vp-c-danger-2: var(--vp-c-red-2);
69 | --vp-c-danger-3: var(--vp-c-red-3);
70 | --vp-c-danger-soft: var(--vp-c-red-soft);
71 | }
72 |
73 | /**
74 | * Component: Button
75 | * -------------------------------------------------------------------------- */
76 |
77 | :root {
78 | --vp-button-brand-border: transparent;
79 | --vp-button-brand-text: var(--vp-c-white);
80 | --vp-button-brand-bg: var(--vp-c-brand-3);
81 | --vp-button-brand-hover-border: transparent;
82 | --vp-button-brand-hover-text: var(--vp-c-white);
83 | --vp-button-brand-hover-bg: var(--vp-c-brand-2);
84 | --vp-button-brand-active-border: transparent;
85 | --vp-button-brand-active-text: var(--vp-c-white);
86 | --vp-button-brand-active-bg: var(--vp-c-brand-1);
87 | }
88 |
89 | /**
90 | * Component: Home
91 | * -------------------------------------------------------------------------- */
92 |
93 | :root {
94 | --vp-home-hero-name-color: transparent;
95 | --vp-home-hero-name-background: -webkit-linear-gradient(
96 | 120deg,
97 | #bd34fe 30%,
98 | #41d1ff
99 | );
100 |
101 | --vp-home-hero-image-background-image: linear-gradient(
102 | -45deg,
103 | #bd34fe 50%,
104 | #47caff 50%
105 | );
106 | --vp-home-hero-image-filter: blur(44px);
107 | }
108 |
109 | @media (min-width: 640px) {
110 | :root {
111 | --vp-home-hero-image-filter: blur(56px);
112 | }
113 | }
114 |
115 | @media (min-width: 960px) {
116 | :root {
117 | --vp-home-hero-image-filter: blur(68px);
118 | }
119 | }
120 |
121 | /**
122 | * Component: Custom Block
123 | * -------------------------------------------------------------------------- */
124 |
125 | :root {
126 | --vp-custom-block-tip-border: transparent;
127 | --vp-custom-block-tip-text: var(--vp-c-text-1);
128 | --vp-custom-block-tip-bg: var(--vp-c-brand-soft);
129 | --vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);
130 | }
131 |
132 | /**
133 | * Component: Algolia
134 | * -------------------------------------------------------------------------- */
135 |
136 | .DocSearch {
137 | --docsearch-primary-color: var(--vp-c-brand-1) !important;
138 | }
139 |
140 | /* .vitepress/theme/style/custom-block.css */
141 | /* 深浅色卡 */
142 | :root {
143 | --custom-block-info-left: #cccccc;
144 | --custom-block-info-bg: #fafafa;
145 |
146 | --custom-block-tip-left: #009400;
147 | --custom-block-tip-bg: #e6f6e6;
148 |
149 | --custom-block-warning-left: #e6a700;
150 | --custom-block-warning-bg: #fff8e6;
151 |
152 | --custom-block-danger-left: #e13238;
153 | --custom-block-danger-bg: #ffebec;
154 |
155 | --custom-block-note-left: #4cb3d4;
156 | --custom-block-note-bg: #eef9fd;
157 |
158 | --custom-block-important-left: #a371f7;
159 | --custom-block-important-bg: #f4eefe;
160 |
161 | --custom-block-caution-left: #e0575b;
162 | --custom-block-caution-bg: #fde4e8;
163 | }
164 |
165 | .dark {
166 | --custom-block-info-left: #cccccc;
167 | --custom-block-info-bg: #474748;
168 |
169 | --custom-block-tip-left: #009400;
170 | --custom-block-tip-bg: #003100;
171 |
172 | --custom-block-warning-left: #e6a700;
173 | --custom-block-warning-bg: #4d3800;
174 |
175 | --custom-block-danger-left: #e13238;
176 | --custom-block-danger-bg: #4b1113;
177 |
178 | --custom-block-note-left: #4cb3d4;
179 | --custom-block-note-bg: #193c47;
180 |
181 | --custom-block-important-left: #a371f7;
182 | --custom-block-important-bg: #230555;
183 |
184 | --custom-block-caution-left: #e0575b;
185 | --custom-block-caution-bg: #391c22;
186 | }
187 |
188 |
189 | /* 标题字体大小 */
190 | .custom-block-title {
191 | font-size: 16px;
192 | }
193 |
194 | /* info容器:背景色、左侧 */
195 | .custom-block.info {
196 | border-left: 5px solid var(--custom-block-info-left);
197 | background-color: var(--custom-block-info-bg);
198 | }
199 |
200 | /* info容器:svg图 */
201 | .custom-block.info [class*="custom-block-title"]::before {
202 | content: '';
203 | background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z' fill='%23ccc'/%3E%3C/svg%3E");
204 | width: 20px;
205 | height: 20px;
206 | display: inline-block;
207 | vertical-align: middle;
208 | position: relative;
209 | margin-right: 4px;
210 | left: -5px;
211 | top: -1px;
212 | }
213 |
214 | /* 提示容器:边框色、背景色、左侧 */
215 | .custom-block.tip {
216 | /* border-color: var(--custom-block-tip); */
217 | border-left: 5px solid var(--custom-block-tip-left);
218 | background-color: var(--custom-block-tip-bg);
219 | }
220 |
221 | /* 提示容器:svg图 */
222 | .custom-block.tip [class*="custom-block-title"]::before {
223 | content: '';
224 | background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23009400' d='M7.941 18c-.297-1.273-1.637-2.314-2.187-3a8 8 0 1 1 12.49.002c-.55.685-1.888 1.726-2.185 2.998H7.94zM16 20v1a2 2 0 0 1-2 2h-4a2 2 0 0 1-2-2v-1h8zm-3-9.995V6l-4.5 6.005H11v4l4.5-6H13z'/%3E%3C/svg%3E");
225 | width: 20px;
226 | height: 20px;
227 | display: inline-block;
228 | vertical-align: middle;
229 | position: relative;
230 | margin-right: 4px;
231 | left: -5px;
232 | top: -2px;
233 | }
234 |
235 | /* 警告容器:背景色、左侧 */
236 | .custom-block.warning {
237 | border-left: 5px solid var(--custom-block-warning-left);
238 | background-color: var(--custom-block-warning-bg);
239 | }
240 |
241 | /* 警告容器:svg图 */
242 | .custom-block.warning [class*="custom-block-title"]::before {
243 | content: '';
244 | background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M576.286 752.57v-95.425q0-7.031-4.771-11.802t-11.3-4.772h-96.43q-6.528 0-11.3 4.772t-4.77 11.802v95.424q0 7.031 4.77 11.803t11.3 4.77h96.43q6.528 0 11.3-4.77t4.77-11.803zm-1.005-187.836 9.04-230.524q0-6.027-5.022-9.543-6.529-5.524-12.053-5.524H456.754q-5.524 0-12.053 5.524-5.022 3.516-5.022 10.547l8.538 229.52q0 5.023 5.022 8.287t12.053 3.265h92.913q7.032 0 11.803-3.265t5.273-8.287zM568.25 95.65l385.714 707.142q17.578 31.641-1.004 63.282-8.538 14.564-23.354 23.102t-31.892 8.538H126.286q-17.076 0-31.892-8.538T71.04 866.074q-18.582-31.641-1.004-63.282L455.75 95.65q8.538-15.57 23.605-24.61T512 62t32.645 9.04 23.605 24.61z' fill='%23e6a700'/%3E%3C/svg%3E");
245 | width: 20px;
246 | height: 20px;
247 | display: inline-block;
248 | vertical-align: middle;
249 | position: relative;
250 | margin-right: 4px;
251 | left: -5px;
252 | }
253 |
254 | /* 危险容器:背景色、左侧 */
255 | .custom-block.danger {
256 | border-left: 5px solid var(--custom-block-danger-left);
257 | background-color: var(--custom-block-danger-bg);
258 | }
259 |
260 | /* 危险容器:svg图 */
261 | .custom-block.danger [class*="custom-block-title"]::before {
262 | content: '';
263 | background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z' fill='%23e13238'/%3E%3C/svg%3E");
264 | width: 20px;
265 | height: 20px;
266 | display: inline-block;
267 | vertical-align: middle;
268 | position: relative;
269 | margin-right: 4px;
270 | left: -5px;
271 | top: -1px;
272 | }
273 |
274 | /* NOTE容器:背景色、左侧 */
275 | .custom-block.note {
276 | border-left: 5px solid var(--custom-block-note-left);
277 | background-color: var(--custom-block-note-bg);
278 | }
279 |
280 | /* NOTE容器:svg图 */
281 | .custom-block.note [class*="custom-block-title"]::before {
282 | content: '';
283 | background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-11v6h2v-6h-2zm0-4v2h2V7h-2z' fill='%234cb3d4'/%3E%3C/svg%3E");
284 | width: 20px;
285 | height: 20px;
286 | display: inline-block;
287 | vertical-align: middle;
288 | position: relative;
289 | margin-right: 4px;
290 | left: -5px;
291 | top: -1px;
292 | }
293 |
294 | /* IMPORTANT容器:背景色、左侧 */
295 | .custom-block.important {
296 | border-left: 5px solid var(--custom-block-important-left);
297 | background-color: var(--custom-block-important-bg);
298 | }
299 |
300 | /* IMPORTANT容器:svg图 */
301 | .custom-block.important [class*="custom-block-title"]::before {
302 | content: '';
303 | background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1024 1024'%3E%3Cpath d='M512 981.333a84.992 84.992 0 0 1-84.907-84.906h169.814A84.992 84.992 0 0 1 512 981.333zm384-128H128v-42.666l85.333-85.334v-256A298.325 298.325 0 0 1 448 177.92V128a64 64 0 0 1 128 0v49.92a298.325 298.325 0 0 1 234.667 291.413v256L896 810.667v42.666zm-426.667-256v85.334h85.334v-85.334h-85.334zm0-256V512h85.334V341.333h-85.334z' fill='%23a371f7'/%3E%3C/svg%3E");
304 | width: 20px;
305 | height: 20px;
306 | display: inline-block;
307 | vertical-align: middle;
308 | position: relative;
309 | margin-right: 4px;
310 | left: -5px;
311 | top: -1px;
312 | }
313 |
314 | /* CAUTION容器:背景色、左侧 */
315 | .custom-block.caution {
316 | border-left: 5px solid var(--custom-block-caution-left);
317 | background-color: var(--custom-block-caution-bg);
318 | }
319 |
320 | /* CAUTION容器:svg图 */
321 | .custom-block.caution [class*="custom-block-title"]::before {
322 | content: '';
323 | background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2c5.523 0 10 4.477 10 10v3.764a2 2 0 0 1-1.106 1.789L18 19v1a3 3 0 0 1-2.824 2.995L14.95 23a2.5 2.5 0 0 0 .044-.33L15 22.5V22a2 2 0 0 0-1.85-1.995L13 20h-2a2 2 0 0 0-1.995 1.85L9 22v.5c0 .171.017.339.05.5H9a3 3 0 0 1-3-3v-1l-2.894-1.447A2 2 0 0 1 2 15.763V12C2 6.477 6.477 2 12 2zm-4 9a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm8 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4z' fill='%23e13238'/%3E%3C/svg%3E");
324 | width: 20px;
325 | height: 20px;
326 | display: inline-block;
327 | vertical-align: middle;
328 | position: relative;
329 | margin-right: 4px;
330 | left: -5px;
331 | top: -1px;
332 | }
333 |
334 | /* .vitepress\theme\style\blur.css */
335 | :root {
336 |
337 | /* 首页下滑后导航透明 ,搜索框透明, 文档页侧边栏顶部透明*/
338 | .VPNavBar:not(.has-sidebar):not(.home.top), .DocSearch-Button, .curtain {
339 | background-color: rgba(255, 255, 255, 0);
340 | backdrop-filter: blur(10px);
341 | }
342 |
343 | /* Feature透明 */
344 | .VPFeature {
345 | border: none;
346 | box-shadow: 0 10px 30px 0 rgb(0 0 0 / 15%);
347 | background-color: transparent;
348 | }
349 |
350 | @media (min-width: 960px) {
351 |
352 | /* 文档页导航中间透明, 移动端大纲栏透明 */
353 | .VPNavBar:not(.home.top) .content-body, .VPLocalNav {
354 | background-color: rgba(255, 255, 255, 0);
355 | backdrop-filter: blur(10px);
356 | }
357 | }
358 |
359 | }
360 |
361 | /* .vitepress\theme\style\hidden.css */
362 | :root {
363 |
364 | /* 文档页Logo出文字下横条 */
365 | @media (min-width: 960px) {
366 | .VPNavBarTitle.has-sidebar .title {
367 | border-bottom-color: transparent;
368 | }
369 | }
370 |
371 | /* 页脚横条隐藏 */
372 | .VPFooter {
373 | border-top: none;
374 | }
375 |
376 | /* 手机端菜单栏顶部横条隐藏, 手机端菜单栏菜单分割线隐藏,手机端菜单组隐藏 手机端大纲栏横条隐藏 */
377 | .VPNavBar.screen-open, .VPNavScreenMenuLink, .VPNavScreenMenuGroup, .VPLocalNav {
378 | border-bottom: none;
379 | }
380 |
381 | }
382 |
383 | /* 导航栏下划线隐藏 */
384 | .divider {
385 | display: none;
386 | }
387 |
388 | /* 侧边栏多级嵌套层级 */
389 | .group:has([role='button']) .VPSidebarItem.level-0 .items {
390 | padding-left: 16px !important;
391 | border-left: 1px solid var(--vp-c-divider);
392 | border-radius: 2px;
393 | transition: background-color 0.25s;
394 | }
395 |
396 | .VPSidebarItem.level-0 > .item > .text {
397 | letter-spacing: 1px;
398 | font-size: 16px;
399 | }
400 |
401 | .VPSidebarItem.level-1 > .item > .text {
402 | letter-spacing: 1px;
403 | font-weight: 600;
404 | }
405 |
406 | /* 超链接下划线 */
407 | .vp-doc a {
408 | text-decoration: none;
409 | }
410 |
411 |
412 | /* 代码块:增加留空边距 增加阴影 */
413 | .vp-doc div[class*=language-] {
414 | box-shadow: 0 10px 30px 0 rgb(0 0 0 / 40%);
415 | padding-top: 20px;
416 | }
417 |
418 | .vp-doc .vp-code-block-title {
419 | box-shadow: 0 10px 30px 0 rgb(0 0 0 / 40%);
420 | & div[class*=language-] {
421 | box-shadow: none;
422 | }
423 | }
424 |
425 | .vp-doc div[class*='language-'], .vp-block {
426 | margin: auto;
427 | }
428 |
429 | /* 代码块:添加macOS风格的小圆点 */
430 | .vp-doc div[class*=language-]::before {
431 | content: "";
432 | display: block;
433 | position: absolute;
434 | top: 12px;
435 | left: 12px;
436 | width: 12px;
437 | height: 12px;
438 | background-color: #ff5f56;
439 | border-radius: 50%;
440 | box-shadow: 20px 0 0 #ffbd2e, 40px 0 0 #27c93f;
441 | z-index: 1;
442 | }
443 |
444 | /* 代码块:下移行号 隐藏右侧竖线 */
445 | .vp-doc .line-numbers-wrapper {
446 | padding-top: 40px;
447 | border-right: none;
448 | }
449 |
450 | /* 代码块:重建行号右侧竖线 */
451 | .vp-doc .line-numbers-wrapper::after {
452 | content: "";
453 | position: absolute;
454 | top: 40px;
455 | right: 0;
456 | border-right: 1px solid var(--vp-code-block-divider-color);
457 | height: calc(100% - 60px);
458 | }
459 |
460 | .vp-doc div[class*='language-'].line-numbers-mode {
461 | margin-bottom: 20px;
462 | }
463 |
464 | /* .vitepress/theme/style/vp-code-group.css */
465 |
466 | /* 代码组:tab间距 */
467 | .vp-code-group .tabs {
468 | padding-top: 20px;
469 | margin: auto;
470 | }
471 |
472 | /* 代码组:添加样式及阴影 */
473 | .vp-code-group {
474 | border-radius: 8px;
475 | box-shadow: 0 10px 30px 0 rgb(0 0 0 / 40%);
476 | }
477 |
478 | /* 代码组:添加macOS风格的小圆点 */
479 | .vp-code-group .tabs::before {
480 | content: ' ';
481 | position: absolute;
482 | top: 12px;
483 | left: 12px;
484 | height: 12px;
485 | width: 12px;
486 | background: #fc625d;
487 | border-radius: 50%;
488 | box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b;
489 | }
490 |
491 |
492 | /* 代码组:修正倒角、阴影、边距 */
493 | .vp-code-group div[class*="language-"].vp-adaptive-theme.line-numbers-mode {
494 | border-radius: 8px;
495 | box-shadow: none;
496 | padding-top: 0px;
497 | }
498 |
499 | /* 代码组:隐藏小圆点 */
500 | .vp-code-group div[class*="language-"].vp-adaptive-theme.line-numbers-mode::before {
501 | display: none;
502 | }
503 |
504 | /* 代码组:修正行号位置 */
505 | .vp-code-group .line-numbers-mode .line-numbers-wrapper {
506 | padding-top: 20px;
507 | }
508 |
509 | /* 代码组:修正行号右侧竖线位置 */
510 | .vp-code-group .line-numbers-mode .line-numbers-wrapper::after {
511 | top: 24px;
512 | height: calc(100% - 45px);
513 | }
514 |
515 |
516 |
517 | /* 代码组(无行号):修正倒角、阴影、边距 */
518 | .vp-code-group div[class*="language-"].vp-adaptive-theme {
519 | border-radius: 8px;
520 | box-shadow: none;
521 | padding-top: 0px;
522 | }
523 |
524 | /* 代码组(无行号):隐藏小圆点 */
525 | .vp-code-group div[class*="language-"].vp-adaptive-theme::before {
526 | display: none;
527 | }
528 |
529 | ::view-transition-old(root),
530 | ::view-transition-new(root) {
531 | animation: none;
532 | mix-blend-mode: normal;
533 | }
534 |
535 | ::view-transition-old(root),
536 | .dark::view-transition-new(root) {
537 | z-index: 1;
538 | }
539 |
540 | ::view-transition-new(root),
541 | .dark::view-transition-old(root) {
542 | z-index: 9999;
543 | }
544 |
545 | .VPBadge.new {
546 | border-color: var(--vp-badge-tip-border);
547 | color: var(--vp-c-success-1);
548 | background-color: var(--vp-c-success-soft);
549 | }
550 |
551 | .vp-doc table {
552 | display: table;
553 | width: 100%;
554 | }
555 |
556 | .table-overflow {
557 | overflow-x:auto;
558 | white-space: nowrap;
559 | }
560 |
561 | .vp-nolebase-page-properties-grid {
562 | grid-template-columns: 180px auto 180px auto !important;
563 | }
564 | @media (max-width: 639.9px) {
565 | .vp-nolebase-page-properties-grid {
566 | grid-template-columns: 80px auto 80px auto !important;
567 | }
568 | }
569 |
--------------------------------------------------------------------------------