#!/bin/bash # This software is governed by the CeCILL license under French law and # abiding by the rules of distribution of free software. You can use, # modify and/ or redistribute the software under the terms of the CeCILL # license as circulated by CEA, CNRS and INRIA at the following URL # "http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt". # # Ce logiciel est régi par la licence CeCILL soumise au droit français et # respectant les principes de diffusion des logiciels libres. Vous pouvez # utiliser, modifier et/ou redistribuer ce programme sous les conditions # de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA # à l'adresse "http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt". # # Copyright Cyril Ravat, (2007-2009) # Website : http://www.cyril-ravat.fr/scripts/mp3utospl.php # Help : m3utospl -h # Répertoire "racine" des fichiers musicaux sur l'ordinateur REP_LOCAL="/home/musique/" # Répertoire "racine" des fichiers musicaux sur le lecteur mp3 REP_LECT="/music/" if [ "$1" == "-h" ]; then echo -e "Usage : $(basename "$0") \033[1mfichier.m3u\033[0m [\033[1mrep_local\033[0m] [\033[1mrep_lect\033[0m]" echo " $(basename "$0") -h" echo echo -e "Transforme une liste de lecture \033[1mfichier.m3u\033[0m en un format fichier.spl, compatible" echo -e "avec certains lecteurs mp3." echo echo -e "Le fichier \033[1mfichier.m3u\033[0m n'est pas modifié. Dans le fichier spl, le répertoire" echo -e "racine des fichiers musicaux sur l'ordinateur \033[1mrep_local\033[0m est remplacé par son" echo -e "équivalent sur le lecteur mp3 \033[1mrep_lect\033[0m." echo "Les séparateurs de répertoires sont transformés en séparateurs Windows \, le" echo "fichier spl est encodé en UTF-16 et les retours à la ligne sont transformés" echo -e "grâce à l'utilitaire \033[1munix2dos\033[0m qui doit donc être installé." echo echo "Valeurs actuelles par défaut :" echo -e "\033[1mrep_local\033[0m : $REP_LOCAL" echo -e "\033[1mrep_lect\033[0m : $REP_LECT" echo exit 0 fi # Vérifications de l'existence du fichier mp3 et de unix2dos [ ! -e "$1" ] && echo "Le fichier $1 n'existe pas." && exit 1 if [ -z `which unix2dos` ]; then echo -e "L'utilitaire \033[1munix2dos\033[0m n'existe pas. Il faut installer le paquet \033[1mtofrodos\033[0m." exit 1 fi # Définition des variables PLAYLIST="${1%.m3u}.spl" TMP=/tmp/$RANDOM [ -n "$2" ] && REP_LOCAL="$2" [ -n "$3" ] && REP_LECT="$3" REP_LOCAL=$(echo "${REP_LOCAL%/}/" | tr '/' '|') REP_LECT=$(echo "${REP_LECT%/}/" | tr '/' '|') # Dans fichier.spl, l'entête, le corps et le pied de liste echo -e "SPL PLAYLIST\nVERSION 1.00\n" > "$PLAYLIST" cat "$1" >> "$PLAYLIST" echo -ne "\n\nEND PLAYLIST" >> "$PLAYLIST" # Remplacement des répertoires sed -i "s/\//|/g ; s/$REP_LOCAL/$REP_LECT/ ; s/|/\\\\/g" "$PLAYLIST" # Transformations unix2dos "$PLAYLIST" iconv -f latin1 -t utf16 "$PLAYLIST" > $TMP mv $TMP "$PLAYLIST"