QQ音乐解析工具全攻略:三步拿单曲、批量搬歌单、顺手下 MV
【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic
晚上十点,你终于想起那首初中时代的冷门老歌,点开播放器却只弹出一句"开通会员后才能下载";周末想给爸妈整理一张怀旧歌单,VIP 歌曲偏偏一首都导不出来;好不容易找到心仪歌手的现场版 MV,网页上却只肯给你 360p 的画质。这些"想存却存不下来"的瞬间,是不是有点眼熟?
今天要聊的 MCQTSS_QQMusic,就是为这类时刻准备的:一个用 Python 编写的 QQ 音乐解析开源工具。它免费、体积小、对电脑配置几乎没要求,能做三件最实际的事——把单曲的真实下载地址解析出来、把整张歌单批量搬走、把 MV 和榜单数据一并拿下。跟着下面的路线走,半小时内你就能亲手跑通第一首。
开工前十分钟:环境清单和那张"会员卡"
先别急着写代码,把准备工作做齐,能省下后面一大半的报错时间。
要装的东西其实很少:
| 需要什么 | 要不要装 | 一句话解释 |
|---|---|---|
| Python 3.9 及以上 | 必须 | 跑脚本的底座 |
| requests 库 | 必须 | 代替你发网络请求的"跑腿" |
| pyexecjs 库 | 可选 | 只有用新版搜索接口才需要,其余情况可以不理 |
装完环境,还有一件绕不开的事:配置 Cookie。简单说,Cookie 就是你浏览器里的"会员卡",把它复制给工具,QQ 音乐的服务器才会把你当成熟客放行。
获取方法不复杂:用浏览器登录 y.qq.com,按 F12 打开开发者工具,切到 Network(网络)面板,刷新页面后点开任意一个请求,在 Headers 里找到 Cookie 字段,复制出来填进代码即可。下图红框里就是它的藏身之处。
这一步别嫌麻烦,它是后面所有功能正常运转的前提。
第一单:一首歌从"搜得到"到"下得了"只要三步
准备工作就绪,现在做第一次完整的练习。拿 demo.py 当参考,跟着走一遍:
- 搜索:调用 search_music 把歌名交给工具,它会返回这首歌的 MID、ID、专辑名、歌手等信息,相当于拿到了这首歌的"身份证";
- 换地址:把 MID 喂给 get_music_url,工具会向 QQ 音乐的 CDN 分发服务器换回一条真实可用的播放地址,交给任何下载工具就能存下来;
- 顺手加料:同一份数据里还能抽出专辑信息和歌词,用 get_album_info 和 get_lyrics 就能一起带走。
整个过程几秒钟,你看到的结果是一串以 dl.stream.qqmusic.qq.com 开头的链接。这串链接的意义在于:它不再是网页播放器里那个"看得到摸不着"的加密流,而是一个能直接下载的真实地址。
上图是作者配套的 MCQTSS Music 播放器,解析出来的资源被接进了完整的播放体验——封面、歌词、进度控制一应俱全。当然,你也可以只把它当下载器用,各取所需。
批量玩法:先想清楚你到底想打包哪一样
"能下歌"只是第一步,很多人真正想要的是"一次带走一整批"。这个工具提供了三个批量入口,适合的人群完全不同,先对号入座再动手:
| 你的需求 | 对应的函数 | 适合谁 |
|---|---|---|
| 把整张歌单搬进本地音乐库 | get_playlist_info 系列 | 收藏动辄几百首的"囤歌党" |
| 存一支歌的高清现场版 | get_mv_url | 视频创作者、现场控 |
| 每周同步热门新歌 | get_toplist_music | 追新歌追得心累的听众 |
歌单党看这里:demo_1.py 是现成的写法。先提供歌单 ID,工具会抓回歌单的标题、作者、标签、播放量,再逐首列出歌曲。有个小细节要知道——接口单次最多返回十来首,所以源码里用了一个循环,像翻页一样一批批取完剩余部分。别嫌它"慢",这是接口的规矩,循环取完就是完整的一整张。
MV 党看这里:demo_mv.py 演示了完整流程,输入一个 vid(MV 的标识符),工具会同时返回视频信息和多个清晰度的下载地址。挑画质的口诀是:filetype 数值越大,画质越高。挑中一条 freeflow_url 拿去下载就行。
榜单党看这里:demo_toplist.py 一键抓取流行指数榜,返回结果里带着排名、歌名、歌手和"上升百分比"。更贴心的是,每条榜单都自带 songId 和 MID——看完榜单,选中想听的,立刻就能接上"解析下载"的流程。
原理不过一层窗户纸
新手常被"解析"两个字吓到,其实背后就一句话:向 QQ 音乐的通用数据接口发出一个格式正确的请求,再把它回给你的 JSON 数据翻译成人能看懂的东西。
打个比方:服务器就像一个只认固定格式的"下单窗口",你把需求按它的格式写在订单上递进去(把目标歌曲的 MID 填进 data 数据),窗口就回你一张"提货单",上面写着真实下载地址。工具做的,只是把你亲手填订单的麻烦自动化了。
上图画的是抓包现场:左边是网页界面,右边红框里就是要捕获的 data 数据,格式是 JSON。工具的核心请求都走u.y.qq.com/cgi-bin/musicu.fcg这个万能接口;少数接口(比如榜单)还需要签名,Main.py 里的 get_sign 算法会对参数做 MD5 加变换处理,生成一个动态签名——你可以把它理解成进门时要对的"暗号",让请求看起来更像真人发出。
翻车现场:高频报错一次说清
新手最大的敌人不是代码,是那些看不懂的报错。这里用问答的形式把最常见的几种一网打尽:
Q:明明按教程做了,怎么突然 403 Forbidden?A:九成是 Cookie 过期了。重新回网页端复制一份最新的换上即可,这个动作以后会经常做。
Q:返回 500001 是什么情况?A:代表提交的数据有问题或 Cookie 失效。排查顺序是:先换新 Cookie,再检查你填的 MID/ID 有没有抄错。注意 get_music_url 在遇到这个错误时返回的是一串 'Error',不是崩溃。
Q:普通歌曲都能下,绿钻歌曲怎么解析失败?A:工具解析的是接口权限内的资源,绿钻歌只有绿钻账号的 Cookie 才能解析,这点项目文档里写得很直白。
Q:搜索功能怎么突然失效了?A:旧版手机端搜索接口曾被平台调整过,项目已经更新了新版搜索方式,改用 search_music_new 目录下的写法即可。接口偶尔变动是常态,失效先去项目仓库看有没有更新。
给新手的四条"保命"建议
- Cookie 放对位置再谈别的。为什么:八成报错的源头都在这里。怎么做:按前文流程复制后填进 set_cookie 即可。
- 第三方库按需安装。为什么:不用新版搜索接口就不需要 pyexecjs。怎么做:只用 requests 就能跑通基础功能。
- 对歌单批量有耐心。为什么:接口单次限流是常态。怎么做:像 demo_1.py 那样写循环翻页,别指望一次性拿全。
- 音质预期放平。为什么:普通账号拿不到全部无损资源。怎么做:先要 320kbps,听感已经足够日常使用。
写在最后
如果你也攒了不少"想听又下不了"的歌,不妨花半小时把这条路走一遍。获取项目很简单,克隆https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic后按 Readme 指引安装依赖即可运行。它既是实用的个人音乐库工具,也是一份学习接口解析、抓包与签名算法的好教材。
最后说一句重要的:工具免费,版权不免费。本项目仅供个人学习、研究和技术交流使用,请尊重原创作者与版权方的权益,不要将解析内容用于商业用途或二次传播。愿你在规则之内,享受技术带来的便利。
【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考