Получение MusicBrainz с помощью питона - PullRequest
0 голосов
/ 12 марта 2019

Я изо всех сил пытаюсь найти способ получить аудио данные отпечатка пальца из данных песен. Я помечал эти песни с MusicBrainz прежде, и теперь я хочу читать это непосредственно из аудиофайла. Единственный способ, который я нашел с помощью musicbrainzngs, - это поиск (musicbrainzngs.search_artists ()) песни в библиотеке MusicBrainz, чтобы найти данные отпечатков пальцев, которые довольно неэффективны, поскольку у меня уже есть данные в моих файлах.

Есть ли библиотека, где я могу прочитать ее из любого аудиофайла?

1 Ответ

1 голос
/ 12 марта 2019

Отпечаток пальца AcoustID сохраняется в аудиофайлах, да, если вы пометили свои файлы с помощью MusicBrainz Picard . Какой именно тег зависит от аудиофайла:

  • MP3 / ID3V2: TXXX:Acoustid Fingerprint
  • Ворбис (FLAC, ogg) и APE: ACOUSTID_FINGERPRINT
  • iTunes MP4: ----:com.apple.iTunes:Acoustid Fingerprint

См. Обзор соответствия тегов Musicbrainz .

Вы можете читать аудиофайлы с помощью проекта mutagen , который также используется 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...