Pages : 1
#1 Le 23/02/2009, à 11:30
- WW
Génération de playlists pour mpd
Bonjour à tous,
Voici un petit script qui permet de générer les playlists correspondantes au sous-dossiers de votre répertoire musical.
Il génère également des playlists générales regroupant les sous-dossiers d'un même dossier.
#!/bin/bash
# Liste des formats supportés par MPD
listeFormats="*.mp3 *.mp2 *.ogg *.flac *.wav *.au *.aiff *.aif *.m4a *.mp4 *.mpc *.amf *.dsm *.far *.gdm *.imf *.it *.med *.mod *.mtm *.s3m *.stm *.stx *.ult *.uni *.xm"
# Fichier temporaire pour parcourir le résultat de ls
listingRep="$HOME/.PlayListMPDGenerator"
# Dossier dans lequel mpd cherche les playlists
playlistsMPD=`cat $HOME/.mpdconf | grep "playlist_directory"`
playlistsMPD=`expr "$playlistsMPD" : '.*"\(.*\)"'`
# Dossier dans lequel mpd cherche la musique
music=`cat $HOME/.mpdconf | grep "music_directory"`
music=`expr "$music" : '.*"\(.*\)"'`
# traitementRepertoire prend un argument le répertoire à traiter
traitementRepertoire() {
sousDossier="false"
if [ "$1" = "" ]; then
chemin=""
else if [ "$chemin" = "" ]; then
chemin="$1/"
else
chemin="$chemin$1/"
fi
fi
for i in $listeFormats; do
if [ "${i%.*}" != "*" ]; then
echo "$chemin$i" >> "$playlistsMPD/$1.m3u"
fi
done
ls > $listingRep
cat $listingRep | # On parcours les sous-dossiers
while read repertoire; do
if [ -d "$repertoire" ]; then
sousDossier="true"
cd "$repertoire"
traitementRepertoire "$repertoire"
# Création d'une playlist générale pour $1 #
if [ -e "$playlistsMPD/$repertoire.m3u" ]; then
cat "$playlistsMPD/$repertoire.m3u" >> "$playlistsMPD/all_$1.m3u"
fi
cd ..
chemin=`expr "$chemin" : '\(.*/\).*/'` # chemin = tous ce qui se trouve avant l'avant-dernier "/" (avant-dernier "/" compris)
fi
done
if [ "$sousDossier" = "true" ]; then
cat "$playlistsMPD/$1.m3u" >> "$playlistsMPD/all_$1.m3u" # Création de la playlist générale du répertoire courant ($1)
fi
if [ -e "$playlistsMPD/all_$1.m3u" ]; then
cat "$playlistsMPD/all_$1.m3u" >> "$playlistsMPD/all.m3u" # Ajout d'élements dans la playlist générale de @
fi
}
#~ Programme ~#
if [ -e "$playlistsMPD/all.m3u" ]; then
rm "$playlistsMPD/all.m3u" # Suppression de la playlist générale, elle est recréée pour inclure les nouveaux éléments
fi
cd $music
traitementRepertoire ""
if [ -e "$playlistsMPD/.m3u" ]; then
mv "$playlistsMPD/.m3u" "$playlistsMPD/Non-Classé.m3u" # La première playlist créée est celle des morceaux non classé à la racine
fi
mv "$playlistsMPD/all_.m3u" "$playlistsMPD/tout_sans_les_sous-dossiers.m3u"
rm $listingRep
echo "Génération des playlists effectuée"
Remarque : Ce script récupère des informations dans ~/.mpdconf, si vous utilisez un autre fichier de configuration il faudra modifier les variables $playlistsMPD et $music.
Pour exécuter ce script donner les permissions d'exécution via clic-droit>Propriétés>Permissions puis double-cliquer dessus.
Ou alors chmod 755 /CHEMIN/DU/SCRIPT puis ./CHEMIN/DU/SCRIPT
ou alors bash CHEMIN/DU/SCRIPT
Script pour les playlists m3u pour les autres lecteurs.
Dernière modification par WW (Le 09/04/2009, à 17:43)
Quand on sait c'est facile, mais qui n'a jamais été débutant.
Hors ligne