Eu não tenho nenhum caractere cirílico na minha coleção de músicas, mas posso usar o grego sem problemas usando a versão mais recente do eyed3
instalado por sudo pip install --upgrade eyed3
:
$ eyeD3 Μπεστ\ οφ/Τζίμης\ Πανούσης\ -\ Κάγκελα\ Παντού.mp3
Τζίμης Πανούσης - Κάγκελα Παντού.mp3 [ 3.43 MB ]
-------------------------------------------------------------------------------
Time: 03:45 MPEG1, Layer III [ 128 kb/s @ 44100 Hz - Joint stereo ]
-------------------------------------------------------------------------------
ID3 v2.4:
title: Tzimis Panousis-Kagkela Pantou.mp3
artist: Tzimis Panousis
album: Unknown
No exemplo acima, tenho um diretório (nome do álbum) chamado Μπεστ οφ
, que contém uma música chamada Κάγκελα Παντού
by Τζίμης Πανούσης
. Como você pode ver na saída id3tool
acima, as tags não estão em grego. Vamos consertar isso:
$ eyeD3 -A "Μπεστ οφ" \
-t "Κάγκελα Παντού" \
-a "Τζίμης Πανούσης" \
"./Μπεστ οφ/Τζίμης Πανούσης - Κάγκελα Παντού.mp3"
Isso define corretamente as tags usando o alfabeto grego:
$ eyeD3 Μπεστ\ οφ/Τζίμης\ Πανούσης\ -\ Κάγκελα\ Παντού.mp3
Τζίμης Πανούσης - Κάγκελα Παντού.mp3 [ 3.43 MB ]
-------------------------------------------------------------------------------
Time: 03:45 MPEG1, Layer III [ 128 kb/s @ 44100 Hz - Joint stereo ]
-------------------------------------------------------------------------------
ID3 v2.4:
title: Κάγκελα Παντού
artist: Τζίμης Πανούσης
album: Μπεστ οφ
OK, mas como as informações são codificadas no nome do arquivo, isso pode ser automatizado. No exemplo acima, o nome do arquivo tem este formato:
Album/Artist - Title.mp3
Assim, podemos analisar e adicionar as tags de todos os arquivos com um pequeno shell magic :
find . -type f -name "*mp3" | while read file; do
album="$(basename "$(dirname "$file")")";
filename="$(basename "$file")";
artist=${filename%%-*};
title=${filename##*-};
title=${title%%.mp3};
eyeD3 -A "$album" -t "$title" -a "$artist" "$file";
done
Depois de executar este comando, todos os arquivos terão suas tags id3 modificadas: