MCQTSS_QQMusic 免费 QQ 音乐解析工具:单曲、歌单、MV、榜单一站式拿下载地址
【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic
MCQTSS_QQMusic 是一款用 Python 编写的 QQ 音乐解析工具,能把单曲、歌单、MV 和流行榜单转成真实可用的播放与下载地址,适合想离线存歌、批量整理歌单、收藏 MV 的普通用户,读完本文即可跑通全流程。
从零到一:5 分钟跑起来
环境准备:clone 仓库并安装依赖
git clone https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic cd MCQTSS_QQMusic pip install requestsPython 3.9 起步即可,核心功能只依赖requests一个库;只有使用search_music_new里的新版搜索接口时,才需要额外安装pyexecjs来运行仓库自带的 JavaScript 算法。
Cookie 获取与填写:服务器为什么要认你的身份
QQ 音乐的服务器靠 Cookie 识别访问者的登录状态,你的程序带着它发请求,才会被当成正常用户放行。获取步骤如下:
- 浏览器打开 QQ 音乐官网并登录;
- 按
F12打开开发者工具,切到“网络”(Network)面板; - 按
Ctrl+R刷新页面,在 Fetch/XHR 里点开任意一个请求; - 在请求标头(Request Headers)里找到
Cookie字段,右键复制整串内容; - 填进代码:
QQM._cookies = QQM.set_cookie('你复制的Cookie')。
这张图展示了在浏览器开发者工具中定位并复制整串 Cookie 的完整过程,左侧为 QQ 音乐网页,右侧红框中就是要复制的 Cookie。
两个注意点 ⚠️:Cookie 有有效期,失效后重新复制一份即可;普通账号的 Cookie 拿不到绿钻歌曲的地址,只有绿钻账号才可以。
首跑验证:import 不报错就通过
python -c "import Main"没有ModuleNotFoundError、没有任何异常输出,说明核心代码与依赖都已就位,可以放心跑各个 demo 了。
能力一览:它到底能解析什么
| 功能 | 对应函数 | 说明 |
|---|---|---|
| 搜索音乐 | search_music/search_music_2 | 返回 MID、ID、专辑、歌手等字段 |
| 解析单曲下载地址 | get_music_url | 用歌曲 MID 换回真实播放链接 |
| 获取音乐信息 | get_music_info | 用搜索返回的音乐 ID 查曲名、专辑 |
| 获取专辑信息 | get_album_info | 专辑名、发行公司、语言、简介 |
| 获取歌单 | get_playlist_info | 标题、作者、标签、播放量,单次最多 10 首 |
| 批量取歌单歌曲 | get_playlist_info_num | 按偏移量每 15 首一批继续拉取 |
| 获取歌词 | get_lyrics | 返回原始歌词文本 |
| 解析 MV | get_mv_url | 多清晰度下载地址与 MV 信息 |
| 流行指数榜 | get_toplist_music | 排名、歌名、歌手、上升趋势 |
| 推荐歌单 / 个性电台 | get_recommended_playlist/get_radio_info | 抓取网页内嵌 JSON |
主线逻辑集中在 Main.py 的QQ_Music类中,四个 demo 各管一个场景:demo.py 单曲全流程、demo_1.py 歌单批量、demo_mv.py MV 解析、demo_toplist.py 榜单同步;新版搜索位于 search_music_new/search_music.py。
按目标走:4 个高频用法实操
目标一:单曲解析下载,三步拿到播放地址
先调search_music搜歌名,结果里最关键的是songmid与songid两个字段;再把 MID 交给get_music_url,由 CDN 分发接口换回可直接播放的链接,音质从 128kbps、320kbps 到无损都有得选。同一结果里的albummid丢给get_album_info,还能顺带查出专辑详情。
import Main QQM = Main.QQ_Music() QQM._cookies = QQM.set_cookie('你的Cookie') songs = QQM.search_music('晴天', 5) url = QQM.get_music_url(songs[0]['songmid'])目标二:歌单批量拉取的正确姿势
get_playlist_info只返回歌单详情和前 10 首,所以参考写法用循环翻页:按偏移量每 15 首一批调用get_playlist_info_num,直到拉满songnum总数。歌单 ID 就是 URL 里playlist/后面那串数字,50 首和 500 首跑的都是同一段循环。
ret = QQM.get_playlist_info(7808278211) num = ret['detail']['songnum'] for j in range(int((num - 10) / 15 * 2)): more = QQM.get_playlist_info_num(7808278211, j * 15 + 10)每首都会带出曲名、歌手、专辑和 MID,整理成清单或接下载流程都方便。
目标三:MV 高清收藏,一个 vid 就够
入口参数换成搜索结果里的vid,调用get_mv_url后,返回里既有歌名、歌手,也有一组清晰度档位:每档带filetype、文件大小和freeflow_url。选择规则很简单——filetype数值越高画质越高,挑一条freeflow_url下载即可,歌曲名和歌手也一并带出,方便归档。
data = QQM.get_mv_url('r00127x0yzd')目标四:流行指数榜同步,看完直接下
get_toplist_music无需额外参数,返回的每条记录都带排名、歌名、歌手、上升百分比,以及现成的songId和albumMid。看中哪首,就用songId调get_music_info补齐 MID,再走一遍get_music_url,从榜单到解析下载只需两步。
ret = QQM.get_toplist_music() info = QQM.get_music_info(ret['toplistData']['song'][0]['songId'])原理揭秘:解析到底是怎么实现的
整件事围绕三个点。其一,QQ 音乐网页端存在通用数据接口u.y.qq.com/cgi-bin/musicu.fcg,网页发出的每个请求都带一段 JSON 格式的data参数;其二,用浏览器抓包把这段data原样抄下来,替换成你想要的参数(如目标歌曲的 MID),就能模拟出一次合法的数据请求;其三,请求里还有一把动态签名钥匙,Main.py 中的get_sign函数对参数先做 MD5,再经位运算与 Base64 风格变换拼出签名,让请求更像真实用户发出。推荐歌单、个性电台这类数据则直接抓网页 HTML,用正则把内嵌 JSON 抠出来。
这张图展示了在开发者工具中捕获网页请求里 JSON 格式data数据的过程,红框中即为需要复制并提交的内容。
卡住了?自查清单
- 症状:403 Forbidden→ 原因:Cookie 过期。解法:按前面步骤重新复制一份新 Cookie 换上。
- 症状:返回 500001 或函数输出 Error→ 原因:提交数据有误或 Cookie 失效。解法:先换 Cookie,再核对 MID / 歌单 ID 是否抄错。
- 症状:绿钻歌曲解析失败→ 原因:普通账号权限拿不到 VIP 资源地址。解法:换绿钻账号的 Cookie,这属于平台权限限制。
- 症状:搜索接口突然失效→ 原因:旧手机搜索接口
c.y.qq.com/soso/fcgi-bin/search_for_qq_cp已被平台调整。解法:改用 search_music_new/search_music.py 的新版搜索。 - 症状:提示缺模块→ 解法:核心功能装
requests即可;使用新版搜索接口时再补装pyexecjs。
不止于下载
作者还配套了一个 Python 编写的播放器 MCQTSS Music,解析出的资源可直接接进播放界面:专辑封面、歌词同步、进度与音量控制一应俱全。搜索、解析、播放、歌词因此连成一条完整链路,而不是一堆孤立脚本。
这张图展示了配套播放器解析 QQ 音乐资源后的播放界面,包含专辑封面、歌词显示与播放控制。
工具本身免费开源,但版权不免费:解析内容仅供个人学习、研究和技术交流使用,请尊重原创作者与版权方,不要用于商业用途或二次传播。
git clone https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic装好requests、配好 Cookie,你的第一次解析就可以开始了。
【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考