mkm3u

Nombre: mkm3u
Autor: ihuhnix
Origen: original
Lenguaje: bash
Licencia: GPL
Propósito: Crear una lista de reproducción con los ficheros vorbis y mp3 del directorio de trabajo en el mismo.
Dependencias: file, grep, tr, cat

<strong>Código:</strong>
#!/bin/sh

if [ -z $1 ]; then
lista=`basename $PWD`.m3u
else
lista=$1.m3u
fi

echo '#EXTM3' > $lista
file -i * | grep ogg | tr ' ' 'n' | grep : | tr -d ':' >> $lista
file -i * | grep audio | tr ' ' 'n' | grep : | tr -d ':' >> $lista
cat $lista

Ejemplos de uso:

{4}17:39:36 [0]
1000@0:/mnt/data/sonido/discoteca/folk/chieftains_the/1964-the_chieftains_1$ ls
01_-_se_fath_mo_bhuartha;_the_lark_on_the_strand;_an_fhallaingin_mhuimhneach;_trim_the_velvet.mp3
02_-_an_comhra_donn;_murphy's_hornpipe.mp3
03_-_cailin_na_gruaige_doinne.mp3
04_-_comb_your_hair_and_curl_it;_the_boys_of_ballisodare.mp3
05_-_the_musical_priest;_the_queen_of_may.mp3
06_-_the_walls_of_liscarroll.mp3
08_-_the_connemara_stocking;_the_limestone_rock;_dan_breen's.mp3
09_-_casadh_an_tsugain.mp3
10_-_the_boy_in_the_gap.mp3
11_-_saint_mary's;_church_street;_garrett_barry;_the_battering_ram;_kitty_goes_a-milking;_rakish_paddy.mp3
the_chieftains_1_-_back.jpg
the_chieftains_1_-_front.jpg
the_chieftains_1_-_inside1.jpg
the_chieftains_1_-_inside2.jpg

{4}17:39:41 [0]
1000@0:/mnt/data/sonido/discoteca/folk/chieftains_the/1964-the_chieftains_1$ mkm3u
#EXTM3
01_-_se_fath_mo_bhuartha;_the_lark_on_the_strand;_an_fhallaingin_mhuimhneach;_trim_the_velvet.mp3
02_-_an_comhra_donn;_murphy's_hornpipe.mp3
03_-_cailin_na_gruaige_doinne.mp3
04_-_comb_your_hair_and_curl_it;_the_boys_of_ballisodare.mp3
05_-_the_musical_priest;_the_queen_of_may.mp3
06_-_the_walls_of_liscarroll.mp3
08_-_the_connemara_stocking;_the_limestone_rock;_dan_breen's.mp3
09_-_casadh_an_tsugain.mp3
10_-_the_boy_in_the_gap.mp3
11_-_saint_mary's;_church_street;_garrett_barry;_the_battering_ram;_kitty_goes_a-milking;_rakish_paddy.mp3

1000@0:/mnt/data/sonido/discoteca/folk/chieftains_the/1964-the_chieftains_1$

Comentarios: Otro sencillo script para un trabajo simple.
-¿Que se puede hacer con xmms?
-Ya
-¿Que se podría haber hecho más completo añadiendo información de los tags?
-No me interesa
-¿Tiene fallos?
-Posiblemente con algunos nombres de archivo con espacios o caracteres especiales.
-¿Por qué uso file -i * | etc... para determinar el tipo de archivo (con todo el tr y grep que eso conlleva) en vez de un simple ls *.ogg (o algo parecido)?
-Porque un sistema unix no necesita extensiones en los nombres de archivo, por lo que podría existir un archivo archivo que fuese vorbis y no se llamara archivo.ogg, de modo que no se incluiría de esta última forma. O, lo que es peor, que se incluyera un archivo.ogg que fuera otra cosa (como un virus) y nos jodiera el xmms o empezara a llenar la ram, por ejemplo.

Este script crea una lista: lista.m3u, siendo el nombre lista especificado como primer argumento ($1). Si no existiera tal, toma como valor el nombre del directorio de trabajo (que se supone que será el nombre del álbum).

También filtra sólo los archivos de audio que sean vorbis o mp3, aunque puede que algún otro, no lo he comprobado.

Si existe una lista con el mismo nombre la destruye=la pone al día