网易云音乐命令行下载器。搜索歌名即可下载,自动嵌入封面、歌词、元数据,按 歌手/专辑/曲目号 - 歌名 整理文件夹。
专为搭配 Navidrome、Feishin 等自建音乐服务器设计。
- 🔍 搜索下载 — 输入歌名,交互选择,一键下载(VIP 歌曲会标注)
- 📀 整张专辑 —
-a <专辑ID>或-A "专辑名"按名字搜专辑直接下载 - 📋 歌单下载 —
-p <歌单ID>整单抓取 - 🎵 高品质 — 自动降级链(无损 → 极高 → 标准),检测 VIP 试听片段
- 🔑 VIP 解锁 —
-c zen自动提取浏览器登录 cookie,解锁 VIP 歌曲和无损 - ⚡ 并发下载 —
-w 4多线程,整张专辑秒级完成 - 🖼️ 封面嵌入 — 专辑封面自动写入音频文件
- 📝 双语歌词 — 翻译自动合并进 .lrc(同时间戳双行),Feishin/Tauon 直接显示
- 🏷️ 完整元数据 — 多艺人、ALBUMARTIST、日期、曲目号完整 ID3/Vorbis 标签
- 📂 自动整理 —
~/Music/歌手/专辑/01 - 歌名.mp3(Navidrome 就绪) - 🔁 断线重试 — 下载失败自动重试 3 次,https CDN + Referer 防 403
git clone https://github.com/SaplingSticky/ncm-cli.git
cd ncm-cli
pip install .- Python 3.10+
- requests
- mutagen
- pycryptodomex
# 搜索并交互选择
ncm-cli "周杰伦 晴天"
# 自动选第一个结果
ncm-cli -y "费尼克斯 VICE"# 下载单曲(网易云歌曲 ID)
ncm-cli -s 3379723859
# 下载整张专辑
ncm-cli -a 375234383
# 按名字搜索专辑并下载(不用手动找 ID)
ncm-cli -A "VICE! VICE!"
# 下载歌单
ncm-cli -p 2886002493
# 批量下载多首
ncm-cli -s 3379723859 3379724787 3379725229# 自动从 zen 浏览器提取网易云登录 cookie
ncm-cli -c zen
# 或手动传 cookie 字符串
ncm-cli -c "MUSIC_U=xxx; NMTID=yyy"
# 跳过 VIP 试听片段(默认会下载并警告)
ncm-cli --no-trial "歌名"# 4 线程下载整张专辑
ncm-cli -w 4 -A "VICE! VICE!"# 默认 ~/Music
ncm-cli -d /path/to/music "歌名"
# 强制重新下载(已存在也覆盖)
ncm-cli -f "歌名"用法: ncm-cli [-h] [-s SONG] [-a ALBUM] [-A ALBUM_SEARCH] [-p PLAYLIST]
[-d DIR] [-y] [-c COOKIE] [-w WORKERS] [-f] [--no-trial] [--tlrc]
[keywords ...]
参数:
keywords 搜索关键词(歌名)
-s, --song SONG 按歌曲 ID 下载(可多个)
-a, --album ALBUM 下载整张专辑(专辑 ID)
-A, --album-search 按名字搜索专辑并下载
-p, --playlist PLAYLIST 下载歌单
-d, --dir DIR 下载目录(默认 ~/Music)
-y, --yes 自动选择第一个搜索结果
-c, --cookie 登录 cookie 字符串,或 "zen" 从浏览器自动提取
-w, --workers 并发下载线程数(默认 1)
-f, --force 已存在也重新下载
--no-trial 跳过 VIP 试听片段
--tlrc 翻译歌词单独存 .tlrc(默认合并进 lrc)
~/Music/
├── 菲尼克斯/
│ └── VICE! VICE!/
│ ├── 01 - vice?骤然飙升! - 菲尼克斯.mp3
│ ├── 01 - vice?骤然飙升! - 菲尼克斯.lrc
│ ├── 02 - 希尔顿宝贝 Hilton Baby - 菲尼克斯.mp3
│ └── ...
├── Aracelavery/
│ └── Controll1001/
│ ├── 01 - 控制你 - Aracelavery.mp3
│ └── ...
每首歌包含:
- 音频文件(MP3 320kbps 或 FLAC,带 cookie 可下无损)
- ID3 元数据(歌名、多歌手、专辑、专辑歌手、日期、曲目号)
- 内嵌专辑封面
- .lrc 歌词文件(翻译合并为双语;
--tlrc可单独存)
在网易云音乐网页版打开歌曲/专辑/歌单页面,URL 中的数字就是 ID:
https://music.163.com/song?id=3379723859 → 歌曲 ID: 3379723859
https://music.163.com/album?id=375234383 → 专辑 ID: 375234383
https://music.163.com/playlist?id=2886002493 → 歌单 ID: 2886002493
也可以直接用 -A "专辑名",不用找 ID。
- 用
ncm-cli下载音乐到~/Music/ - Navidrome 配置音乐目录指向
~/Music/ - Navidrome 自动扫描并识别文件夹结构、封面、元数据(ALBUMARTIST 保证专辑不拆散)
- 用 Feishin 或任意 Subsonic 客户端播放
- 部分歌曲因版权保护可能无法下载(工具会提示)
- 未登录状态下音质上限为 320kbps MP3;
-c zen登录后可解锁 VIP 歌曲与无损 - VIP 歌曲未登录时可能返回试听片段,工具会自动检测并警告(
--no-trial跳过) - 仅供个人学习使用,请支持正版音乐
MIT