Présentation générale du script : 🙂
Requis : Imagemagick, eyeD3, metaflac
Objectif : gérer une collection de fichier flac c'est à dire:
1/ supprimer es taggs existant par des informations récupérer sur internet et mis dans des fiches noté nom.info (étape TAGGER)
2/ renommer les fichiers 01 titre.flac (étape RENOMMAGE )
3/ mettre tous les fichiers dans un dossier artiste puis album ( étape RANGER)
#!/bin/bash
###requis metaflac, imag
#Indiquer le dossier
echo 'Dossier (chemin absolue) ?'
read Dossier
echo $Dossier
cd "$Dossier"
OLDIFS=$IFS;
IFS=$(echo -en "\n\b" );
for fileA in `(ls)`;do ## parcourir un ls avec des espaces.
echo "$fileA"
cd "$fileA"
###condition et vérification des informations
# Récuperer les données de «*.info» | simplifier
artiste=`sed -n '1p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
album=`sed -n '2p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
date=`sed -n '3p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
genre=`sed -n '4p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
a=`sed -n '5p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
let " nbre = $a"
echo '--------------------------INFO--------------------------'
cat *.info
echo -e '\n--------------------------------------------------------'
######Pause pour voir si il y a des erreurs.
echo -e "\nLes informations sont-elles correctes ? (taper n'importe quelles touches pour continuer )"
read attente1
###Ajouter la convertion d'images
#convertir et renommer l'image présente
mv *.jpg "$artiste-$album.jpg" 2>/dev/null
convert *.jpg -resize 1000x1000\! "$artiste-$album.jpg"
#Ajouter les informations à chaque fichier
find . -maxdepth 1 -name "*.flac" -exec metaflac --remove-all {} \;
for i in `seq 1 $nbre`; do #parcours toute les chansons de .inforamtions
numTitre=`sed -n "$((5+i))p" *.info`
titre=`sed -n "$((5+i))p" *.info | cut -d " " -f 2- `
echo -n "$numTitre.........."
if [[ $i -lt 10 ]]; then ##Cas des 9 premiers chiffre 0^.
fichier=`find . -maxdepth 1 -name "0$i*"| cut -d / -f 2`
mv "$fichier" "$numTitre.flac" 2>/dev/null
eyeD3 --remove-all --remove-images "$numTitre.flac" &>/dev/null
eyeD3 --to-v2.4 "$numTitre.flac" &>/dev/null
eyeD3 -t "$titre" -a "$artiste" -A "$album" -n "0$i" -N "$nbre" -G "$genre" --add-image="$artiste-$album.jpg":FRONT_COVER {} "$numTitre.flac" &>/dev/null
else
fichier=`find . -maxdepth 1 -name "$i*"| cut -d / -f 2`
mv "$fichier" "$numTitre.flac" 2>/dev/null
eyeD3 --remove-all --remove-images "$numTitre.flac" &>/dev/null
eyeD3 --to-v2.4 "$numTitre.flac" &>/dev/null
eyeD3 -t "$titre" -a "$artiste" -A "$album" -n "0$i" -N "$nbre" -G "$genre" --add-image="$artiste-$album.jpg":FRONT_COVER {} "$numTitre.flac" &>/dev/null
fi
echo 'OK'
done
cd ../ #On resort du dossier
mv "$fileA" "$album" 2>/dev/null
mkdir "$artiste" 2>/dev/null
mv "$album" "$artiste"/ 2>/dev/null
IFS=$OLDIFS;
done
#Afficher le message de fin
echo '--------------------------END--------------------------'
La je vous met un exemple de fichier .info
Artiste= The Beatles;
Album= Revolver;
Date= 1966;
Genre= ;
Number Of Tracks= 14;
01 Taxman
02 Eleanor Rigby
03 I'm Only Sleeping
04 Love You To
05 Here, There And Everywhere
06 Yellow Submarine
07 She Said She Said
08 Good Day Sunshine
09 And Your Bird Can Sing
10 For No One
11 Doctor Robert
12 I Want To Tell You
13 Got To Get You Into My Life
14 Tomorrow Never Knows
MAINTENANT, je travaille sur une version 2 qui permettra :
1/ de vérifier les informations ( lettre majuscule à chaque mot).
2/ d'éviter d'utiliser des caractère non autoriser.
3/ de supprimer les messages d'erreurs lors du renommage.
4/ d'ajouter en tagg la date (il y a un problème avec eyeD3)
5/ de l'optimiser
et encore d'autre chose 😃