Доступ к музыкальным данным MP3 с использованием Python - PullRequest
5 голосов
/ 15 июля 2010

Я пытаюсь написать скрипт на Python для поиска дубликатов файлов mp3 / 4, используя данные песни в качестве базы для сравнения. В моей ситуации много файлов mp3 / 4 с одинаковыми именами, но разными тегами ID3. Сначала я попытался перебрать и использовать md5 для поиска дубликатов файлов (игнорируя имена файлов). Это, конечно, не работало, когда теги ID3 не совпадали.

В результате я ищу способ извлечь только музыкальные данные из mp3 / 4, чтобы запустить их через md5 и найти любые дубликаты. Как лучше всего это сделать?

Ответы [ 3 ]

4 голосов
/ 15 июля 2010

Попробуйте использовать id3-py или mutagen , чтобы удалить все теги (как ID3v1, так и ID3v2, они оба могут быть в одном файле), а затем вычислить MD5 на результат.

Если iTunes не манипулирует файлом, кроме тегов, они должны быть идентичными. Транскодирование, очевидно, сделает этот подход недействительным.

1 голос
/ 10 ноября 2012

Используйте какой-нибудь алгоритм отпечатков пальцев. Возможно, вы знаете о MusicBrainz . Они перечислили здесь некоторые алгоритмы отпечатков пальцев. Теперь они используют AcoustId, что, вероятно, также следует использовать (это хорошо и бесплатно). Существует библиотека Chromaprint , которая может генерировать такой отпечаток.

Я написал Python-модуль ffmpeg, который выполняет декодирование через FFmpeg и предоставляет простую функцию для вычисления отпечатка AcoustId (используя Chromaprint). Здесь - небольшая демонстрация для этого (которая даже запрашивает MusicBrainz для песни).

Должно быть легко построить какой-нибудь инструмент, чтобы найти все дубликаты.

Отпечаток пальца будет точно таким же, если аудиоданные точно такие же. Это будет похоже, если аудио данные похожи. Обратитесь к домашней странице AcoustId для получения дополнительной информации о том, как рассчитать сходство, если вы не хотите просто проверять равенство.

0 голосов
/ 15 июля 2010

Это на самом деле довольно продвинутая, нечеткая логика, о которой вы спрашиваете.

Это не ответ, но посмотрите на обсуждение в этой статье: Обнаружить дубликаты файлов MP3 с разными битрейтами и / или разными тегами ID3? (На самом деле это может считаться обманом .. Это даже для Python.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...