用 MusicBrainz Picard 整理凌乱音乐库
音乐库整理的标准流水线:采集 → 整理(元数据规范化 + 统一命名)→ 服务(Navidrome 等)→ 客户端。整理环节最值得投入,两个主流工具:
- MusicBrainz Picard(GUI)— 按专辑/音轨匹配 MusicBrainz 数据库,声纹识别无标签老文件
- beets(CLI)— 自动匹配 + Last.fm 补 genre + ReplayGain + 封面,自带数据库
与播放器的边界
播放器自带的 tag 编辑(如 Dopamine)是"手动改标签",不重命名/移动文件;Picard/beets 是"按规范批量重排"。只有存量文件多、tag 乱、需要统一目录结构时才需要 Picard。播放器改好的 tag 服务端(Navidrome/xiaomusic)扫描时都能读到,不冲突。
使用流程
0. 备份
Picard 会覆写文件 tag 和移动文件,整理前把整个音乐库复制一份。
1. 配置(一次性)
- 元数据:勾选"将艺术家名称翻译为本地区域"(日/中文艺术家转拼音或英文,方便检索)
- 封面:勾选"将封面图片嵌入标签" + "将封面图片保存为单独文件"(存
cover.jpg,播放器和服务端都喜欢) - 指纹识别:获取 AcoustID API key——无 tag 老文件靠它识别,整理乱库的核心
- 文件命名:勾选"保存时移动文件",目标目录设为音乐库根目录,用下面命名脚本
2. 整理工作流
- 把要整理的文件夹复制到
to-sort目录(不要直接开原目录,Picard 会动文件) - 添加文件夹,一次 10~20 张专辑一批
- 聚类(Cluster)— 文件按专辑自动分组
- 查找(Lookup)— 自动从 MusicBrainz 匹配
- 点开单曲看改动,错的改或拖到正确专辑
- 保存(Save)— 文件按命名脚本写入目标目录
匹配不到的(尤其中文老歌)手动编辑 tag 后保存,别硬凑错误条目。
3. 命名脚本
$if($eq(%compilation%,1),Compilations,$if2(%albumartist%,%artist%,Unknown Artist))/$if(%albumartist%,%album%/,Unknown Album/)$if($gt(%totaldiscs%,1),%discnumber%-)$if($and(%albumartist%,%tracknumber%),$num(%tracknumber%,2) ,)$if(%_multiartist%,%artist% - ,)%title%
效果:Artist/Album/01 Title.mp3 ,多碟带碟号,合辑归 Compilations,多艺术家标注演唱者。
坑
- 华语/日语老歌匹配率低 — MusicBrainz 主库偏欧美,中文老专辑常无条目或残缺。匹配不到就手动
- 播放器同时开着会冲突 — Dopamine 和 Picard 同时操作同一批文件(都持有句柄),整理时关掉播放器扫描