【问题标题】:Setting "Album Artist" using eyed3?使用 eyed3 设置“专辑艺术家”?
【发布时间】:2013-01-24 23:32:10
【问题描述】:

我正在尝试使用 eyed3 作为 Python 库,以便更改大量 .MP3 文件的艺术家姓名。我尝试使用项目网页 (http://eyed3.nicfit.net/) 的示例代码,并且 setsaudiofile.tag.artist 更改了“特约艺术家”。根据文档(http://eyed3.nicfit.net/api/eyed3.html),标签对象没有其他艺术家字段。

是否可以使用 eyed3 来实际更改专辑艺术家?如果是这样,你能提供清晰、简洁的 Python 代码吗?

【问题讨论】:

  • 如果您正在寻找专辑封面,即图像文件。这是一个 stackoverflow 答案stackoverflow.com/a/1002814/418473album_artisttag 对象import eyed3; audiofile = eyed3.load("song.mp3"); audiofile.tag.album_artist = u"Various Artists"; 中可用,例如来自eyed3.nicfit.net
  • 感谢您的回复和有用的链接!我实际上正在寻找设置“专辑艺术家”标签。我对实际的艺术本身不感兴趣(我认为一旦它出现在我的 iPod/媒体播放器/等上,我就不会看它,只是听它 :))。 album_artist:嗯,是的,看起来不错。也就是说,自从我问这个问题已经有一段时间了(看起来是 1.5 年),老实说,我不记得为什么这样做(或没有)起作用的确切细节。不过,这个例子看起来确实很清楚——我在想,自从我问这个问题后,API 可能发生了变化?无论如何 - 谢谢!

标签: python eyed3


【解决方案1】:

这是我前段时间写下的用于更改该字段的命令:

eyeD3 --set-text-frame=TPE2:"Various Artists" filename.mp3

其中“Various Artists”是您想要在“专辑艺术家”字段中的值。

【讨论】:

  • 您可以通过以下语法更正您的答案:eyeD3 --set-text-frame=TPE2:"Various Artists" *.mp3。 eyeD3 完全有能力处理这个要求。您可以提及官方规范id3.org/id3v2.3.0
  • 为什么“乐队/管弦乐队/伴奏框架用于提供有关录音中表演者的附加信息”在媒体播放器上转换为“专辑艺术家”?这实际上是正确的框架吗? 编辑:“从 iTunes 7(确认?)开始,TPE1 框架用于“艺术家”字段,而 TPE2 框架用于“专辑艺术家”。” id3.org/iTunes 另见 Foobar2000 ID3 规范:wiki.hydrogenaud.io/index.php?title=Foobar2000:ID3_Tag_Mapping
  • @cinhtau 我认为这意味着命令 eyeD3 --album-artist="Various Artists" *.mp3 现在应该可以工作了。它没有。
  • @TomRussell 不确定,为什么您认为您的命令会起作用。我的回答是 2 年前,并且按照当时的 eyed3 版本的说明工作,恕我直言仍然有效。您只需使用 TPE2 字段来存储信息。任何 id3 查看器都会为您提供正确的信息。
  • @cinhtau 对不起。我想我误解了。对我来说,“完全支持”意味着我所说的命令语法与 API 的其余部分一致应该可以工作。我不明白为什么我们必须访问一个晦涩的数据项。
【解决方案2】:

对于大量 MP3,您可以将一位艺术家的所有歌曲放在一个特定文件夹中。例如:- 所有“Coldplay”歌曲都在“Coldplay”文件夹中

如果您使用的是 Linux,您可以执行以下操作:-

import os
import eyed3
folder = raw_input('Please enter the folder of music')
files = os.listdir(folder) # This will give us a list of all of the MP3s in that folder
artist = folder.split('/')[-1]

for x in files:
    mp3 = eyed3.load(folder + '/' + x) # Loads each and every MP3
    mp3.tag.artist = unicode(artist, "UTF-8") # Sets the "artist" tag to the artist name 
    mp3.tag.save() # Saves tag

如果您在 Windows 上,只需将所有斜杠“/”改为反斜杠“\”即可编辑代码

上面的代码对我来说效果很好。很高兴我能帮上忙:)

【讨论】:

  • 我认为 OP 是在询问“专辑艺术”而不是“艺术家”!?
  • 不,OP 询问的是专辑艺术家,而不是专辑封面(请参阅上面的扩展回复)
  • 仍然,这并没有回答“使用 eyed3 设置“专辑艺术家”的问题?”完全没有。
  • 此代码假定专辑在您的文件系统中按艺术家分组。风险自负。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-15
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多