Musicdl 部分核心功能分析
Musicdl 项目地址
musicdl 是一个多音源音乐搜索与下载项目。它的核心目标是:输入关键词或歌单链接,从多个音乐平台搜索歌曲,解析真实音频下载地址,然后把歌曲、歌词和标签信息保存到本地。
——Codex
今天闲来无事,打算尝试一下 Musicdl 的强大。但主要目的是弄懂项目当中的下载功能。下载功能算是整个项目中最核心的功能,包括多种音源的下载支持,比如 kuwo, qq, qianqian, migu 。
由于之前尝试过 zhiyiyo 的 Groove 项目——可以任意搜索音乐并免费收听下载的音乐播放器,里面关于 kuwo 的音乐音频文件的下载逻辑。所以这次也是从 kuwo 入手。
基本逻辑是
- 找到目标歌曲的 MUSICRID
- 选择可行的 format
- 组合明文 query,主要变化 rid 和 format
- 加密成 q 参数
- 放进 http://mobi.kuwo.cn/mobi.s?f=kuwo&q=
- 用 okhttp/3.10.0 请求
- 从返回文本里的 url= 取下载链接
加密部分见 kuwo_query_encryption.py
建议自己手动爬爬 kuwo 的官网,了解一下基本的逻辑,然后把 Musicdl 的项目文件夹丢给 codex ,人机交流一下,就懂了。
