多年来,我的音乐收藏已增长到约 4000 个文件。它们大多是从不同的在线商店以各种比特率下载的 mp3、从我拥有的 CD 中翻录的 mp3 以及来自 iTunes 的无 DRM m4a 文件。
为了以防万一,我付出了很大努力,按照以下模式有序地保存了我的文件:
/shared/music/artist/album/track# title.mp3
现在我计划将这些上传到云音乐服务(我考虑的是 Google Play)。我知道这些服务实际上并不能上传我文件中的音乐数据,而只是提供他们服务器上已有歌曲的链接。
这没问题,因为带宽有限,并且可能违反我国的版权法,我不希望将我的音乐文件上传到任何地方。
我也不希望我的文件最终变成这样:
/artist/album/track# title1.mp3
/artist/collection/sometrack# title2.mp3
/artist/best_of/yetanothertrack# title3.mp3
/artist/bonusalbum_from_japan_only/specialtrack# title4.mp3
我需要如何准备我的音乐收藏才能被服务正确识别?有哪些应用程序可以帮助我完成这些工作?
答案1
使用 Google 音乐进行测试后,我发现一切都与 ID3 标签有关。无论您将什么放在那里,Google 都会使用它。您的文件名称是什么并不重要,一切都与 ID3 有关。即使您的歌曲的艺术家和专辑艺术家不同,Google 也会正确显示两者而不会产生任何混淆。我建议您完全按照您想要的方式组织您的音乐。看来 Google 很好地遵循了 ID3 标准,因此只要您也遵循该标准就没问题。
我也有类似的结构,并且我非常痴迷于如何组织我的音乐,不仅是文件名,还有元数据。
我使用两个程序来实现这一点:对于一些文件的少量更改,使用kid3-qt。它不依赖 kde,是 Ubuntu 中最好的 ID3 标签软件。您有许多选项可以从文件名标记数据,反之亦然。您可以看到所有 ID3 标签(因为 easytag 等软件会隐藏它们不知道的标签)。您甚至可以选择 ID3 和文本编码的版本,因此您的整个集合都是标准的。我使用了带有 UTF8 的 ID3v2.4。您可以安装kid3-qt这里:http://apt.ubuntu.com/p/kid3-qt
对于你的情况,我建议使用脚本并使用eyeD3使用它。它使用 Python,功能强大,可以访问 ID3 中的几乎任何标签。您可以使用eyeD3直接从命令行,但我发现使用 python 创建脚本更强大。您可以安装eyeD3点击此处:http://apt.ubuntu.com/p/eyed3
网页上有示例 Python 脚本,介绍如何在脚本中使用它。我发布了一个示例脚本,该脚本将所有艺术家、专辑、曲目编号和标题按照音乐目录的格式放入 ID3 中。它使用 UTF8 编码将标签保存在 ID3v2.4 中。您应该在根音乐文件夹 (/shared/music/) 中运行该脚本。
#! /usr/bin/python
import fnmatch
import os
import eyeD3
audiofile = eyeD3.Tag()
for root, dirnames, filenames in os.walk('.'):
# Linking of ID3 tags and fixing Images
for file in fnmatch.filter(filenames, '*.mp3'):
# Splits the directory name
dirSplit = root.split('/')
fileSplit = file.split(' ',1)
# Linking of tags
audiofile.link(root + "/" + file, eyeD3.ID3_V2)
audiofile.setTextEncoding(eyeD3.UTF_8_ENCODING)
print fileSplit[0]
# Setting the Artist, album, number and title
audiofile.setArtist(dirSplit[1])
audiofile.setAlbum(dirSplit[2])
audiofile.setTrackNum([fileSplit[0]])
audiofile.setTitle(fileSplit[1])
audiofile.do_tdtg = 0 # set to not use the TDTG frame
audiofile.update(eyeD3.ID3_V2_4,0)
您可以使用此脚本作为起点,也许可以读取完整的文件名和目录,并使用它以您想要的方式标记每个文件。如果您不像我一样对元数据那么痴迷,kid3-qt可以将元数据设置为文件结构(您可以按照自己的意愿设置结构),这样效果会很好。顺便说一句,您也可以使用eyeD3批量删除 ID3V1.1,我发现它非常烦人,因为它是一个缺少许多功能的旧标准,人们和设备应该完全停止使用它。
答案2
我会做两件事。因为你的目录结构非常整洁(赞美),我会使用这个结构来 a) 在实际中放入尽可能多的信息文件名b) 将该信息放入标签中。
你可以重命名你的文件艺术家专辑曲目。您还可以编写一个 bash 脚本来根据您的目录结构. 如果你有权利ID3 1.x 标签, 您可以使用mp3信息提取数据并在 bash 脚本中使用它根据文件标签重命名文件以获得类似的结果。
如果你愿意,你甚至可以使用你的目录结构来添加专辑和艺术家文件中的标签。同样,您可以使用mp3信息这里:
mp3info 是一个用于读取并修改MPEG 第 3 层 (MP3) 文件中的 ID3 标签。它还可以(可选)显示 MP3 文件的各种技术属性。
答案3
我个人喜欢mp3标签。它可以编辑所有标签,具有许多有用的功能。它还可以根据文件的元数据重命名文件,甚至从文件名中提取元数据。它是一个 Windows 程序,但可以完美运行wine
。
如果您想要一个 Linux 原生程序,请尝试easytag
。它似乎具有类似的功能,但我自己从未尝试过。它应该可以使用apt-get
或软件中心进行安装。