Перечисление и удаление альбомов со слишком маленьким битрейтом звука
Я чищу свою музыкальную библиотеку и застрял с избавлением от тысяч альбомов с битрейтом <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
,