Posts Tagged ‘m3u’

Script: Crear listas de reproducción m3u

Posted in Scripts, linux on April 12th, 2009 by mrcomputer – 6 Comments

Los archivos M3U son un tipo de archivos que sirven para almacenar listas de reproducción de archivos multimedia, y principalmente usado para listas de reproducción de audio. Estos archivos son reconocidos por la mayoría de reproductores en todos los sistemas operativos, como pueden se XMMS, VLC, Winamp, etc.

Los archivos M3U son archivos de texto plano con extensión .m3u y con una sintaxis muy sencilla.

En la primera línea de un archivo M3U siempre tiene que estar la sentencia #EXTM3U, que es lo que indica que se trata de un fichero M3U. Posteriormente se introducen en cada línea se introduce la ruta(relativa o absoluta) de los archivos multimedia que conformarán la lista de reproducción. Existen otras sentencias, pero son optativas y sirven para indicar el tiempo del archivo y el titulo en texto claro.

Como podéis ver es muy sencillo crear archivos de listas de reproducción M3U, también es muy sencillo ocultar datos en estos archivos, pero de esto hablaré en un próximo post.

Pues bien, a continuación teneis un sencillo script de bash que crea una lista de reproducción con los archivos mp3 y ogg que se encuentren en el directorio actual y recursivamente en todos los subsiguientes. También si descomentas una linea podrás agregar los archivos wav, pero la he comentado porque no es tan común tener música en .wav.

#!/bin/bash
##################################################################################
#       Script para crear archivos m3u con los arhivos a partir  del
#                               directorio actual
#               Creado por Miguel Peris(mrcomputer) version 1.0 11/04/2009
#       Uso: ./m3.sh nombre_de_la_lista.m3u
#             Sin parametros genera un nombre de lista por defecto
#       Licenciado bajo los terminos de la licencia GPL v3
##################################################################################
 
if [ -z $1 ]; then
archivo="lst-$(basename $PWD).m3u"
else
archivo=$1
fi
echo $archivo
 
# cabecera del archivo m3u y si el archivo existe lo borra
echo "#EXTM3U">$archivo
 
# genera listas para mp3 y ogg
ls -1R |find . -type f -print| grep -i .mp3 >>$archivo
ls -1R |find . -type f -print|  grep -i .ogg >>$archivo
 
# Descomentar la siguiente linea para tambien introducir los .wav a la lista
#ls -1R |find . -type f -print|  grep -i .wav >>$archivo
 
#EOF

Ahora solo hay que guardarlo como m3.sh y darle permisos de ejecución con chmod +x m3.sh. Si lo ejecutas sin parámetros el nombre de la lista de reproducción será lst-<directorio_actual>.m3u, por ejemplo si el directorio que nos encontramos se llama musica, el archivo m3u que genera el script por defecto será lst-musica.m3u.

En cambio si por parámetros le pasamos un nombre, generará la lista con ese nombre. Por ejemplo si ejecutamos nuestro script así, ./m3u.sh mi_lista.m3u generará el archivo mi_lista.m3u. También si queremos podemos pasarle el nombre con la ruta(absoluta o relativa) de la lista.

Espero que a alguien le sea de utilidad este pequeño script.