用Python检索音乐brainz指纹



我很难找到一种从给定歌曲中检索音频指纹数据的方法。我之前用Musicbrainz标记了这些歌曲,现在我想直接从Audiofile阅读。我使用Musicbrainzngs找到的唯一方法是搜索(Musicbrainzngs.search_artists())在Musicbrainz库中的歌曲中找到指纹数据,因为我已经在文件中拥有数据,这是相当低效率的。

有一个库,我可以从任何给定的有声副词中阅读它吗?

AcoustID指纹存储在Audiofiles中,是的,如果您使用Musicbrainz Picard标记了文件。什么标签完全取决于音频文件:

  • mp3/id3v2: TXXX:Acoustid Fingerprint
  • vorbis(flac,ogg)和猿: ACOUSTID_FINGERPRINT
  • iTunes mp4: ----:com.apple.iTunes:Acoustid Fingerprint

请参阅Musicbrainz标签映射概述。

您可以使用mutagen项目读取AudioFile标签,这也是Picard使用的:

import mutagen
tagnames = {
    'audio/mp3': 'TXXX:Acoustid Fingerprint',
    'audio/vorbis': 'ACOUSTID_FINGERPRINT',
    'audio/mp4': '----:com.apple.iTunes:Acoustid Fingerprint'
}
mfile = mutagen.File(musicfile_filename)
if mfile and mfile.mime[0] in tagnames:
    fingerprint = mfile.get(tagnames[mfile.mime[0]])
    if fingerprint is not None:
        try:
            # ID3v2 tag
            fingerprint = fingerprint.text[0]
        except AttributeError:
            # Vorbis
            fingerprint = fingerprint[0]

最新更新