[使用eyeD3从Python中的mp3文件检索歌词

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[使用eyeD3从Python中的mp3文件检索歌词相关的知识,希望对你有一定的参考价值。

我目前正在尝试使用Python及其eyeD3库从mp3文件中提取歌词。歌词已经嵌入到mp3文件中(通过:MusicBee)。我正在尝试使用eyeD3返回歌词。我不知道该怎么做。我在网上进行了广泛搜索,发现的所有教程都显示了如何设置歌词。我只想从文件中读取它们。这是我当前的代码:

track = eyed3.load(path)
tag = track.tag
artist = tag.artist
lyrics = tag.lyrics

artist正确返回艺术家的姓名,但lyrics返回以下内容:

<eyed3.id3.tag.LyricsAccessor object at 0x27402d0>

我如何才能返回嵌入到mp3中的原始文本歌词?这可能吗?

非常感谢您。

答案

似乎是一个迭代器。尝试

tag.lyrics[0]

for lyric in tag.lyrics:
  print lyric

最后打印对象目录并查找有用的功能

print dir(tag.lyrics)
另一答案
u"".join([i.text for i in tag.lyrics])
另一答案

DonJuma,Python告诉您:

<iterator object at hex_location> 

您可以尝试以下操作,但无法在字符串上使用

hasattr(myObj, '__iter__')

user:mindu解释here,您可以编写一个强大的函数来检查

try:
    some_object_iterator = iter(some_object)
except TypeError, te:
    print some_object, 'is not iterable'

BUT !!!这不是Pythonic。 Python相信Duck Typing的基本含义是:“如果它看起来像鸭子,而象鸭子一样嘎嘎叫,那一定是鸭子。”有关更多信息,请参见链接。

另一答案

这对我有用:

(tag.lyrics[0]).text

以上是关于[使用eyeD3从Python中的mp3文件检索歌词的主要内容,如果未能解决你的问题,请参考以下文章

python 使用eyed3在MP3文件上设置ID3标签

如何使用 eyed3 python 模块为 mp3 设置缩略图?

在 Python 中通过 eyeD3 更新 mp3 标签

使用 Python 访问 MP3 元数据 [关闭]

python的音频处理库

eyeD3 -- 递归标签删除