Se você estiver trabalhando no Mac OS ou em qualquer sistema Unix, poderá instalar o ffmpeg e usar o comando a seguir para extrair a duração de um único arquivo:
ffmpeg -i filename.mp3 2>&1 | egrep "Duration" | cut -d ' ' -f 4 | sed s/,//
Por exemplo, retorne "00: 08: 17.4".
Você pode usar isso em um shell script, é claro, então, por exemplo, isso listaria todos os arquivos mp3 em uma pasta e a duração deles para a direita.
#!/bin/bash
# call me with mp3length.sh directory
# e.g. ./mp3length .
# or ./mp3length my-mp3-collection
for file in $1/*.mp3
do
echo -ne $file "\t"
ffmpeg -i "$file" 2>&1 | egrep "Duration"| cut -d ' ' -f 4 | sed s/,//
done