Skip to content
SaplingStickyPublic

About

网易云音乐命令行下载器 - 搜索/专辑/歌单,封面+歌词+元数据

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ncm-cli

网易云音乐命令行下载器。搜索歌名即可下载,自动嵌入封面、歌词、元数据,按 歌手/专辑/曲目号 - 歌名 整理文件夹。

专为搭配 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 下载

# 下载单曲(网易云歌曲 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

VIP 歌曲 / 无损解锁

# 自动从 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 可单独存)

获取 ID

在网易云音乐网页版打开歌曲/专辑/歌单页面,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。

与 Navidrome 搭配

  1. 用 ncm-cli 下载音乐到 ~/Music/
  2. Navidrome 配置音乐目录指向 ~/Music/
  3. Navidrome 自动扫描并识别文件夹结构、封面、元数据(ALBUMARTIST 保证专辑不拆散)
  4. 用 Feishin 或任意 Subsonic 客户端播放

注意事项

  • 部分歌曲因版权保护可能无法下载(工具会提示)
  • 未登录状态下音质上限为 320kbps MP3;-c zen 登录后可解锁 VIP 歌曲与无损
  • VIP 歌曲未登录时可能返回试听片段,工具会自动检测并警告(--no-trial 跳过)
  • 仅供个人学习使用,请支持正版音乐

License

MIT

About

网易云音乐命令行下载器 - 搜索/专辑/歌单,封面+歌词+元数据

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages