mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2025-10-22 14:43:10 +00:00
feat: 支持GD台音乐的获取
This commit is contained in:
parent
f5e3c8ae1b
commit
76d8e662f7
3
.env
3
.env
@ -1,3 +1,6 @@
|
||||
# CORS资源共享设置
|
||||
CORS_ALLOW_ORIGIN = "*"
|
||||
|
||||
### UnblockNeteaseMusic 设置项
|
||||
## 歌曲启用无损音质
|
||||
ENABLE_FLAC = true
|
||||
|
@ -35,7 +35,7 @@ set PORT=4000 && node app.js # Windows
|
||||
### 重要提示
|
||||
|
||||
- 调用前请务必阅读文档的“调用前须知”部分。
|
||||
- 推荐将敏感信息(如 cookie)通过环境变量或 .env 文件配置。
|
||||
- 推荐将敏感信息(如 cookie)通过部署平台的环境变量进行配置。
|
||||
|
||||
## 在线体验与文档
|
||||
|
||||
|
30
module/song_url_match.js
Normal file
30
module/song_url_match.js
Normal file
@ -0,0 +1,30 @@
|
||||
// 网易云歌曲解灰(适配SPlayer的UNM-Server)
|
||||
// 支持qq音乐、酷狗音乐、酷我音乐、咪咕音乐、第三方网易云API等等(来自GD音乐台)
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
|
||||
|
||||
module.exports = async (query, request) => {
|
||||
try {
|
||||
const match = require("@unblockneteasemusic/server")
|
||||
const source = ['pyncmd', 'kuwo', 'qq', 'migu', 'kugou']
|
||||
const result = await match(query.id, source)
|
||||
console.log("[OK] 开始解灰", query.id, result)
|
||||
return {
|
||||
status: 200,
|
||||
body: {
|
||||
code: 200,
|
||||
data: Array.isArray(result) ? result : [result],
|
||||
},
|
||||
}
|
||||
} catch (e) {
|
||||
return {
|
||||
status: 500,
|
||||
body: {
|
||||
code: 500,
|
||||
msg: e.message || 'unblock error',
|
||||
data: [],
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
57
module/song_url_ncmget.js
Normal file
57
module/song_url_ncmget.js
Normal file
@ -0,0 +1,57 @@
|
||||
// GD音乐台get(适配SPlayer的UNM-Server)
|
||||
// 感谢来自GD Studio的开发API
|
||||
// https://music.gdstudio.xyz/
|
||||
|
||||
const createOption = require('../util/option.js')
|
||||
|
||||
module.exports = async (query, request) => {
|
||||
try {
|
||||
const { id, br } = query
|
||||
if (!id) {
|
||||
return {
|
||||
status: 400,
|
||||
body: {
|
||||
code: 400,
|
||||
msg: 'Missing song ID',
|
||||
data: [],
|
||||
},
|
||||
}
|
||||
}
|
||||
const vaildbr = ["128", "192", "320", "740", "999"]
|
||||
if (br && !vaildbr.includes(br)) {
|
||||
return {
|
||||
status: 400,
|
||||
body: {
|
||||
code: 400,
|
||||
msg: 'Invalid bitrate',
|
||||
data: [],
|
||||
},
|
||||
}
|
||||
}
|
||||
const apiUrl = new URL("https://music.gdstudio.xyz/api.php")
|
||||
apiUrl.searchParams.append("types", "url");
|
||||
apiUrl.searchParams.append("id", id);
|
||||
apiUrl.searchParams.append("br", br || "320");
|
||||
|
||||
const response = await fetch(apiUrl.toString());
|
||||
if (!response.ok) throw new Error(`API 响应状态: ${response.status}`);
|
||||
const result = await response.json();
|
||||
return {
|
||||
status: 200,
|
||||
body: {
|
||||
code: 200,
|
||||
msg: 'Success',
|
||||
data: result.data || [],
|
||||
},
|
||||
}
|
||||
} catch (err) {
|
||||
return {
|
||||
status: 500,
|
||||
body: {
|
||||
code: 500,
|
||||
msg: err.message || 'Internal Server Error',
|
||||
data: [],
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user