Как я могу получить метаданные mp3 в Python?
122
На днях я успешно использовал eyeD3 . Я обнаружил, что он может добавлять изображения в тег ID3, чего не могли другие модули, на которые я смотрел. Вам нужно будет установить с помощью pip или загрузить tar и выполнить python setup.py install
из исходной папки.
Соответствующие примеры с веб-сайта приведены ниже.
Чтение содержимого mp3-файла, содержащего информацию о тегах v1 или v2:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getAlbum()
print tag.getTitle()
Прочтите файл mp3 (длину трека, битрейт и т. Д.) И получите доступ к его тегу:
if eyeD3.isMp3File(f):
audioFile = eyeD3.Mp3AudioFile(f)
tag = audioFile.getTag()
Можно выбрать определенные версии тегов:
tag.link("/some/file.mp3", eyeD3.ID3_V2)
tag.link("/some/file.mp3", eyeD3.ID3_V1)
tag.link("/some/file.mp3", eyeD3.ID3_ANY_VERSION) # The default.
Или вы можете перебирать необработанные кадры:
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
for frame in tag.frames:
print frame
Как только тег связан с файлом, его можно изменить и сохранить:
tag.setArtist(u"Cro-Mags")
tag.setAlbum(u"Age of Quarrel")
tag.update()
Если тег, связанный в, был v2, и вы хотите сохранить его как v1:
tag.update(eyeD3.ID3_V1_1)
Прочтите тег и удалите его из файла:
tag.link("/some/file.mp3")
tag.remove()
tag.update()
Добавьте новый тег:
tag = eyeD3.Tag()
tag.link('/some/file.mp3') # no tag in this file, link returned False
tag.header.setVersion(eyeD3.ID3_V2_3)
tag.setArtist('Fugazi')
tag.update()
import eyed3
(d в нижнем регистре).Раньше я использовал мутаген для редактирования тегов в медиафайлах. Хорошая особенность мутагена в том, что он может обрабатывать другие форматы, такие как mp4, FLAC и т. Д. Я написал несколько сценариев с большим успехом, используя этот API.
источник
TIT2
для mp3,title
для ogg,\xa9nam
для mp4,Title
для WMA и т.д. - отстой.Проблема с тем
eyed3
, что выкидываетNotImplementedError("Unable to write ID3 v2.2")
для обычных файлов MP3.По моему опыту,
mutagen
классEasyID3
работает надежнее. Пример:Таким образом можно получить доступ ко всем другим тегам и сохранить их, что будет служить большинству целей. Дополнительную информацию можно найти в Руководстве по мутагену .
источник
Вам нужен модуль ID3 . Это очень просто и даст вам именно то, что вам нужно. Просто скопируйте файл ID3.py в каталог пакетов сайта, и вы сможете сделать что-то вроде следующего:
источник
проверьте это:
https://github.com/Ciantic/songdetails
Пример использования:
Сохранение изменений:
источник
Просто дополнительная информация для вас, ребята:
взгляните на раздел «MP3-файлы и редакторы метаданных» на странице PythonInMusic .
источник
Простой пример из книги Dive Into Python мне подходит, это подходит ссылка для скачивания, пример - fileinfo.py. Не знаю, лучший ли он, но он справится с основной работой.
Вся книга доступна онлайн здесь .
источник
Я просмотрел приведенные выше ответы и обнаружил, что они не подходят для моего проекта из-за проблем с лицензированием по GPL.
И я узнал следующее: PyID3Lib , а эта конкретная привязка python дата выпуска устарела, она использует ID3Lib , которая сама по себе является актуальной.
Следует отметить, что оба являются LGPL , и их можно использовать.
источник
Самый простой способ - это подробности песни ..
для чтения данных
аналогично для редактирования
Не забудьте добавить u перед именем, пока не выучите китайский язык.
Вы можете читать и редактировать массово, используя модуль Python glob
ех.
источник
Попробовав простой
pip install
маршрут для модулей eyeD3, pytaglib и ID3, рекомендуемых здесь, я обнаружил, что этот четвертый вариант был единственным, который работал. У остальных были ошибки импорта с отсутствующими зависимостями в C ++ или что-то волшебное или какая-то другая библиотека, которую неpip
хватало. Поэтому воспользуйтесь этим для базового чтения тегов ID3 (все версии):https://pypi.python.org/pypi/tinytag/0.18.0
Список возможных атрибутов, которые вы можете получить с помощью TinyTag:
Как рекламировалось, он был крошечным и самодостаточным.
источник
Первый ответ, который использует eyed3 , устарел, поэтому вот его обновленная версия.
Чтение тегов из mp3 файла:
Пример с веб-сайта для изменения тегов:
Проблема, с которой я столкнулся при первой попытке использования eyed3, была связана с ошибкой импорта libmagic, даже если она была установлена. Чтобы исправить это, установите magic-bin отсюда
источник
Я бы посоветовал mp3-теггер . Лучшее в этом то, что он распространяется под лицензией MIT и поддерживает все необходимые атрибуты.
Пример:
Он поддерживает установку, получение, обновление и удаление атрибутов файлов mp3.
источник
Это может зависеть от того, что вы хотите делать помимо чтения метаданных. Если вам нужен просто битрейт / имя и т.д., и ничего больше, вероятно, лучше всего подойдет что-нибудь легкое.
Если вы манипулируете прошлым mp3, вам может подойти PyMedia.
Их довольно много, что бы вы ни получили, убедитесь и проверьте это на большом количестве образцов носителей. В частности, существует несколько различных версий тегов ID3, поэтому убедитесь, что они не слишком устарели.
Лично я успешно использовал этот небольшой класс MP3Info. Хотя он довольно старый.
http://www.omniscia.org/~vivake/python/MP3Info.py
источник
После некоторых первоначальных исследований я подумал, что сведения о песнях могут соответствовать моему варианту использования, но он не обрабатывает файлы .m4b. Мутаген делает. Обратите внимание, что хотя некоторые (разумно) столкнулись с проблемой появления Mutagen собственных ключей формата, которые различаются от формата к формату (TIT2 для mp3, title для ogg, \ xa9nam для mp4, Title для WMA и т. Д.), Mutagen.File ( ) имеет (новый?) параметр easy = True, который предоставляет теги EasyMP3 / EasyID3, которые имеют согласованный, хотя и ограниченный, набор ключей. Я провел только ограниченное тестирование, но общие ключи, такие как альбом, исполнитель, исполнитель альбома, жанр, номер трека, номер диска и т. Д., Все присутствуют и идентичны для файлов .mb4 и .mp3 при использовании easy = True, что делает его очень удобно для моих целей.
источник
используя https://github.com/nicfit/eyeD3
источник
Я использовал tinytag 1.3.1, потому что
источник