QQ音乐解析下载一学就会:五步免费跑通无损单曲、MV与整张歌单
【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic
单曲循环到第300遍,还是没能把它存进手机;歌单想离线,绿钻拦路;冷门好歌翻遍全网找不到下载入口——这些"想存存不下"的意难平,很多人都有过。MCQTSS_QQMusic 就是来治这个病的:一款纯 Python 编写的开源 QQ音乐解析工具,免费、轻量,单曲、MV、歌单、榜单、歌词一站式解析下载,把"折腾一下午"变成"一条命令的事"。
第1步:开工前,备齐这三样东西
动手之前,先把"燃料"备好,全程不超过三分钟:
- Python 3.9 及以上:Windows、macOS、Linux 通吃,性能差异不大;
- 依赖库:核心只需要
requests;只有用新版搜索接口时才额外装pyexecjs(用来跑一段 JavaScript); - 一份有效的 Cookie:这是唯一需要"手动"的前置动作,也是整个工具的地基。
仓库请这么请进门:
git clone https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic目录结构很清爽:Main.py 是所有功能的"总开关",剩下几个demo_*.py是现成的用法模板,照着改就能用。
Cookie 从哪来?浏览器登录 y.qq.com,按 F12 打开开发者工具,切到 Network(网络)面板,刷新页面后随便点开一个请求,在 Headers 的请求标头里找到 Cookie 字段,右键复制整段。回到代码里,set_cookie会自动把它转成 Python 认得的字典格式。
⚠️ 记住两句口诀:Cookie 有保质期,过期了接口会还你一个 403;想解析绿钻歌曲,就得用绿钻账号的 Cookie。这是工具权限的边界,提前知道能少走很多弯路。
第2步:五分钟跑通第一个示例
demo.py 就是一张"通关地图",完整演示了四件事:搜索 → 换播放地址 → 拿歌词 → 扒专辑信息。
以搜周杰伦为例,流程长这样:
search_music('周杰伦', 20)发出搜索请求,返回一串结构化的"身份凭证":歌名、歌手、songmid、songid、专辑 mid……样样齐全;- 挑出第一条结果的 songmid,交给
get_music_url,向 QQ 音乐的 CDN 分发服务器换回一条真实可用的播放链接; - 顺手再调
get_lyrics拿歌词、get_album_info拿发行时间、发行公司、语言等专辑详情。
整个过程几秒钟,控制台上会打印出"歌曲名 + ID + Mid + 专辑 + 歌手"的整齐清单,以及一条能直接下载的 URL。
拿到链接只是开始。项目还配套了一个同为 Python 编写的播放器界面(上图),专辑封面、歌词同步、进度控制一应俱全——解析、播放、歌词获取是串成一条线的,不是孤零零的"下载器"。
第3步:看懂这张能力地图
不用急着逐条背函数,先扫一眼 Main.py 里QQ_Music类的"技能树",心里有个谱:
| 能力 | 对应函数 | 一句话说明 |
|---|---|---|
| 单曲解析 | get_music_url | 用 Mid 换真实播放地址 |
| 音乐 / 专辑信息 | get_song_info / get_album_info | 曲名、歌手、发行信息全拿到 |
| 搜索 | search_music / search_music_2 | 老接口与新接口双保险 |
| 歌单 | get_playlist_info / _num | 抓歌单元信息 + 分批拉满全部歌曲 |
| 歌词 | get_lyrics | 原文、译文可选 |
| 推荐歌单 / 个性电台 | get_recommended_playlist / get_radio_info | 内容随 Cookie 联动 |
| 流行榜单 | get_toplist_music | 带"上升百分比"趋势数据 |
| MV | get_mv_url | 视频信息 + 多清晰度下载地址 |
第4步:三个高频场景逐个实操
场景一:整张歌单批量落地—— 参考 demo_1.py
逐首搜索太磨人。传一个歌单 ID,工具先抓标题、作者、标签、播放量与收藏量,再批量拉歌。有个值得留意的细节:接口单次能返回的歌曲数量有限,所以源码里用一个循环"翻页",一批批取完剩余部分,直到整张歌单清点完毕。每首歌的曲名、歌手、专辑都被整理成结构化数据,可以直接接下载流程,也可以直接生成本地音乐库的目录清单。
场景二:高清 MV 现场随时存—— 参考 demo_mv.py
输入一个 vid,get_mv_url同时返回视频信息和下载地址。同一支 MV 会给出多个清晰度档位,filetype 数值越高画质越好,挑中意的freeflow_url拿去下载就行。歌名、歌手等元信息自动带出,方便归档整理。
场景三:榜单追新一条龙—— 参考 demo_toplist.py
流行指数榜一键抓取,排名、歌名、歌手、上升百分比排得明明白白,谁在飙升一目了然。更妙的是榜单条目里直接带上了 songId 和 Mid——看完榜单 → 选中想听的 → 立刻走解析流程,一步都不浪费。
第5步:摸清背后的三条路,才算真的会用
第一条路:万能接口。工具的核心是 QQ 音乐网页端那个通用数据接口u.y.qq.com/cgi-bin/musicu.fcg。开发者的思路很朴素:用浏览器抓包,把网页发出去的 JSON 请求参数原样捕获,再替换成你想要的数据(比如换成目标歌曲的 Mid),就能模拟出一次合法请求。下图红框里就是要捕获的 data,格式为 JSON。
第二条路:签名钥匙。部分接口需要动态签名。Main.py 里的get_sign会对请求参数做 MD5 加变换处理,生成一个随参数变化的签名字符串,让请求更像真实用户发出的。
第三条路:正则抠数据。推荐歌单、个性电台这类内容,则是直接抓取网页 HTML,再用正则把内嵌在页面里的 JSON 一段段抠出来。三种方式组合,就拼出了整套工具。
进阶:从"能跑"到"好用"的四个习惯
- Cookie 常换常新:碰到 403 Forbidden,别纠结,多半是过期了,回网页端复制一份新的即可;
- 读懂 500001:这个错误码代表提交的数据有问题或 Cookie 失效。先查 Cookie,再核对 Mid/ID 有没有抄错;
- 新旧搜索接口两手抓:旧的手机端搜索接口曾被平台调整过,项目随后新增了
search_music_new/search_music.py,连 searchid 的生成脚本(getsearchid.js)都一并配好了。这条新路需要 pyexecjs 来运行 JavaScript,按需安装即可; - 接上 ffmpeg 做格式整理:解析结果本质是结构化 JSON,歌名、歌手、专辑、歌词都能自动关联。配合 ffmpeg 可以统一转成 FLAC 无损入库,或压成小体积 MP3 随身携带;再写个脚本批量重命名、按歌手分目录,个人音乐库就正式成型了。
写在最后
MCQTSS_QQMusic 的价值,是把"获取资源"这件事的复杂度降到了最低:单曲、歌单、MV、榜单一站式解决,搜索、解析、播放、元数据整理全链路打通。把它当成学习接口解析、爬虫与签名算法的活教材,也相当有意思。
最后说一句掏心窝的话:工具免费,版权不免费。本工具仅供个人学习、研究和技术交流使用,请尊重原创作者与版权方的合法权益,不要将解析内容用于商业用途或二次传播。愿每一位音乐爱好者,都能在规则之内,享受技术带来的便利与乐趣。
【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考