免费QQ音乐解析工具MCQTSS_QQMusic:从单曲到批量歌单,一次跑通完整流程 免费QQ音乐解析工具MCQTSS_QQMusic从单曲到批量歌单一次跑通完整流程【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic深夜通勤路上想把刚才听到的歌存进手机离线收听找了一圈却只能拿到残缺版本。MCQTSS_QQMusic 是一款 Python 编写的免费 QQ 音乐解析工具能把歌曲、歌单、MV、榜单转换成可直接使用的下载地址在你自己的机器上完成搜索、解析、下载全链路。⚡ 跑通前的唯一准备装好依赖与配置 QQ 音乐 Cookie这一章解决demo 跑不动的问题——依赖一条命令装好Cookie 配好两件事都做完才能谈后续。工具核心只有一个Main.py把代码拉到本地并安装依赖git clone https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic cd MCQTSS_QQMusic pip install requestsQQ 音乐服务器靠 Cookie 识别用户带着你 Cookie 发出的请求才会被当作正常访问放行所以它是所有功能的前提。获取步骤浏览器打开 QQ 音乐官网并登录按F12打开开发者工具切到 Network网络面板CtrlR刷新页面在 Fetch/XHR 里任选一个请求并打开请求标头找到Cookie字段右键复制整串内容。把复制的整串写入代码即可set_cookie会把它转换成请求所需的字典格式QQM Main.QQ_Music() QQM._cookies QQM.set_cookie(这里粘贴复制的整串Cookie)两点提醒Cookie 有有效期失效了重新复制一份只有绿钻账号的 Cookie 才能解析绿钻歌曲。 一条主线走通核心流程搜到歌曲取出下载地址这一章解决最基础的问题如何从歌名得到可播放的地址。流程固定三步。先搜索调用search_music传入歌名返回的结构化数据里每首歌最关键的字段是songmid——可以把它理解成系统给每首歌发的票根后面所有解析动作都挂在这张票根上。再取地址把票根交给get_music_url它会去 CDN 分发服务器请求拿回一条以https://dl.stream.qqmusic.qq.com/开头、限时有效的下载链接交给任意下载工具即可。songs QQM.search_music(晴天, 20) for item in songs: print(item[songname], item[singer][0][name]) print(QQM.get_music_url(songs[0][songmid]))同一份搜索结果里还带专辑 MID交给get_album_info能拿到专辑名、发行公司、发行时间歌曲 MID 交给get_lyrics则返回原始歌词文本。音质方面解析出的链接自带档位128kbps 体积小巧320kbps 兼顾体积与听感更高档位还有无损按你的存储情况取舍。 从一首到一整批三个进阶场景单曲流程只是起点这一章把同一套思路扩到三个规模化场景整张歌单、一支 MV、一份榜单。QQ音乐歌单批量下载偏移量分页的正确姿势歌单 ID 就是 URL 里playlist/后面那串数字。先用get_playlist_info拿到歌单的标题、作者、标签、播放量以及前 10 首歌——该接口单次只返回 10 首所以源码用第二个接口get_playlist_info_num按偏移量分批补齐每次传一个起始偏移一批取 15 首直到达到总歌数。ret QQM.get_playlist_info(7808278211) total ret[detail][songnum] for j in range(int((total - 10) / 15) 1): batch QQM.get_playlist_info_num(7808278211, j * 15 10) for song in batch[req_0][data][songlist]: print(song[name], song[mid])每首歌的曲名、歌手、专辑信息随之齐整50 首还是 100 首都是同一个循环。demo_1.py里就是这条流程的完整实现。QQ音乐MV解析一个 vid 对应多档清晰度MV 解析的入口参数不一样需要的不是歌曲 MID而是 MV 自身的vid。把 vid 交给get_mv_url返回结果分两块一块是 MV 信息歌名、歌手另一块是下载地址列表。列表里每条带filetype、fileSize、freeflow_url三个字段filetype数值越高画质越高对照文件大小挑一条地址即可。demo_mv.py演示了完整写法。QQ音乐流行指数榜看看现在什么在火get_toplist_music()不需要参数直接返回最新流行指数榜每条包含排名、歌名、歌手还有一个rankValue上升百分比字段谁在飙升一目了然。榜单条目还附带songId和albumMid两个顺手字段跳过搜索环节直接接入上面的解析流程榜单相当于一份该下什么的推荐清单。️ 代码地图仓库每个文件干什么想快速定位代码时先看这张表文件负责什么Main.pyQQ_Music类搜索、解析、歌单、MV、榜单、签名全部函数都在这里demo.py单曲流程示例搜索、取下载地址、专辑信息、歌词demo_1.py歌单批量示例先取基础信息再按偏移量分批补齐demo_mv.pyMV 解析示例vid 换取信息与多清晰度下载地址demo_toplist.py流行指数榜示例输出排名、上升百分比与音乐信息search_music_new/新版搜索接口用pyexecjs运行 JS 算法生成 searchid四个 demo 与上面的场景一一对应卡在哪一步就打开对应文件对照着看。 它为什么能解析一个通用接口加一把签名这一章讲底层原理理解了它报错时才知道往哪查。项目里大多数函数走的是同一扇门QQ 音乐网页端通用数据接口u.y.qq.com/cgi-bin/musicu.fcg。网页向它发的每个数据请求都是 JSON 格式在开发者工具里捕获一份data把里面的参数换成你要的内容——比如换成目标歌曲的 MID——就组出一条合法的数据请求。捕获到的 data 并不总能直接提交部分请求还要求签名Main.py里的get_sign先把序列化后的请求参数做 MD5 哈希再经过一轮字符变换生成动态签名串让请求更接近真实用户行为。推荐歌单、个性电台、榜单则走另一条路get_recommended_playlist、get_radio_info、get_toplist_music直接抓取页面 HTML用正则把内嵌的 JSON如window.__INITIAL_DATA__抠出来。这类数据与当前账号相关返回内容会随 Cookie 变化。️ 跑不通时看这里这一章把最常见的报错场景收拢到一起对照症状就能找到原因403 ForbiddenCookie 过期。按第一章的步骤重新复制一份新的换上。返回 500001 错误码提交的数据或 Cookie 有问题。先换 Cookie再核对 MID、歌单 ID 是否抄对。代码里多个函数对这个码做了防御统一返回Error看到Error属正常现象。绿钻歌曲解析失败平台权限限制不是 bug。只有绿钻账号的 Cookie 才能换到绿钻歌曲的地址。搜索接口突然失效旧手机端搜索接口c.y.qq.com/soso/fcgi-bin/search_for_qq_cp已被平台调整。改用新版搜索search_music_new/search_music.py先执行pip install pyexecjs来运行其中的 JS 算法。提示缺模块核心功能装requests即可新版搜索接口才需要额外补pyexecjs。 不止于下载配套播放器如果不想停在拿到地址这一步项目作者还写了一个配套桌面播放器 MCQTSS Music。从截图可以看到专辑封面、同步歌词、进度与音量控制、播放按键一应俱全。搜索、解析、播放、歌词获取被串成了一条线而不是几个孤立脚本。 工具免费版权不免费MCQTSS_QQMusic 的价值在于把获取资源的复杂度降到最低单曲一条命令、歌单一个循环同样的接口思路延伸到 MV 和榜单顺带也是学习接口解析与签名算法的现成教材。需要说明的是工具免费版权不免费。项目仅供个人学习、研究和技术交流使用请尊重原创作者与版权方的合法权益不要把解析内容用于商业用途或二次传播。还没克隆的话git clone https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic依赖清单Python 3.9 起步核心功能只需requests新版搜索接口补一个pyexecjs。Cookie 配好之后你的第一次解析就可以开始了。【免费下载链接】MCQTSS_QQMusicQQ音乐解析项目地址: https://gitcode.com/gh_mirrors/mc/MCQTSS_QQMusic创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考