Перечисление и удаление альбомов со слишком маленьким битрейтом звука

Я чищу свою музыкальную библиотеку и застрял с избавлением от тысяч альбомов с битрейтом <320kbps, которые собирались там годами. Проверка битрейта отдельных файлов и удаление всей папки вручную очень утомительно. Может быть, кто-то здесь может придумать идею, которая поможет мне с уборкой? Я бы хотел, чтобы после этого были только MP3-файлы со скоростью 320 кбит / с и флаки. Заранее спасибо!

2 ответа

Решение

Вот подход оболочки. Он удалит все каталоги, которые не содержат .mp3 файлы с битрейтом>= 320 кбит / с:

find /path/to/Music -type d -print0 | 
    while IFS= read -r -d '' dir; do 
     mp3=$(find "$dir" -type f -iname '*.mp3' | head -n 1); 
     [ -e "$mp3" ] && [[ $(mp3info -x "$mp3" | grep -oP '\d+(?=\s*kbps)') -lt 320 ]] && 
            rm -rf "$(dirname "$mp3")"; 
    done

Заметки

  • Это удалит все каталоги, которые содержат как минимум один mp3-файл с битрейтом менее 320. Если в том же каталоге есть другой файл с правильным битрейтом, он также будет удален. Этот подход предполагает, что все файлы в каталоге имеют одинаковую скорость передачи данных.

  • Это пропустит файлы с переменным битрейтом.

  • Он должен работать с любым типом имени файла, в том числе с пробелами, переводом строки и даже обратной косой чертой.

  • Вам может понадобиться установить mp3info: sudo apt-get install mp3info

  • Сначала запустите его в тестовом каталоге.

объяснение

  • find /path/to/Music -type d -print0: найти все каталоги под /path/to/Music и распечатать их через пустую строку. Это необходимо для работы со странными именами файлов.

  • while IFS= read -r -d '' dir; do: просмотреть каждый из результатов find, сохраняя их в $dir переменная.

  • mp3=$(find "$dir" -type f -iname '*.mp3' | head -n 1);: сохранить имя первого mp3-файла в этом каталоге как $mp3,

  • [ -e "$mp3" ]: если этот файл существует. Это необходимо для пропуска каталогов без mp3 файлов.

  • [[ $(mp3info -x "$mp3" | grep -oP '\d+(?=\s*kbps)') -lt 320 ]]: это проверяет битрейт $mp3, Работает mp3info, подбирает битрейт и проверяет, меньше ли он 320,

  • rm -rf "$(dirname "$mp3")";: удалить каталог, содержащий mp3-файл. Это будет выполняться только в том случае, если его битрейт меньше желаемого.

Из комментария David Foerster я бы использовал Banshee.

Импортируйте все свои медиа-файлы из нужной папки (или даже целых разделов), перейдя в media->import media и выберите папки.

После того, как все ваши медиафайлы были импортированы, щелкните правой кнопкой мыши по столбцу (как показано на скриншоте ниже) и выберите Bitrate, Затем нажмите на название столбца, чтобы упорядочить по этому столбцу.

Затем вы можете выбрать битрейт, который вы хотите (в вашем случае 320), прокрутить вниз, нажать Shift и щелкнуть последнюю песню. Затем щелкните правой кнопкой мыши на выбранных песнях и выберите Delete from Drive,

введите описание здесь

Другие вопросы по тегам