#1 Le 08/11/2010, à 22:07
- tyzef
[Résolu] [Shell] Extraction des tags ID3 des mp3 et autres formats
Bonjour,
j'ai besoin de faire un script capable d'extraire les tags ID3 de fichiers mp3, ogg, flac, mp4. Hélas je ne trouve pas comment extraire ces métadonnées. Du coup, je ne suis pas contre un coup de main.
Merci aux contibuteurs.
PS: j'aimerais autant que ce soit du shell.
Dernière modification par tyzef (Le 13/11/2010, à 01:34)
Nous sommes la réalité et c'est pourquoi nous entendons la changer!
----------LUG Bordeaux : Giroll - http://www.giroll.org -----------
Hors ligne
#2 Le 09/11/2010, à 05:39
- greg73
Re : [Résolu] [Shell] Extraction des tags ID3 des mp3 et autres formats
Bonjour,
Regarde id3v2. C'est un petit utilitaire en ligne de commande pour lister/editer les tags ID3.
Hors ligne
#3 Le 09/11/2010, à 14:24
- samfuzz
Re : [Résolu] [Shell] Extraction des tags ID3 des mp3 et autres formats
ou avec ffmpeg, ffprobe
ffmpeg -i nomdefichier
ffprobe -show_format -convert_tags nomdefichier
avantage : supporte ogg, flac, mp3, m4a, mpc ..........
Dernière modification par samfuzz (Le 09/11/2010, à 16:20)
Hors ligne
#4 Le 09/11/2010, à 16:19
- tyzef
Re : [Résolu] [Shell] Extraction des tags ID3 des mp3 et autres formats
Merci ... je testerais ça ce soir ou ce week end.
Nous sommes la réalité et c'est pourquoi nous entendons la changer!
----------LUG Bordeaux : Giroll - http://www.giroll.org -----------
Hors ligne
#5 Le 10/11/2010, à 02:59
- samfuzz
Re : [Résolu] [Shell] Extraction des tags ID3 des mp3 et autres formats
je viens de tomber sur ça,
un tagger en ligne de commande et qui bien sur peut lire les tags (utilise taglib, donc devrait reconnaitre pas mal de format)
https://github.com/alip/envtag
Hors ligne
#6 Le 10/11/2010, à 03:29
- samfuzz
Re : [Résolu] [Shell] Extraction des tags ID3 des mp3 et autres formats
encore moi (ben oui ça m'intéresse) : ---> taginfo peut-etre le plus simple dans un script
trouvé grace à ce sujet http://forum.ubuntu-fr.org/viewtopic.php?pid=967401
http://freshmeat.net/projects/taginfo
testé, et c'est ok avec les mp3, ogg, flac, m4a, mpc, wma
exemple
./taginfo 01.flac
FILE="01.flac"
ALBUM="albumTEST"
TRACK="1"
ARTIST="test"
TITLE="flac"
GENRE="mflac1"
YEAR="1999"
COMMENT="Track 1"
LENGTH="303"
BITRATE="838"
SAMPLERATE="44100"
CHANNELS="2"
Hors ligne
#7 Le 13/11/2010, à 01:30
- tyzef
Re : [Résolu] [Shell] Extraction des tags ID3 des mp3 et autres formats
Bon alors j'ai testé tout ça et un peu plus du coup... Ma préférence a été pour mp3info qui permet très facilement d'extraire les tags indépendamment.
Cependant, maintenant j'ai un autre problème (je sors d'ailleurs du sujet).
J'ai des fichiers contenant des espaces et ça fout la merde dans mon script... J'ai pensé échapper les caractères espace mais là l'anti-slash est lu tel quel par mp3info dans le script (pas directement en ligne de commande).
Je peux peut-être fournir le script en entier pour que vous voyez si je peux récupérer mon nom de fichier avec un anti-slash considéré comme caractère d'échappement.
#!/bin/bash
# Synopsis :
# Parcours du répertoire de musique
# pour chaque fichier flac, mp3, ogg
# -> extraire les tags
# -> si tous les tags sont renseignés
# --> ajout dans le fichier collection_complete (nom de fichier complet, tags[art., album, titre, année, piste])
# -> Sinon ajout dans fichier coll incomplete
# Historique
# Date Version Auteur Commentaire
# 11/11/2010 1.0 Tyzef Création
#Fin du programme
function finProg {
fin=$1
args=$*
if [ $fin -gt 0 ]; then
echo "Fin du programme avec erreur."
if [ $# -gt 1 ]; then
echo "$args"
fi
exit $fin
else
echo "Analyse terminée normalement."
exit 0
fi
}
# Contrôles
function controles {
echo "Choix du répertoire de musique : $repMusic"
if [ ! -d $repMusic ]; then
echo "$repMusic n'est pas un répertoire."
finProg 2
fi
if [ ! -d $repAnalyse ]; then
echo "$repAnalyse n'est pas un répertoire"
finProg 2
fi
if [ -f $ficFull ]; then
echo "Suppression du fichier 'complet' précédent"
rm -f $ficFull
fi
if [ -f $ficUnFull ]; then
echo "Suppression du fichier 'incomplet' précédent"
rm -f $ficUnFull
fi
if [ -f $ficList ]; then
echo "Suppression de la liste des fichiers précédente"
rm -f $ficList
fi
touch $ficUnFull
touch $ficList
touch $ficFull
}
echo "------------- Musicalyze -------------"
if [ $# -gt 0 ]; then
if [ -d $1 ]; then
repMusic=$1
else
repMusic=$REP_MUSIC
fi
else
repMusic=$REP_MUSIC
fi
prog=$0
repAnalyse=`dirname $prog`
ficList=$repAnalyse/allMusicFiles.lst
ficFull=$repAnalyse/collection_complete.csv
ficUnFull=$repAnalyse/collection_incomplete.csv
controles
# Création de la liste de fichier
echo "... Génération de la liste des Fichiers"
for ext in ".mp3" ".flac" ".ogg"; do
find $repMusic -print | grep $ext >> $ficList
retour=$?
if [ $retour -gt 1 ]; then
finProg $retour "PB avec Find"
fi
done
# remplacement des espaces
sed 's/ /\\ /g' $ficList > $ficList.tmp
mv $ficList.tmp $ficList
echo "... Extraction des infos"
while read fic; do
#echo $fic
if [[ ! -f ${fic} ]]; then
echo $fic
finProg 2 "Le fichier $fic n'existe pas"
fi
artiste=`mp3info -p %a "${fic}"`
mretour=$?
album=`mp3info -p %l "${fic}"`
mretour=`expr $? + $mretour`
titre=`mp3info -p %t "${fic}"`
mretour=`expr $? + $mretour`
piste=`mp3info -p %n "${fic}"`
mretour=`expr $? + $mretour`
if [[ $mretour -gt 0 ]]; then
finProg $mretour "PB avec mp3info sur le fichier $fic"
fi
#echo "$artiste/$album/$piste - $titre"
if [[ $artiste != "" && $album != "" && $titre != "" && $piste != "" ]]; then
echo "$artiste;$album;$piste;$titre;$fic" >> $ficFull
else
echo "$artiste;$album;$piste;$titre;$fic" >> $ficUnFull
fi
if [[ $mretour -gt 0 ]]; then
finProg $mretour "PB avec mp3info sur le fichier $fic"
fi
done < $ficList
finProg 0
Merci pour vos éventuels commentaires.
Dernière modification par tyzef (Le 13/11/2010, à 18:30)
Nous sommes la réalité et c'est pourquoi nous entendons la changer!
----------LUG Bordeaux : Giroll - http://www.giroll.org -----------
Hors ligne
#8 Le 13/11/2010, à 18:30
- tyzef
Re : [Résolu] [Shell] Extraction des tags ID3 des mp3 et autres formats
Bon c'est bon j'ai trouvé ... il manquait des guillemets autour de ma variable ... ça marche maintenant ...
(je met à jour le script dans le messages précédents si quelqu'un veut le reprendre.)
Merci pour vos collaborations sur le sujet principal.
Nous sommes la réalité et c'est pourquoi nous entendons la changer!
----------LUG Bordeaux : Giroll - http://www.giroll.org -----------
Hors ligne