Что такое лучшая / очень хорошая библиотека для чтения метаданных?
Сейчас я особенно заинтересован в чтении данных из файлов MP3 (теги ID3?), Но чем больше он может сделать (например, EXIF из изображений?), Тем лучше, не ставя под угрозу возможности чтения тегов ID3.
Я заинтересован в создании сценария, который проходит через мои медиафайлы (прямо сейчас, мои музыкальные файлы) и удостоверяется, что имя файла и путь к каталогу соответствуют метаданным файла, а затем создает журнал несоответствующих файлов, чтобы я мог проверить, какие является точным и внести правильные изменения. Я думаю, что Ruby или Python (см. Связанный вопрос специально для Python) будет лучше для этого, но я действительно открыт для использования любого языка (и на самом деле, вероятно, предпочел бы язык приложений, такой как C, C++, Java, C# в случай этот проект уходит).
5 ответов
На сайте Джоэла "Jaykul" Беннет есть отличный пост об использовании PowerShell и TagLibSharp. Вы можете использовать TagLibSharp для чтения метаданных на любом языке, основанном на.NET, но PowerShell вполне подходит для того, что вы пытаетесь сделать.
Используйте exiftool (он также поддерживает ID3). написано на Perl, но также может быть использовано из командной строки. у него есть скомпилированная версия для Windows и Mac.
он опережает любой другой инструмент метаданных, поддерживающий практически все известные аудио, видео и графические файлы, поддерживает запись (а не только чтение) и знает обо всех пользовательских / расширенных тегах, используемых программным обеспечением (таким как фотошоп) и оборудованием (многие производители камер).
В дополнение к ответу Anon - exiftool очень мощный и поддерживает огромный диапазон типов файлов, не только изображения, но и видео, аудио и многочисленные форматы документов.
Интерфейс Ruby для exiftool доступен в виде гема mini_exiftool
@Thomas Owens PowerShell теперь является частью Common Engineering Criteria (начиная с линейки продуктов Microsoft 2009 года), и начиная с Serve 2008 включается в качестве функции. Вероятность установки такого же шанса, как Python или Ruby. Вы также упомянули, что готовы перейти на C#, который может использовать TagLibSharp. Или вы можете использовать IronPython...
@Thomas Owens TagLibSharp - хорошая библиотека для использования. Сначала я всегда опираюсь на PowerShell, один для продвижения языка, а второй - потому что он быстро распространяется в домене Microsoft. Я ничего не имею против использования других языков, я просто склоняюсь к тому, что я знаю и люблю.:) Удачи с вашим проектом.