Listando e removendo álbuns com uma taxa de bits de áudio muito pequena

3

Estou limpando minha biblioteca de músicas e me livrei de livrar-me de milhares de álbuns com taxa de bits de < 320kbps, que ficaram lá por anos. Verificar a taxa de bits de arquivos únicos e excluir toda a pasta manualmente é muito tedioso. Talvez alguém aqui possa ter uma ideia que me ajudaria na limpeza? Eu gostaria de ter depois disso apenas MP3s @ 320kbps e flacs. Obrigado antecipadamente!

    
por 108592 29.09.2014 / 17:47

2 respostas

3

Aqui está uma abordagem shell. Ele excluirá todos os diretórios que não contiverem .mp3 arquivos da taxa de bits > = 320 kbps:

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

Notas

  • Isso removerá quaisquer diretórios que contiverem pelo menos um arquivo mp3 com uma taxa de bits menor que 320. Se houver outro arquivo no mesmo diretório com a taxa de bits correta, ele será excluído bem. Essa abordagem pressupõe que todos os arquivos em um diretório tenham a mesma taxa de bits.

  • Isso perderá arquivos de taxa de bits variável.

  • Ele deve funcionar com qualquer tipo de nome de arquivo, incluindo aqueles com espaços, novas linhas ou até barras invertidas.

  • Pode ser necessário instalar mp3info : sudo apt-get install mp3info

  • Execute-o em um diretório de teste primeiro.

Explicação

  • find /path/to/Music -type d -print0 : localize todos os diretórios em /path/to/Music e imprima-os separados pela cadeia nula. Isso é necessário para lidar com nomes de arquivos estranhos.

  • while IFS= read -r -d '' dir; do : percorra cada um dos resultados de find , salvando-os na variável $dir .

  • mp3=$(find "$dir" -type f -iname '*.mp3' | head -n 1); : salve o nome do primeiro arquivo mp3 neste diretório como $mp3 .

  • [ -e "$mp3" ] : se este arquivo existir. Isso é necessário para ignorar diretórios sem arquivos mp3.

  • [[ $(mp3info -x "$mp3" | grep -oP '\d+(?=\s*kbps)') -lt 320 ]] : verifica a taxa de bits de $mp3 . Ele executa mp3info , grava a taxa de bits e verifica se é menor que 320 .

  • rm -rf "$(dirname "$mp3")"; : exclua o diretório que contém o arquivo mp3. Isso só será executado se a taxa de bits for menor que a desejada.

por terdon 29.09.2014 / 20:55
2

De @ DavidFoerster comentário eu usaria o Banshee.

Importe todos os seus arquivos de mídia das pastas (ou até mesmo de partições inteiras) que você deseja, indo para media - > import media e escolha as pastas.

Quando todas as suas mídias forem importadas, clique com o botão direito do mouse na barra de colunas (mostrada abaixo na captura de tela) e selecione Bitrate . Em seguida, clique no nome da coluna para ordenar por essa coluna.

Você pode então selecionar a taxa de bits desejada (no seu caso 320) rolar para baixo, pressionar Shift e clicar na última música. Em seguida, clique com o botão direito nas músicas selecionadas e escolha Delete from Drive .

    
por Parto 29.09.2014 / 18:27