MCQTSS_QQMusic完整上手指南:从环境配置到歌单批量解析一次跑通
【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic
你上一次把某首歌下下来,结果拿到的是残缺版,是什么时候?或者一首一首扒完 50 首歌的歌单,下到一半全乱了?MCQTSS_QQMusic 是一个用 Python 编写的免费开源 QQ 音乐解析工具,能把单曲、歌单、MV 和流行指数榜提取成真实可用的下载地址。接下来按"跑起来 → 看能力 → 按场景实操 → 排错"的顺序走。
三步跑通 MCQTSS_QQMusic:克隆、装依赖、配 Cookie
要求很低:Python 3.9 起步,核心依赖只有一个requests。
- 克隆项目并安装依赖:
git clone https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic cd MCQTSS_QQMusic pip install requests- 需要新版搜索接口时,再补一条
pip install pyexecjs(用来运行项目里的 JavaScript 算法)。 - 验证环境:用 Python 执行
import Main不报错,说明核心代码就位。 - 配置 Cookie,这一步跳过寸步难行。QQ 音乐服务器靠 Cookie 认人,工具拿着你的 Cookie 去请求,才会被当成正常用户放行:
- 浏览器打开 QQ 音乐官网并登录;
- 按
F12打开开发者工具,切到"网络"面板; - 按
Ctrl+R刷新,在 Fetch/XHR 里点开任意一个请求; - 在请求标头中找到
Cookie字段,右键复制整串内容; - 填进代码:
QQM._cookies = QQM.set_cookie('你复制的Cookie')。
Cookie 有有效期,失效了重新复制一份即可;只有绿钻账号的 Cookie 才能解析绿钻歌曲。
能力全景:一张表看懂QQ音乐解析的全部功能
| 功能 | 对应函数 | 说明 |
|---|---|---|
| 搜索音乐 | search_music/search_music_2 | 返回 songmid、songid、专辑、歌手等信息 |
| 解析单曲地址 | get_music_url | 用歌曲 MID 换回真实播放链接 |
| 获取专辑信息 | get_album_info | 专辑名、发行公司、语言、简介 |
| 获取歌单 | get_playlist_info/get_playlist_info_num | 歌单基本信息 + 按偏移量分批取剩余歌曲 |
| 获取歌词 | get_lyrics | 返回原始歌词文本 |
| 解析 MV | get_mv_url | 返回 MV 信息 + 多清晰度下载地址 |
| 流行指数榜 | get_toplist_music | 排名、歌名、歌手、上升百分比 |
| 推荐歌单 / 个性电台 | get_recommended_playlist/get_radio_info | 直接抓取网页内嵌数据 |
所有能力都封装在 Main.py 的QQ_Music类里,四个示例对应四个场景:demo.py 单曲、demo_1.py 歌单批量、demo_mv.py MV、demo_toplist.py 榜单。想用新版搜索接口,看 search_music_new/search_music.py。另外作者还写了一个配套播放器,解析出来的资源能接入完整的播放体验:专辑封面、歌词同步、进度与音量控制。
场景实操:四种常用需求逐个跑通
单曲下载 & 歌词获取:从歌名到播放地址
流程是"搜索 → 拿身份 → 换地址"。搜索结果里最关键的字段是songmid和songid,可以理解为这首歌在 QQ 音乐体系里的"身份证号";把 MID 交给get_music_url,就能从 CDN 分发服务器换回一条可用播放链接。
import Main QQM = Main.QQ_Music() QQM._cookies = QQM.set_cookie('你复制的Cookie') result = QQM.search_music('周杰伦', 20) mid = result[0]['songmid'] print(QQM.get_music_url(mid)) # 解析真实播放地址 print(QQM.get_lyrics(mid)) # 歌词一并拿下解析出的链接本身带音质档位:128kbps 轻量听感,320kbps 兼顾体积,高码率无损按需取舍;搜索结果里的albummid丢给get_album_info还能顺带拿到专辑信息。
歌单批量拉取:按偏移量翻页清空整张歌单
只需给歌单 ID(网页地址playlist/后面那串数字)。get_playlist_info先带出标题、作者、标签、播放量和前 10 首;单次返回数量有限,源码里用循环按 15 首一批取完剩余:
pid = 7808278211 ret = QQM.get_playlist_info(pid) num = ret['detail']['songnum'] for j in range(int((num - 10) / 15 * 2)): ret = QQM.get_playlist_info_num(pid, j * 15 + 10) for song in ret['req_0']['data']['songlist']: print(song['name'], song['mid'])每首歌的曲名、歌手、专辑都是结构化数据,方便直接接下载流程,或生成一份本地音乐库目录清单。50 首还是 100 首,都是同一个循环的事。
MV 资源解析:一个 vid 换回多清晰度链接
MV 逻辑和单曲几乎一样,区别是入口参数从 MID 换成vid:
vid = 'r00127x0yzd' data = QQM.get_mv_url(vid) for mp4 in data['mvUrl']['data'][vid]['mp4']: if mp4['filetype'] != 0: print(mp4['filetype'], mp4['fileSize'], mp4['freeflow_url'])filetype数值越高画质越高,按需挑一条freeflow_url下载即可;MV 名称和歌手信息也会一并返回,归档不费劲。
榜单数据同步:流行指数榜直通解析流程
get_toplist_music一键抓取 QQ 音乐流行指数榜:排名、歌名、歌手、上升百分比,谁在飙升一目了然。更省事的是榜单条目里直接带着songId和albumMid,看完榜单选中想听的,立刻接解析下载流程,追新歌不用等别人搬运。完整写法见 demo_toplist.py。
卡住了?常见问题速查
Q: 请求返回 403 Forbidden→ 原因:Cookie 过期了。解决:去网页端按前面的步骤重新复制一份新 Cookie 换上。
Q: 函数直接返回 Error(500001 错误码)→ 原因:提交数据有问题或 Cookie 失效。解决:先换 Cookie,再检查 MID / ID / 歌单 ID 是否抄错。
Q: 绿钻歌曲解析失败→ 原因:普通账号 Cookie 没有 VIP 权限。解决:换绿钻账号的 Cookie,这是平台权限限制,不是 bug。
Q: 搜索突然没有结果→ 原因:旧手机端搜索接口已被平台调整。解决:改用search_music_new/目录的新版搜索,装好pyexecjs即可。
Q: 运行提示缺模块→ 原因:依赖没装全。解决:核心功能只要requests,新版搜索再补pyexecjs。
底层逻辑:万能接口 + 动态签名
这套工具的技术内核并不神秘。核心是 QQ 音乐网页端的通用数据接口u.y.qq.com/cgi-bin/musicu.fcg:在浏览器抓包捕获网页发出的 JSON 请求数据,在代码里把参数替换成目标内容(比如目标歌曲的 MID),就能模拟出一次合法的数据请求。Main.py 里的get_sign用 MD5 加变换处理生成动态签名,让请求更像真实用户发出的。推荐歌单、个性电台这类数据,则是直接抓取网页 HTML,再用正则把内嵌 JSON 抠出来。
写在最后:用对工具,也守好边界
MCQTSS_QQMusic 的价值在于把"获取资源"这件事的复杂度降到很低:单曲、歌单、MV、榜单一站式解决,搜索、解析、歌词、元数据整理全链路打通,也是学习接口解析与签名算法的活教材。需要说明:工具免费,版权不免费。项目仅供个人学习、研究和技术交流使用,请尊重原创作者与版权方的合法权益,不要把解析内容用于商业用途或二次传播。
git clone https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic装好requests、配好 Cookie,你的第一次解析就开始了。愿你在规则之内,享受技术带来的便利。
【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考