如何使用 Python 更改 Mac 上 .mp3 文件的标题(不是 file-name)?

How to change Title (not file-name) of .mp3 file on Mac using Python?

我想在 mac 上使用 python 重命名我的 mp3 文件,然后再将它们导入 iTunes。所以我需要更改文件的“标题”,而不是文件名。例如,我想将下图中的“Al-Fatihah”更改为“new_title”。

我发现的大多数在线资源和问题都建议使用外部库或使用 os.stat(),后者仅提供有关修改和创建文件的信息(下图第二张),除非我误解了什么。我想知道是否有一种方法可以做到这一点而不必下载额外的库,因为我并不总是确定哪些库是安全的。

谢谢!

如果你不使用库,你将不得不自己手动编辑字节。您所指的 'title' 是一个 ID3 tag,它是定义 mp3 文件的哪些部分包含有关曲目的数据的标准。

对于ID3v1,文件的最后128字节保留给元数据,第4到34字节保留给标题。

在 python 中手动写入字节是一种绝对的痛苦,因此我强烈、强烈建议使用库来完成这项琐碎的任务。 eyeD3 是一个可以为您做这件事的图书馆。如果您不确定“哪些库是安全的”,为什么不查看一下这些库的源代码来自己检查它们是否安全?

如果您真的,必须绝对只使用 python 来编辑它们,您就必须这样做。我在此处粘贴来自 another question about manipulating bytes 的答案。这不是一个确切的解决方案,更多的是手动编辑字节需要什么的指南:

with open("filename.mp3", "r+b") as f:
    fourbytes = [ord(b) for b in f.read(4)]
    fourbytes[0] = fourbytes[1]  # whatever, manipulate your bytes here
    f.seek(0)
    f.write("".join(chr(b) for b in fourbytes))