Обнаружение дубликатов музыкальных файлов

StackOverflow https://stackoverflow.com/questions/223173

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть два каталога, содержащие около 20 ГБ музыкальных файлов (в основном mp3, некоторые ogg), и я хотел бы обнаружить все повторяющиеся песни.Есть два осложняющих фактора:

  1. Песня может иметь разные имена файлов в двух каталогах.
  2. Два файла, содержащие одну и ту же песню, могут иметь разные теги ID3 и, следовательно, иметь разные контрольные суммы.

Каков хороший подход к решению этой проблемы?

Это было полезно?

Решение

В прошлом я использовал этот способ, используя genpuids из Music IP. Программное обеспечение с закрытым исходным кодом создает аудио-отпечаток файла независимо от формата, id3, контрольной суммы и т. Д.

Дополнительную информацию можно найти здесь .

Это должно обеспечить наибольшее количество положительных повторяющихся совпадений и минимизировать ложные срабатывания. Он также может правильно пометить неправильные теги id3.

Другие советы

Вот что бы я сделал (или сделал раньше)...

  1. Загрузите все песни на iTunes (терпите меня) (обратите внимание, если вы можете использовать здесь iTunes, то остановите ...Я предполагаю, что ваш список обманщиков длинный и неуправляемый)
  2. Удалите все песни, отправив их в корзину, таким образом вы избавитесь от структуры каталогов.
  3. Очевидно, не «выбрасывайте мусор».Сохраните песни в папку на рабочем столе.
  4. Используйте программное обеспечение, такое как медиамонкей, устранение обманар или даже Айтюнс себя, чтобы идентифицировать дубликаты.Средство устранения дублей хорошо тем, что оно проверяет по различному количеству факторов: исполнителю, длине, размеру файла и тому подобному, и угадывает, что является обманом, а что нет)
  5. Перезагрузитесь в Itunes, на этот раз установите флажок «Автоматическая аранжировка песен», после чего ваш новый, безупречный список будет помещен в красивую аранжировку для каждого исполнителя.

...вуаля!(или если вы читаете digg:"...выгода!")

/мп

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

Точны ли мета-теги артиста и композиции ID3 / OGG-эквивалента? Если они есть, вы можете использовать их.

Изменить. Если это не так, возможно, их можно было бы сделать ... Если вы имеете дело только с целыми альбомами, есть несколько инструментов, которые будут получать все данные тегов в зависимости от количества дорожек и их длины.

Если вы имеете дело со смешанными альбомами и отдельными файлами, это усложняется.

Я уверен, что существуют более элегантные решения, но если аудиоданные эквивалентны, то удаление тегов ID3 ​​и хеширование должно помочь.После хеширования вы можете вернуть теги ID3 обратно, если хотите.

Возможно, API API будет полезен. Он включает в себя вызов track.getInfo, который возвращает XML, включая длину трека, имя исполнителя, номер трека и т. Д. Вы можете сравнить треки и посмотреть, имеют ли они больше чем N полей, и если это так, предположить, что это один и тот же трек.

Я понятия не имею, будет ли у них все в порядке, если вы отправляете запросы API на 40 ГБ музыки.

Как насчет этого: найдите библиотеку для получения длины mp3, а также указатель на аудиоданные (похоже, есть пара библиотек, которые могут это сделать), выполните фильтр первого прохода на основе песни длины, и для песен, которые имеют соответствующие длины контрольной суммы их аудиоданных. Похоже на этот "> скрипт для поиска дубликатов файлов / изображений .

Некоторая адаптация ffTES отлично сработала для меня для очень похожей задачи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top