musicdl:一个纯 Python 写的音乐下载器,支持 50 多个音乐源

musicdl 在 GitHub 上有 5,164 Star。

这是一个用纯 Python 写的轻量级音乐下载工具,能搜歌、能下载,支持的音乐源超过 50 个。国内的网易云、QQ 音乐、酷狗、酷我、咪咕全在列,国外的 Spotify、Apple Music、YouTube Music、TIDAL、Qobuz 也都能用。项目代码量不大,依赖少,跑起来没什么门槛。

正文顶部截图

它能干什么

核心功能就两件:搜歌和下载。

你给它一个关键词,它在你指定的音乐源里搜,搜到之后列出结果,你选一首或者多首,它帮你下载到本地。交互界面是终端里的,用方向键选歌,空格确认,回车下载,操作很直觉。

除了单曲搜索,还支持歌单解析。丢一个网易云或者 QQ 音乐的歌单链接进去,它能自动把整个歌单里的歌都抓出来。对于想批量下载某个歌单的人来说,这个功能省了不少事。

另外还有一个叫 MusicSquare 的浏览器端项目,是同一个作者做的,能在浏览器里直接搜歌、播放和下载,算是 musicdl 的一个延伸。

支持的音乐源

这是 musicdl 最大的卖点。它把市面上能找到的音乐平台基本都覆盖了,分成几个大类:

中国大陆平台:网易云、QQ 音乐、酷狗、酷我、咪咕、汽水音乐、千千音乐、B站音乐、波点音乐、5SING、街声、摩音符,一共 12 个。

海外流媒体和独立平台:Spotify、Apple Music、YouTube Music、TIDAL、Qobuz、Deezer、SoundCloud、Jamendo、JOOX、JioSaavn、FMA、OpenGameArt,也是十几个。

聚合类和第三方站点:GDStudio、煎饼搜、MP3 Juice、MyFreeMP3、TuneHub、HEMusic,以及一堆第三方解析站点,加起来又是十几个。

音频和播客:喜马拉雅、蜻蜓FM、荔枝FM、懒人听书、苹果播客,这类平台也支持搜索和下载。

每个音乐源都是一个独立的 Python 模块,代码结构清晰,想加新的源或者改现有源的行为,改对应的文件就行。

README区域截图

安装和使用

最简单的方式是 pip:

pip install musicdl

装完之后命令行直接跑:

musicdl

默认会用咪咕、网易云、QQ 音乐、酷我、千千音乐这五个国内源搜索。想用别的源,用 -m 参数指定:

musicdl -m QobuzMusicClient,YouTubeMusicClient

知道歌名的话可以直接搜:

musicdl -k "周杰伦"

想下载整个歌单:

musicdl -p "https://music.163.com/#/playlist?id=3039971654" -m NeteaseMusicClient

部分音乐源需要额外工具。Apple Music、TIDAL 这些平台的音频是加密的,需要 FFmpeg、Node.js、N_m3u8DL-RE、Bento4 这几个工具配合解密。作者在文档里给了每个平台的安装指引,照着装就行。

适合谁用

个人听歌、收集音乐的人。想从某个平台下载歌但官方客户端不提供下载功能的场景,musicdl 能直接解决。

做音乐信息检索、数据采集这类学术研究的人。项目代码干净,依赖少,作为数据获取的工具链一环比较合适。

想在自己项目里集成音乐下载能力的开发者。每个音乐源都是独立模块,可以单独调用,也可以组合使用,API 设计得比较规整。

一些细节

项目用的 PolyForm Noncommercial 1.0.0 许可证,只能用于非商业用途。作者在 README 里强调了这一点,也说明了这个工具只调用公开的网络接口,不存储或分发任何版权内容。

最近的更新频率很高,2026 年 6 月连续发了三个版本,主要是修复第三方接口的可用性问题,新增了一些解析接口,包括 QQ 音乐、酷我、TIDAL、Qobuz 的 VIP 账号支持。

如果只是想快速装一个工具来搜歌下载,不想折腾各种客户端和会员,musicdl 是一个可以试试的选择。

音乐、酷我、TIDAL、Qobuz 的 VIP 账号支持。

如果只是想快速装一个工具来搜歌下载,不想折腾各种客户端和会员,musicdl 是一个可以试试的选择。

更多推荐