mp3covermp3cover a pour but de placer une image cover.jpg comme étiquette id3 dans les fichiers mp3 contenus dans le même répertoire. Tout comme mp3resample et m3utospl, il peut servir pour transformer des fichiers mp3 pour les rendre plus pratiques à utiliser sur un lecteur mp3 comme le YP-P2 de Samsung.
mp3cover est distribué sous licence libre CeCILL.
Une fois le fichier téléchargé, vous devez
sudo mv mp3cover /usr/local/bin/
sudo chmod +x /usr/local/bin/mp3cover
Ce logiciel nécessite l'utilisation des utilitaires convert et eyeD3, installables sous Ubuntu ou Debian par
sudo aptitude install imagemagick eyed3
$ mp3cover -h
Usage : mp3cover [répertoire] [répertoire ...]
mp3cover -h
Place un fichier cover.jpg comme étiquette id3 dans les fichiers mp3 contenus
dans les répertoires donnés en argument, ou à défaut dans le répertoire courant.
Le comportement est récursif. Les étiquettes id3 ne sont modifiées que si le
fichier cover.jpg existe, après redimensionnement à la taille de 250x250 pixels.
Les paquets imagemagick (pour la retouche d'image) et eyed3 (pour la
modification des données id3) doivent être installés.
#!/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/mp3cover.php
# Help : mp3cover -h
# Taille maximale des images redimensionnées (en pixels)
IMSIZE=250
if [ "$1" == "-h" ]; then
echo -e "Usage : $(basename "$0") [\033[1mrépertoire\033[0m] [\033[1mrépertoire\033[0m ...]"
echo " $(basename "$0") -h"
echo
echo "Place un fichier cover.jpg comme étiquette id3 dans les fichiers mp3 contenus"
echo -e "dans les \033[1mrépertoire\033[0ms donnés en argument, ou à défaut dans le répertoire courant."
echo
echo "Le comportement est récursif. Les étiquettes id3 ne sont modifiées que si le"
echo "fichier cover.jpg existe, après redimensionnement à la taille de ${IMSIZE}x$IMSIZE pixels."
echo "Les paquets imagemagick (pour la retouche d'image) et eyed3 (pour la"
echo "modification des données id3) doivent être installés."
echo
exit 0
fi
# Vérification des utilitaires convert et eyeD3
if [ -z `which convert` ]; then
echo -e "L'utilitaire \033[1mconvert\033[0m n'existe pas."
echo -e "Il faut installer le paquet \033[1mimagemagick\033[0m."
exit 1
fi
if [ -z `which eyeD3` ]; then
echo -e "L'utilitaire \033[1meyeD3\033[0m n'existe pas."
echo -e "Il faut installer le paquet \033[1meyed3\033[0m."
exit 1
fi
# Fonction d'encodage
function ajoute () {
REP="$1"
convert -resize "${IMSIZE}x$IMSIZE>" -quality 85 "$REP/cover.jpg" "$REP/covertmp.jpg"
for FICHIER in "$REP"/*.mp3; do
touch -r "$FICHIER" "$REP/tmp"
eyeD3 --remove-images "$FICHIER" > /dev/null 2> /dev/null
eyeD3 --add-image="$REP/covertmp.jpg":FRONT_COVER "$FICHIER" > /dev/null 2> /dev/null
touch -r "$REP/tmp" "$FICHIER"
echo -n "*"
done
rm "$REP/covertmp.jpg" "$REP/tmp"
}
# Récursivité
function recherche() {
REP="$1"
[ -d "$REP" ] || return
echo -n "Répertoire $(basename "$REP") "
# Ajout de l'image
[ -e "$REP/cover.jpg" ] && ajoute "$REP"
echo
# Gestion des répertoires : comportement récursif
for NREP in "$REP"/*; do
[ -d "$NREP" ] && recherche "$NREP"
done
}
# Corps : description de la liste des répertoires à traiter
for i in `seq $#`; do
recherche "${!i%/}"
done
[ $# -eq 0 ] && recherche `pwd`