Tak*_*kat 6 cloud music metadata mp3
我的音乐收藏已经发展到现在大约。多年来 4000 个文件。它们主要包括从不同在线商店以各种比特率下载的 mp3、从我拥有的 CD 中翻录的 mp3 以及来自 iTunes 的无 DRM 的 m4a 文件。
如果这很重要,我做了很多努力以使用以下模式有序保存我的文件:
/shared/music/artist/album/track# title.mp3
Run Code Online (Sandbox Code Playgroud)
现在我打算将这些上传到云音乐服务(我在考虑 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
Run Code Online (Sandbox Code Playgroud)
我必须如何准备我的音乐收藏才能被服务正确识别?有哪些应用程序可以帮助我这样做?
使用 Google Music 进行测试时,我意识到这完全与 ID3 标签有关。无论你放在哪里,谷歌都会使用它。无论您的文件名称是什么,这都与 ID3 相关。即使您有艺术家和专辑艺术家不同的歌曲,Google 也会正确显示两者,而不会出现任何混淆。我建议你完全按照你想要的方式组织你的音乐。Google 似乎很好地遵循了 ID3 标准,因此只要您也遵循该标准就可以了。
我也有类似的结构,我非常关注我的音乐应该如何组织,不仅是文件名,还有元数据。
我使用两个程序来实现这一点:对于几个文件的一些更改,使用Kid3-qt。它对 kde 没有任何依赖,它是 Ubuntu 中最好的 ID3 标签软件。您有许多选项可以从文件名中标记数据,反之亦然。您可以看到所有的 ID3 标签(因为 easytag 软件隐藏了他们不知道的标签)。您甚至可以选择 ID3 的版本和文本编码,因此您的整个收藏都是标准的。我将 ID3v2.4 与 UTF8 一起使用。你可以在这里安装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)
Run Code Online (Sandbox Code Playgroud)
您可以使用此脚本作为起点,也可以读取完整的文件名和目录,并使用它以您想要的方式准确标记每个文件。如果您不像我那样痴迷于元数据,带有将元数据设置为文件结构的选项的kid3-qt(并且您可以完全按照您想要的方式设置结构)将完美地工作。顺便说一句,您还可以使用eyeD3批量删除 ID3V1.1,我觉得它非常烦人,因为它是一个缺乏许多功能的旧标准,人们和设备应该完全停止使用它。