前言
“一切都是元数据惹的祸”
开始前先说说自己对音乐版本追求的经历:最开始什么都不懂,单纯觉得文件体积大就是好,对着各个国内流媒体平台下载的劣质Mp3比较半天。后来了解到无损,才去有目的的下载Flac,Wav等。当时还没有元数据的概念,甚至感觉还不如国内流媒体版本(至少封面是有的)。第一次了解到元数据是因为买了大法家的A15,下载了官方的音乐管理平台Medal Go

官方已于2018年放弃该产品,转向更偏向播放器的产品:(Music Center for PC)
使用Media Go可以很轻松的进行整张专辑元数据的刮削,只要知道单曲及所在的专辑名,即可“精准”匹配标题、专辑名、艺术家、流派等信息

数据来源:Gracenote
正式开始
元数据的修改
为什么不继续使用Gracenote的数据源呢?随着收集专辑的增多,很多小众的歌曲已经无法识别/识别错误等。想要自己手动修改歌曲的元数据信息,我更推荐使用以下软件:
- Mp3tag

-
通过Mp3tag自带的freedb 和Musicbrainz 数据源即可完成90%的元数据,你可以自行添加你想要的其它元数据。
-
Mp3tag 默认不含有作曲家年份编号等数据,也不一定可以通过刮削获取,你可以通过以下方式添加

我额外添加的字段分别是:
ORIGINALYEAR //首发年份
ARRANGER //编曲家
CATALOGNUMBER //编号
Mp3tag默认以文件夹的形式展示,要修改其他专辑时直接拖入其它专辑文件夹即可
-
MusicBrainz Picard
-
MusicBrainz 是一个 MetaBrainz 项目,旨在创建一个类似于 freedb 项目的协作音乐数据库。 MusicBrainz 的成立是为了应对光盘数据库 (CDDB) 的限制,CDDB 是一个用于在互联网上查找音频 CD 信息的软件应用程序数据库。 MusicBrainz 已将其目标从 CD 元数据存储库(有关表演者、艺术家、歌曲作者等的信息)扩展到结构化的在线音乐数据库。
-
MusicBrainz 不仅收集有关音乐的元数据,还允许您通过声学指纹搜索录音

由此,音乐元数据的修改似乎变得更加轻松,你只需要将专辑整体拖入Musicbrainz Picard中,在左侧未识别出簇的文件的一项点击上方扫描,即可自动生成指纹并从Musicbrainz的数据库中进行匹配,并优先选择相似度最高的专辑。

- 若是直接扫描可能会将一张专辑拆成多张识别,如单独发行的单曲&EP和合集Album,可以手动选择同张专辑文件,然后点击菜单栏的
簇,然后右击查询 - 若专辑识别正确,但发行地区、歌曲数量等不同,可以右击选择其他版本
- 与Mp3tag相比,官方出品的Musicbrainz所抓取的元数据更多
通过上述方法,可以基本完成自建媒体库对音乐文件的要求
- Todo 将歌词写入文件
正确的命名和分类
不论是哪一款软件,在分类时都建议使用歌手 - 专辑名- xx.title.flac 这样去存储你的音乐
其结构如图:(以NieR-Automata Original Soundtrack为例)
岡部啓一
├─2017-03-29 [SQEX-10589] NieR-Automata Original Soundtrack
├─ 01. 意味 - 無 - ジュニーク・ニコール.flac
├─ 02. 遺サレタ場所 - 斜光.flac
...
...
这样对于音乐库文件的存放应该按照/Music/Artist/Album/Track(s)即可完成对音乐库的创建
除了Musicbrainz,Discogs,freedb外也可从以下网站查询音乐信息:
-
Vgmdb(强烈推荐)
-
iTunes Store
其中Vgmdb是我最常使用的网站,对动漫,游戏,JPOP等保持非常快的更新速度(甚至是MusicBrainz数据的来源站)
其他类型我建议使用Musicbrainz
我为什么使用Plex 做音乐媒体库软件?
-
与Navidrome Jellyfin的方案相比商业化的产品后续更新可以得到保证
-
Emby的功能更偏向影视媒体库,音乐库的功能不多
-
能够保证基本的串流解码需求
-
Plexamp是ios移动端最好的自建媒体库音乐软件,没有之一!
-
颜值远高于其它(Roon真的买不起 :sob:)
-
Emby:

Emby ios客户端与Pc网页端保持一致。
-
Jellyfin与Emby类似此处不展示
-
NaviDrom

对于元数据无法修改(未刮取到头像的歌手等),没有合适的iOS客户端
-
Plex

值得说明的是:Plex是唯一支持对歌手专辑分类的自建媒体库方案
如下图ios Plexamp客户端所示:

Aimer的专辑共分为:专辑 单曲&EP 现场专辑 合辑四个部分
实现该样式必须使用Plex Music扫描器进行刮削:

综合以上,我最终选择Plex 作为我的音乐媒体库
创建Plex媒体服务器
- 使用docker的方式安装:
创建一个文件夹用于保存你的plex媒体数据:
mkdir plex && cd plex
vim docker-compose.yml
编写docker-compose文件
version: "3.3"
services:
plex:
image: lscr.io/linuxserver/plex:latest
container_name: plex
network_mode: host
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- VERSION=docker
- PLEX_CLAIM=claim--xxxxxx
volumes:
- /mnt/docker/plex/config:/config
- /path/to/your/music/library:/musics:ro
restart: unless-stopped
mem_limit: 700m #optional
memswap_limit: 2000m #optional
需要注意的几点:
PUID和PGID用于配置容器内进程的UID和GID, 全都设置为0表示以root用户运行,如果不太明白可以设置为0mem_limit和memswap_limit属于可选项, 防止出现爆内存的问题,如果你的内存充足的话,完全可以忽略这两个配置项PLEX_CLAIM环境变量用于认证自己的服务器,也是可选, 你可以从 这里 获取(注意需要可用的plex账号), 另外claim的有效期一般只有 4 分钟 ,如果服务器网络不佳,建议先通过执行docker-compose pull拉取镜像之后再获取,防止过期/path/to/your/music/library:/musics:ro将自己本地的音乐库映射到plex container的/musics目录, 并且只读(ro即read only)
执行docker-compose up然后静待服务器启动完成, 启动完成后可以访问ip:32400/web进入web界面
-
若在非本地ip的服务器上搭建,可能会出现通过ip:32400进入后无法找到服务器的情况,这是Plex默认关闭了外部访问。我们可以使用SSH工具的
隧道功能:代理本地端口号32400,在本地打开localhost:32400/web创建服务器后打开外部访问即可- 添加音乐媒体库

除了扫描器需要选择
Plex Music以外还有一些额外功能可以设置

-
若修改了元数据信息,应该勾选上
首选本地元数据 -
声音分析勾选会让Plexamp支持更多功能,但会额外增加扫库时间(不支持Arm平台) -
Find Lyrics会在线匹配歌词,但识别率不高。
保存修改后等待自动扫库,当开启音乐分析时,扫描时间可能略长。
其它
尽管按照以上设置足以应对大多数情况,但可能依然会遇到一些问题,下面说说我的解决方案
对于dff 文件的元数据无法修改?
A:将其转换为dsf格式,使用较新版本的Foobar2k/Musicbrainz Picard即可修改。
使用Mp3tag自带的Musicbrainz插件找不到专辑信息?
A:仔细检查专辑名/歌手是否正确,是否出现- ''等符号干扰搜索,如专辑原元数据名为Album-Artist格式,请自行去除多余字符后再次搜索,在这里提供几个办法进行判断专辑名是否正确:
-
首先前往源站进行重新搜索。源站即官方发布专辑信息的网站,如:歌手的个人/公司的官方网站、实体或电子专辑贩卖网站Mora、ototoy、Amazon等。
-
前往MusicBrainz,Vgdb等网站进行搜索,若与官方的不一致,以官方为准(按照MusicBrainz刮削后,手动修改其中错误的数据)
-
和TDMB一样,Musicbrainz的数据也是由爱好者们共同维护,如果你的来源可靠,可以自行修改添加专辑信息,提交来源链接后等待审核即可
多个专辑艺术家问题
A:完美解决方案:无
出现的原因:一张专辑中存在多个歌手,并未以某位歌手的名义进行发行,如动画专辑等,会出现刮削后专辑艺术家为:
Atist1,Atist2,....,在进行专辑分类时,放置在任意歌手文件夹,最终都会以一位名叫Atist1,Atist2,....的歌手出现。
无法正确识别的原因很多:
-
ID3的版本信息不统一,导致各软件平台之间没有标准的分隔方式
-
Plex的设计缺陷
“The way Plex is designed, it is very hard to do. The current relational database design in Plex uses a single table for tracks, albums and artists, which means a track can only be linked to one album, and each album is linked to one artist. This unfortunate decision was made more than ten years ago, and it’s been holding Plex back ever since”
解决方法:手动修改专辑的专辑艺术家为某一位专辑艺术家/Various Artists,并将其放入对应艺术家文件夹

不要忘记听音乐的初衷,若你对本篇内容的繁琐程度感到厌烦,也许成熟的流媒体服务更加适合你