Ordenação de músicas em lote em um diretório por artista no Unix [closed]

0

Eu tenho muitas músicas mp3 em um diretório e quero classificá-las por artista, de modo que cada nome de artista seja um diretório contendo a música desse artista.

    
por M.jaradat 05.10.2012 / 20:02

3 respostas

3

Isso pressupõe que suas tags de mp3 estejam no formato id3v2. O id3v1 formata as coisas de forma um pouco diferente. Eu recomendo algo como mediainfo para isso. Este exemplo usa id3v2

for file in *.mp3; do
    IFS=$':'
    artist="$(id3v2 -l "${file}" | grep "TPE1" | awk '{ print $2 }')"
    # Your artist name is now stored in $artist.
    # This example just creates an artist directory and moves the file into it.
    # Terrible way to organize music, but this is a demonstration!
    [[ ! -d "${artist}" ]] && mkdir -p "${artist}"
    mv -f "${file}" "${artist}"
done

Uma solução real é usar algo como o MusicBrainz Picard.

    
por 05.10.2012 / 20:22
0

Não sei ao certo em qual sistema operacional você está, mas como sua pergunta foi marcada como programação Unix, presumo que você esteja em um * ix. Então, se você pode instalar o id3tool você pode rodar a seguinte linha de comando BASH:

find . -name "*.mp3" | while read n; do 
    dir='id3tool "$n" | grep Artist | cut -f 3 | sed 's/\s*$//''; 
    mkdir -p "$dir"; 
    mv "$n" "$dir"/"$n" ; 
done

EXPLICAÇÃO:

Este pequeno script irá percorrer cada um dos seus arquivos de mp3, extrair o nome do artista usando id3tool e salvá-lo na variável $dir . Em seguida, ele criará um diretório com o nome do artista (a menos que ele já exista) e continue a mover o arquivo para esse diretório.

Você também pode fazer isso de uma maneira GUI usando tocadores de música, como o amarok, que oferecem esse recurso (ou pelo menos costumava). Existem também vários editores id3, basta procurar através de sua fonte de software favorita, pelo menos alguns dos quais também devem ser capazes de fazer isso.

    
por 05.10.2012 / 20:37
0

Eu faria isso em Python, com a ferramenta apontada em esta resposta no Stack Overflow , eyD3 .

    
por 05.10.2012 / 20:16