如何准备我的音乐以便与云服务同步?

如何准备我的音乐以便与云服务同步?

多年来,我的音乐收藏已增长到约 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或软件中心进行安装。

答案4

评论:我想编辑我的其他答案,但这个工具值得一个单独的答案以供将来参考。

对于以下用户mp3 中的元数据(合法购买音乐时通常如此),可以根据元数据重命名文件。

有一个优秀的软件包可以根据音乐和图像的元数据进行重命名: pyRenamer. 可以使用 进行安装sudo apt-get install pyrenamer

它本质上使用正则表达式和元数据来重命名文件。因此,您可以重命名文件以包含元数据中可用的信息。以下是屏幕截图。

PyRenamer 的屏幕截图

也适用于图像

资料来源:

相关内容