一个基于Node.js和Express的QQ音乐播放链接获取服务,支持多种音质、歌词获取、歌曲信息查询等功能。
npm install
在项目根目录创建 qqcookie.txt 文件,并填入有效的QQ音乐Cookie:
pgv_pvid=277615248; fqm_pvqid=aa07e5c1-520b-419d-9...
npm start
服务将在 http://localhost:3000 启动。
http://localhost:3000application/jsonGET /health
{
"status": "ok",
"timestamp": "2025-09-23T16:25:48.268Z",
"uptime": 96.8302123
}
POST /api/qqmusic/get-link
请求体:
{
"songmid": "004YZbkL2MNHoY",
"quality": "HQ高品质"
}
响应:
{
"code": 200,
"msg": "获取成功",
"data": {
"songmid": "004YZbkL2MNHoY",
"quality": "320",
"mapped_quality": "HQ高品质",
"url": "https://...",
"bitrate": "320kbps"
}
}
POST /api/qqmusic/get-links
请求体:
{
"songmid": "004YZbkL2MNHoY",
"qualities": ["标准", "HQ高品质", "SQ无损品质"]
}
POST /api/qqmusic/get-lyric
请求体:
{
"songmid": "004YZbkL2MNHoY"
}
或
{
"songid": "123456789"
}
POST /api/qqmusic/get-info
请求体:
{
"songmid": "004YZbkL2MNHoY"
}
响应:
{
"code": 200,
"msg": "获取成功",
"data": {
"name": "歌曲名称",
"album": "专辑名称",
"singer": "歌手名称",
"pic": "封面图片URL",
"mid": "004YZbkL2MNHoY",
"id": 123456789,
"interval": 240
}
}
GET /api/qqmusic/qualities
响应:
{
"code": 200,
"msg": "获取成功",
"data": {
"quality_map": {
"标准": "128",
"HQ高品质": "320",
"SQ无损品质": "flac",
"臻品母带3.0": "master"
},
"supported_qualities": ["标准", "HQ高品质", "SQ无损品质", "臻品母带3.0"]
}
}
POST /api/qqmusic/check-quality-support
这个接口支持两种模式:单首歌曲检查所有音质,或批量歌曲检查指定音质。
请求体:
{
"songmids": "004YZbkL2MNHoY",
"mode": "single"
}
响应:
{
"code": 200,
"msg": "音质支持检查完成",
"data": {
"songmid": "004YZbkL2MNHoY",
"song_info": {
"name": "歌曲名称",
"singer": "歌手名称",
"album": "专辑名称"
},
"total_qualities": 10,
"supported_count": 6,
"unsupported_count": 4,
"supported_qualities": ["标准", "HQ高品质", "SQ无损品质"],
"unsupported_qualities": ["臻品母带3.0", "臻品全景声2.0"],
"quality_details": {
"标准": {
"code": "128",
"bitrate": "128kbps",
"supported": true,
"url_available": true,
"url": "https://ws.stream.qqmusic.qq.com/M500..."
},
"臻品母带3.0": {
"code": "master",
"bitrate": null,
"supported": false,
"url_available": false,
"reason": "可能需要VIP权限或该音质不存在"
}
},
"best_quality": "SQ无损品质"
}
}
请求体:
{
"songmids": ["004YZbkL2MNHoY", "003aAYrN3GE5Xu", "002J4UUk29y8BY"],
"qualities": ["标准", "HQ高品质", "SQ无损品质"],
"mode": "batch"
}
响应:
{
"code": 200,
"msg": "批量音质支持检查完成",
"data": {
"mode": "batch",
"total_songs": 3,
"checked_qualities": ["标准", "HQ高品质", "SQ无损品质"],
"total_checks": 9,
"total_supported": 7,
"support_rate": "77.78%",
"results": {
"004YZbkL2MNHoY": {
"song_info": {
"name": "歌曲名称1",
"singer": "歌手名称1",
"album": "专辑名称1"
},
"qualities": {
"标准": {
"code": "128",
"bitrate": "128kbps",
"supported": true,
"url_available": true,
"url": "https://ws.stream.qqmusic.qq.com/M500..."
},
"HQ高品质": {
"code": "320",
"bitrate": "320kbps",
"supported": true,
"url_available": true,
"url": "https://ws.stream.qqmusic.qq.com/M800..."
},
"SQ无损品质": {
"code": "flac",
"bitrate": null,
"supported": false,
"url_available": false,
"reason": "可能需要VIP权限或该音质不存在"
}
},
"supported_count": 2,
"total_count": 3
}
}
}
}
GET /api/qqmusic/cookie-status
响应:
{
"code": 200,
"msg": "检查完成",
"data": {
"has_cookie": true,
"cookie_length": 978,
"cookie_preview": "pgv_pvid=277615248; fqm_pvqid=aa07e5c1-520b-419d-9..."
}
}
| 中文名称 | 代码 | 格式 | 说明 |
|---|---|---|---|
| 标准 | 128 | MP3 | 128kbps |
| HQ高品质 | 320 | MP3 | 320kbps |
| SQ无损品质 | flac | FLAC | 无损音质 |
| 臻品母带3.0 | master | FLAC | 母带音质 |
| 臻品全景声2.0 | atmos_2 | FLAC | 全景声 |
| 臻品音质2.0 | atmos_51 | FLAC | 5.1声道 |
| OGG高品质 | ogg_320 | OGG | 320kbps |
| OGG标准 | ogg_192 | OGG | 192kbps |
| AAC高品质 | aac_192 | M4A | 192kbps |
| AAC标准 | aac_96 | M4A | 96kbps |
所有接口都遵循统一的错误响应格式:
{
"code": 400,
"msg": "错误描述",
"data": null
}
常见错误码:
400: 请求参数错误500: 服务器内部错误或Cookie无效qqnode/
├── qqapi.js # QQ音乐API核心类
├── qqmusic-link.js # Express路由处理
├── server.js # 主服务器文件
├── test.js # 测试脚本
├── package.json # 项目配置
├── qqcookie.txt # Cookie配置文件
└── README.md # 说明文档
MIT License
欢迎提交Issue和Pull Request!
免责声明:本项目仅供学习和研究使用,请遵守相关法律法规和服务条款。
JavaScript
100.0%
一个基于Node.js和Express的QQ音乐播放链接获取服务,支持多种音质、歌词获取、歌曲信息查询等功能。
npm install
在项目根目录创建 qqcookie.txt 文件,并填入有效的QQ音乐Cookie:
pgv_pvid=277615248; fqm_pvqid=aa07e5c1-520b-419d-9...
npm start
服务将在 http://localhost:3000 启动。
http://localhost:3000application/jsonGET /health
{
"status": "ok",
"timestamp": "2025-09-23T16:25:48.268Z",
"uptime": 96.8302123
}
POST /api/qqmusic/get-link
请求体:
{
"songmid": "004YZbkL2MNHoY",
"quality": "HQ高品质"
}
响应:
{
"code": 200,
"msg": "获取成功",
"data": {
"songmid": "004YZbkL2MNHoY",
"quality": "320",
"mapped_quality": "HQ高品质",
"url": "https://...",
"bitrate": "320kbps"
}
}
POST /api/qqmusic/get-links
请求体:
{
"songmid": "004YZbkL2MNHoY",
"qualities": ["标准", "HQ高品质", "SQ无损品质"]
}
POST /api/qqmusic/get-lyric
请求体:
{
"songmid": "004YZbkL2MNHoY"
}
或
{
"songid": "123456789"
}
POST /api/qqmusic/get-info
请求体:
{
"songmid": "004YZbkL2MNHoY"
}
响应:
{
"code": 200,
"msg": "获取成功",
"data": {
"name": "歌曲名称",
"album": "专辑名称",
"singer": "歌手名称",
"pic": "封面图片URL",
"mid": "004YZbkL2MNHoY",
"id": 123456789,
"interval": 240
}
}
GET /api/qqmusic/qualities
响应:
{
"code": 200,
"msg": "获取成功",
"data": {
"quality_map": {
"标准": "128",
"HQ高品质": "320",
"SQ无损品质": "flac",
"臻品母带3.0": "master"
},
"supported_qualities": ["标准", "HQ高品质", "SQ无损品质", "臻品母带3.0"]
}
}
POST /api/qqmusic/check-quality-support
这个接口支持两种模式:单首歌曲检查所有音质,或批量歌曲检查指定音质。
请求体:
{
"songmids": "004YZbkL2MNHoY",
"mode": "single"
}
响应:
{
"code": 200,
"msg": "音质支持检查完成",
"data": {
"songmid": "004YZbkL2MNHoY",
"song_info": {
"name": "歌曲名称",
"singer": "歌手名称",
"album": "专辑名称"
},
"total_qualities": 10,
"supported_count": 6,
"unsupported_count": 4,
"supported_qualities": ["标准", "HQ高品质", "SQ无损品质"],
"unsupported_qualities": ["臻品母带3.0", "臻品全景声2.0"],
"quality_details": {
"标准": {
"code": "128",
"bitrate": "128kbps",
"supported": true,
"url_available": true,
"url": "https://ws.stream.qqmusic.qq.com/M500..."
},
"臻品母带3.0": {
"code": "master",
"bitrate": null,
"supported": false,
"url_available": false,
"reason": "可能需要VIP权限或该音质不存在"
}
},
"best_quality": "SQ无损品质"
}
}
请求体:
{
"songmids": ["004YZbkL2MNHoY", "003aAYrN3GE5Xu", "002J4UUk29y8BY"],
"qualities": ["标准", "HQ高品质", "SQ无损品质"],
"mode": "batch"
}
响应:
{
"code": 200,
"msg": "批量音质支持检查完成",
"data": {
"mode": "batch",
"total_songs": 3,
"checked_qualities": ["标准", "HQ高品质", "SQ无损品质"],
"total_checks": 9,
"total_supported": 7,
"support_rate": "77.78%",
"results": {
"004YZbkL2MNHoY": {
"song_info": {
"name": "歌曲名称1",
"singer": "歌手名称1",
"album": "专辑名称1"
},
"qualities": {
"标准": {
"code": "128",
"bitrate": "128kbps",
"supported": true,
"url_available": true,
"url": "https://ws.stream.qqmusic.qq.com/M500..."
},
"HQ高品质": {
"code": "320",
"bitrate": "320kbps",
"supported": true,
"url_available": true,
"url": "https://ws.stream.qqmusic.qq.com/M800..."
},
"SQ无损品质": {
"code": "flac",
"bitrate": null,
"supported": false,
"url_available": false,
"reason": "可能需要VIP权限或该音质不存在"
}
},
"supported_count": 2,
"total_count": 3
}
}
}
}
GET /api/qqmusic/cookie-status
响应:
{
"code": 200,
"msg": "检查完成",
"data": {
"has_cookie": true,
"cookie_length": 978,
"cookie_preview": "pgv_pvid=277615248; fqm_pvqid=aa07e5c1-520b-419d-9..."
}
}
| 中文名称 | 代码 | 格式 | 说明 |
|---|---|---|---|
| 标准 | 128 | MP3 | 128kbps |
| HQ高品质 | 320 | MP3 | 320kbps |
| SQ无损品质 | flac | FLAC | 无损音质 |
| 臻品母带3.0 | master | FLAC | 母带音质 |
| 臻品全景声2.0 | atmos_2 | FLAC | 全景声 |
| 臻品音质2.0 | atmos_51 | FLAC | 5.1声道 |
| OGG高品质 | ogg_320 | OGG | 320kbps |
| OGG标准 | ogg_192 | OGG | 192kbps |
| AAC高品质 | aac_192 | M4A | 192kbps |
| AAC标准 | aac_96 | M4A | 96kbps |
所有接口都遵循统一的错误响应格式:
{
"code": 400,
"msg": "错误描述",
"data": null
}
常见错误码:
400: 请求参数错误500: 服务器内部错误或Cookie无效qqnode/
├── qqapi.js # QQ音乐API核心类
├── qqmusic-link.js # Express路由处理
├── server.js # 主服务器文件
├── test.js # 测试脚本
├── package.json # 项目配置
├── qqcookie.txt # Cookie配置文件
└── README.md # 说明文档
MIT License
欢迎提交Issue和Pull Request!
免责声明:本项目仅供学习和研究使用,请遵守相关法律法规和服务条款。
JavaScript
100.0%