m3utosplm3utospl a pour but de transformer une liste de lecture au format m3u dans le format spl. Tout comme mp3cover et mp3resample, il peut servir pour transformer des fichiers mp3 pour les rendre plus pratiques à utiliser sur un lecteur mp3 comme le YP-P2 de Samsung.
m3utospl est distribué sous licence libre CeCILL.
Une fois le fichier téléchargé, vous devez
sudo mv m3utospl /usr/local/bin/
sudo chmod +x /usr/local/bin/m3utospl
Ce logiciel nécessite l'utilisation de l'utilitaire unix2dos, installable sous Ubuntu ou Debian par
sudo aptitude install tofrodos
$ m3utospl -h
Usage : m3utospl fichier.m3u [rep_local] [rep_lect]
m3utospl -h
Transforme une liste de lecture fichier.m3u en un format fichier.spl, compatible
avec certains lecteurs mp3.
Le fichier fichier.m3u n'est pas modifié. Dans le fichier spl, le répertoire
racine des fichiers musicaux sur l'ordinateur rep_local est remplacé par son
équivalent sur le lecteur mp3 rep_lect.
Les séparateurs de répertoires sont transformés en séparateurs Windows \, le
fichier spl est encodé en UTF-16 et les retours à la ligne sont transformés
grâce à l'utilitaire unix2dos qui doit donc être installé.
Valeurs actuelles par défaut :
rep_local : /home/musique/
rep_lect : /music/
#!/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, <ravat@free.fr> (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"