Доступ к метаданным mp3 с Python - PullRequest
       121

Доступ к метаданным mp3 с Python

107 голосов
/ 12 августа 2008

Каков наилучший способ получения метаданных mp3 в python? Я видел пару фреймворков, но я не уверен, какой из них лучше всего использовать .... Есть идеи?

Ответы [ 16 ]

1 голос
/ 26 июня 2018

Я бы предложил mp3-tagger . Лучше всего то, что он распространяется под MIT License и поддерживает все необходимые атрибуты.

- artist;
- album;
- song;
- track;
- comment;
- year;
- genre;
- band;
- composer;
- copyright;
- url;
- publisher.

Пример:

from mp3_tagger import MP3File

# Create MP3File instance.
mp3 = MP3File('File_Name.mp3')

# Get all tags.
tags = mp3.get_tags()
print(tags)

Он поддерживает установку, получение, обновление и удаление атрибутов mp3-файлов.

1 голос
/ 08 апреля 2018

Первый ответ, который использует eyed3 , устарел, поэтому здесь его обновленная версия.

Чтение тегов из mp3-файла:

 import eyed3

 audiofile = eyed3.load("some/file.mp3")
 print(audiofile.tag.artist)
 print(audiofile.tag.album)
 print(audiofile.tag.album_artist)
 print(audiofile.tag.title)
 print(audiofile.tag.track_num)

Пример с сайта для изменения тегов:

 import eyed3

 audiofile = eyed3.load("some/file.mp3")
 audiofile.tag.artist = u"Integrity"
 audiofile.tag.album = u"Humanity Is The Devil"
 audiofile.tag.album_artist = u"Integrity"
 audiofile.tag.title = u"Hollow"
 audiofile.tag.track_num = 2

Проблема, с которой я столкнулся при попытке использовать eyed3 впервые, была связана с ошибкой импорта libmagic, даже если она была установлена. Чтобы исправить это, установите волшебную корзину с здесь

1 голос
/ 12 августа 2008

Это может зависеть от того, что именно вы хотите сделать в дополнение к чтению метаданных. Если вам нужен просто битрейт / имя и т. Д., И ничего более, вероятно, лучше использовать что-то более легкое.

Если вы манипулируете mp3 в прошлом, то PyMedia может подойти.

Есть немало, что бы вы ни получили, убедитесь и протестируйте их на большом количестве образцов носителей. В частности, существует несколько разных версий тегов ID3, поэтому убедитесь, что они не слишком устарели.

Лично я использовал этот небольшой класс MP3Info с удачей. Хотя он довольно старый.

http://www.omniscia.org/~vivake/python/MP3Info.py

1 голос
/ 12 августа 2008

Этот инструментарий может делать то, что вам нужно. Я не могу сказать, если это «лучший», но на самом деле, если он делает то, что вам нужно, это все, что имеет значение, верно?

НТН

0 голосов
/ 13 июля 2015

После некоторого начального исследования я подумал, что songdetails может соответствовать моему сценарию использования, но он не обрабатывает файлы .m4b. Мутаген делает. Обратите внимание, что в то время как некоторые (разумно) столкнулись с проблемой появления в Mutagen форматных ключей, которые варьируются от формата к формату (TIT2 для mp3, title для ogg, \ xa9nam для mp4, Title для WMA и т. Д.), Mutagen.File ( ) имеет (новый?) параметр easy = True, который предоставляет теги EasyMP3 / EasyID3, которые имеют согласованный, хотя и ограниченный, набор ключей. Пока я проводил только ограниченное тестирование, но общие ключи, такие как альбом, исполнитель, альбомист, жанр, номер трека, номер диска и т. Д., Присутствуют и идентичны для файлов .mb4 и .mp3 при использовании easy = True, что делает его очень удобно для моих целей.

0 голосов
/ 26 августа 2008

Если вы можете использовать IronPython, есть TagLibSharp. Может использоваться с любым языком .NET .

...