【问题标题】:Retrieving MusicBrainz fingerprint with python使用 python 检索 MusicBrainz 指纹
【发布时间】:2023-04-05 02:32:01
【问题描述】:

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

是否有一个库可以让我从任何给定的音频文件中读取它?

【问题讨论】:

  • 你使用的是哪个 Python 模块?
  • @KristopherIves:musicbrainzngs 是一个 Python 模块。

标签: python audio-fingerprinting musicbrainz


【解决方案1】:

AcoustID fingerprint 存储在音频文件中,是的,如果您使用 MusicBrainz Picard 标记文件。具体什么标签取决于音频文件:

  • MP3 / ID3V2:TXXX:Acoustid Fingerprint
  • Vorbis(FLAC、ogg)和 APE:ACOUSTID_FINGERPRINT
  • iTunes MP4:----:com.apple.iTunes:Acoustid Fingerprint

请参阅Musicbrainz tag mapping overview

您可以使用 mutagen project 读取音频文件标签,这也是 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]

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多