如何用mutagen获取mp3的评级标签?

时间:2017-11-02 00:42:15

标签: python id3 mutagen

我尝试了mutagen EasyID3类来检索这个标签(在mp3上我确定这个标签存在)并且它没有显示在返回的标签列表中。

这是我正在谈论的Itunes评级标签。

似乎我缺少关于这个特定标签的重要信息(不同的标准?不是ID3?)但我在mutagen文档中找不到任何帮助。

2 个答案:

答案 0 :(得分:0)

看起来iTunes中的评分未存储在MP3的ID3标签中。请看这里的讨论https://discussions.apple.com/thread/256205?start=0&tstart=0

因此,Mutagen无法检索它。

答案 1 :(得分:0)

就像以前所说的,iTunes不会在mp3标签中存储分级。评级存储在文件“ iTunes Music Library.xml”中,该文件通常位于文件夹“ \ Music \ iTunes”中。

您可以在win32com库的帮助下访问星级。使用pip安装模块。转到此处查看最新版本:

https://pypi.org/project/pywin32/

我通常通过在iTunes中选择一组曲目并循环浏览来使用此模块。这意味着您需要打开iTunes并转到一组歌曲,例如从专辑中获取歌曲。选择所有这些音轨,Ctrl + a。然后转到您的python IDE,编写代码并运行它。将此用作模板:

# import mutagen, however you need to
import win32com.client

itunes = win32com.client.Dispatch('iTunes.Application')
tracks = itunes.SelectedTracks
track_count = tracks.Count

while track_count:
    current_track = tracks.Item(track_count)
    rating = current_track.Rating
    location = current_track.Location
    # Do things in mutagen here
    track_count -= 1

因此,在该循环内,将位置变量传递给打开文件所需的任何诱变方法/函数。然后将rating或str(rating)传递到适当的id3字段,该字段看起来像POPM字段(允许值为1-255)。

您在此还有其他注意事项。 POPM评级字段是否足够?您应该为1-5、0-100等级设置自己的id3字段吗?

从iTunes获得评级是容易的部分。弄清楚如何将其写入ID3标签是困难的部分。