Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/01/2009, à 23:21

re06011988

[Aide] Script qui télécharge convertie tag et range les mp3

Bonjour a tous et toute

Voila je vien de réaliser un script sh qui permet de télécharger de la musique que l'on ecoute en stream via internet mais aussi de la convertir en MP3 de mettre les tag ID3 et de ranger le tout propre et net.Le script en lui même est fonctionnelle mais je voudrait faire des amélioration mais je suis bloqué pour le mettre en interface graphique car je ne sais pas du tout faire.

Le script utilise des logiciel ubuntu  libre de droit et sous licence GNU (comme ce script)  ainsi que les codecs du dépôt medibuntu

Voici un petit tuto de présentation:

*Téléchargement

1/ http://fwd.dyndns.info/T1000-tagi.tar.gz (dernier version 2.0)

*Installation

1/Lancer le script install (sans être root NI SANS SUDO) lol -> juste double clicker sur install et faire lancer dans le terminal

*Utilisation

1/Lancer T1000-tag par le racourci dans application>son et video>T1000-tag
2/Lancer le chargement de la musique (en fesant "play" sur le site)
3/Les tag devront être inseret automatiquement avec votre validation ou si ils sont non conforme a la musique télécharger vous avez la possibiliter de rechercher avec la base de données CDDB ou bien les rentrer manuellement.

Chaque musique est triée selon /home/_USER_/MP3/$ARTISTE/$ALBUM/$TITRE.mp3 (cela trie une bibliotec rapidement et proprement)

Bug connu:

-Probleme avec lltag [resolu]
-Probleme d'accent dans les titre/tag [resolut]

Amélioration prevu (si des gens m'aide):

-Accès a une base de donnée plus complète car si la musique n'est pas sortie en CD et donc pas présente dans la base de donnée CDBD on a pas les Tag. [réussie]
-Interface grafique avec "Zenity" mais je ne sais pas faire :) [reussit (avec gtkdialog)]
-Essayer de rajouter un module pour trier une biblioteck existant New en cour
-Enlever les lien deezer et imeem et refonte grafique nom et logiciel Done
-Ajouter un fichier de configuration pour la sélection du repertoire de destination Done

Merci

Ps: Voici le script pour ceux qui veulent juste le consulter sans devoir tout télécharger

#!/bin/sh
##########################################################################################################################
##						Change log:                  						##
##						-----------								##
##															##
## -Utilisation de lltag -S au lieu de MP3info (v1.0)									##
## -Correction des fautes de nortograffe :) (All)									##
## -Utilisation de genpuid© et mipcore© pour générer le puid du MP3 Musicip© (http://www.musicip.com) 			##
## -Utilisation de la BD Musicbrainz pour récupérer les tags auto (v1.3)						##
## -Ouverture de DEEZER avec la recherche demandée (v1.3)								##
## -Récupération du dernier Flash*** présent dans le /tmp/ (Merci à AnsuzPeorth) (v1.2)					##
## -Utilisation de eyeD3 pour tag v1.1 et V2.4 	 (v1.2)									##
## -Amélioration des recherches CDDB avec lltag (v1.3)									##
## -Détermine si le chargement est complet automatiquement (Merci à AnsuzPeorth) (v1.3)					##
## -Différent choix de recherche (v1.4)											##
## -Correction du bug quand plusieurs Flash** dans /tmp/	(v1.4)							##
## -Correction du bug pour la requête sur CDDB (v1.4)									##
## -Correction du bug des tag quand le PUID donne plusieurs réponses							##
## -Suppression des underscrore pour le trie des mp3 (v1.4)								##
## -Amélioration de l'affichage (v1.4)											##
## -Utilisation eyeD3 pour la définition des variables de trie (Regle le problème d'accent) (ruse de sioux) (v1.4)	##
## -Mise en Majuscule de la première lettre de chaque tag rentré manuellement (v1.4)					##
## -Conversion réalisée dans /tmp/conv pour que ça soit plus propre et rangé (v1.4)					##
## -Création d'un installeur automatique (v1.5)										##
## -Modification de la requête Imeem pour n'afficher que des musiques	(v1.5)						##
## -Ajout en prévision des images de fond et icônes (v1.5)								##
## -Ajout en prévision du raccourci dans Application>Son et videos>T1000-tag (v1.5)					##
## -Raccourci ajouté (v1.6)												##
## -Interface graphique (v1.7)												##
## -Utilisation des genres fournie par eyeD3 -l (1.7)									##
## -Modification du fichier install pour incorporer les images et icones néccesaire pour la version graphique (v1.7)	##
## -Correction de bug divers (v1.7)											##
## -Amélioration de l'exécution du script et simplification des opérations conditionnelles (v1.7)			##
## -Correction du bug avec les "/" (v1.8)										##
## -Conversion effectuée dans le répertoire /tmp/conv (v1.8)								##
## -Ajout d'une progresse bar pour montrer l'avancement du téléchargement / conversion / Puid gen (v1.8)		##
## -Ajout d'un système de configuration (v1.9)										##
## -Supression des recherches Deezer et IMEEM (v2.0)									##
## -Renomage du script en T1000-tag (v2.0)										##
## -Changement du logo (v2.0)												##
##															##
## -Afin de respecter les lois régissant internet dans mon beau pays des droits de l'Homme cette 			##
##  version sera changer prochainnement pour ne plus laisser de lien avec les sites Deezer et Imeem et devenir		##
##  un script sans ambiguité avec le Warez chose dont ce script n'est pas fait et ne sera jamais fait.			##
##															##
##												Amicalement 06011988	##
##															##
##########################################################################################################################
#
##########################
##  Auteur : 06011988	##
##     Version: 2.0	##
##     Licence: GNU	##
##########################
#
#L'auteur décline toutes responsabilités de l'utilisation illégale de T1000-tag!
#
# Clé d'utilisation de genpuid (Fourni par Musicdns.com)
key=3839dbda127e29ccd213da2be833b756
#Conversion dans le tmp
mkdir -p /tmp/conv
#Verife du fichier de conf
test -e ~/.T1000-tag
CONFIG=$?
if [ "$CONFIG" = "1" ]; then
{
export MAIN_DIALOG='
<window title="Attention" icon-name="gtk-dialog-warning" resizable="false" window_position="1">
  <vbox>
    <frame Attention>
      <text>
        <label>Aucun fichier de configuration. Merci de lancer la configuration!</label>
      </text>
    </frame>
    <hbox>
      <button ok></button>
    </hbox>
  </vbox>
</window>
'
gtkdialog --program MAIN_DIALOG
}
#fichier de conf présent test de son intégrité
else
{
	Test_dir=$(cat ~/.T1000-tag | grep "Chemin" | sed -e 's/Chemin=//')
	Test_trie=$(cat ~/.T1000-tag | grep "Trie" | sed -e 's/Trie=//')
	Test_nom=$(cat ~/.T1000-tag | grep "Nom" | sed -e 's/Nom=//')
	if [ -d "$Test_dir" ]; then
	{
		echo "config DIR OK"
	}
	else
	{
	export MAIN_DIALOG='
	<window title="Attention" icon-name="gtk-dialog-warning" resizable="false" window_position="1">
	  <vbox>
	    <frame Attention>
	      <text>
		<label>Fichier de configuration erroné!</label>
	      </text>
	    </frame>
	    <hbox>
	      <button ok></button>
	    </hbox>
	  </vbox>
	</window>
	'
        gtkdialog --program MAIN_DIALOG
	#Éviter d'avoir 3 fenêtres annonçant que le fichier de config est corrompu
	ERROR="1"
	}
	fi
	if [ "$ERROR" = "1" ] || [ "$Test_trie" = "9" ] || [ "$Test_trie" = "8" ] || [ "$Test_trie" = "7" ] || [ "$Test_trie" = "6" ] || [ "$Test_trie" = "5" ] || [ "$Test_trie" = "4" ] || [ "$Test_trie" = "3" ] || [ "$Test_trie" = "2" ] || [ "$Test_trie" = "1" ]; then
	{
		echo "config TRIE OK"
	}
	else
	{
	export MAIN_DIALOG='
	<window title="Attention" icon-name="gtk-dialog-warning" resizable="false" window_position="1">
	  <vbox>
	    <frame Attention>
	      <text>
		<label>Fichier de configuration erroné!</label>
	      </text>
	    </frame>
	    <hbox>
	      <button ok></button>
	    </hbox>
	  </vbox>
	</window>
	'
        gtkdialog --program MAIN_DIALOG
	#Éviter d'avoir 3 fenêtres annonçant que le fichier de config est corrompu
	ERROR="1"
	}
	fi
	if [ "$ERROR" = "1" ] || [ "$Test_nom" = "8" ] || [ "$Test_nom" = "7" ] || [ "$Test_nom" = "6" ] || [ "$Test_nom" = "5" ] || [ "$Test_nom" = "4" ] || [ "$Test_nom" = "3" ] || [ "$Test_nom" = "2" ] || [ "$Test_nom" = "1" ]; then
	{
		echo "config NOM OK"
	}
	else
	{
	export MAIN_DIALOG='
	<window title="Attention" icon-name="gtk-dialog-warning" resizable="false" window_position="1">
	  <vbox>
	    <frame Attention>
	      <text>
		<label>Fichier de configuration erroné!</label>
	      </text>
	    </frame>
	    <hbox>
	      <button ok></button>
	    </hbox>
	  </vbox>
	</window>
	'
	gtkdialog --program MAIN_DIALOG
	}
	fi
}
fi
#Recherche
export MAIN_DIALOG='
<window icon-name="deezaster" title="T1000-tag" resizable="false" window_position="1">
  <vbox>
    <hbox>
      <pixmap>
        <input file>/usr/share/pixmaps/T1000-tagfd.png</input>
      </pixmap>
    </hbox>
    <hbox>
    <frame Sur quel site effectuer une recherche?>
      <hbox>
        <combobox>
          <variable>search</variable>
          <item>Fichier déjà en cours de chargement</item>
        </combobox>
        <entry>
          <variable>query</variable>
          <default>Artiste ou chanson à rechercher ...</default>
        </entry>
      </hbox>
    </frame>
    </hbox>
    <hbox>
      <button ok></button>
      <button help></button>
      <button>
        <input file icon="gtk-preferences">"Configuration"</input><label>Configuration</label>
      </button>
      <button cancel></button>
    </hbox>
  </vbox>
</window>
'
# Récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program MAIN_DIALOG` 
# Créer les variables shell
eval $VARIABLES
# OK

## Supression des recherche sur deezer et IMEEM

# Quitte
if [ "$EXIT" = "Cancel" ] || [ "$EXIT" = "abort" ]; then
{
	boulet="Merci d'avoir lancer T1000-tag pour ne pas l'utiliser c'est mâlin ..."
	export MAIN_DIALOG='
<window title="Au revoir" icon-name="stop" resizable="false" window_position="1">
  <vbox>
    <frame Boulet :>
      <text>
        <label>'"$boulet"'</label>
      </text>
    </frame>
    <hbox>
      <button ok></button>
    </hbox>
  </vbox>
</window>
'
	gtkdialog --program=MAIN_DIALOG
	exit 0
}
# Aide
elif [ "$EXIT" = "Help" ]; then
{
	legal="L'auteur décline toutes responsabilités de l'utilisation illégale de T1000-tag!"
	export MAIN_DIALOG='
<window title="About" icon-name="help" resizable="false" window_position="1">
  <vbox>
    <frame Information :>
      <text use-markup="true">
        <label>"<b>Script réalisé par:</b> 06011988"</label>
      </text>
      <text>
        <label>'"$legal"'</label>
      </text>
      <text use-markup="true">
        <label>"<b>Pour tout bugs:</b>"</label>
      </text>
      <text selectable="true">
        <label>http://forum.ubuntu-fr.org/viewtopic.php?pid=2338606</label>
      </text>
    </frame>
    <hbox>
      <button ok></button>
    </hbox>
  </vbox>
</window>
'
	gtkdialog --program=MAIN_DIALOG
	T1000-tag
	exit 0
}
elif [ "$EXIT" = "Configuration" ]; then
{
export MAIN_DIALOG='
<window title="Configuration" icon-name="gtk-preferences" resizable="false" window_position="1">
 <vbox>
   <notebook labels="Dossier|Trie|Nom">
   <vbox>
     <text>
       <label>Choisir le dossier de destination :</label>
     </text>
     <hbox>
      <entry accept="directory">
        <label>Séléctionner le répertoire de destination :</label>
        <variable>FILE_DIRECTORY</variable>
      </entry>
      </hbox>
      <hbox>
      <button>
        <input file stock="gtk-open"></input><label>Séléctionner</label>
        <action type="fileselect">FILE_DIRECTORY</action>
      </button>
     </hbox>
    </vbox>
    <vbox>
      <text>
        <label>Paramètre de rangement :</label>
      </text>
      <radiobutton active="true">
        <label>Artist/</label>
        <variable>trie1</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>Album/</label>
        <variable>trie2</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>Genre/</label>
        <variable>trie3</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>Artiste/Album/</label>
        <variable>trie4</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>Artiste/Genre/</label>
        <variable>trie5</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>Genre/Artiste/</label>
        <variable>trie6</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>Genre/Album/</label>
        <variable>trie7</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>Genre/Artiste/Album/</label>
        <variable>trie8</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>Aucun</label>
        <variable>trie9</variable>
      </radiobutton>
    </vbox>
    <vbox>
      <text>
        <label>Paramètre du nom du mp3 :</label>
      </text>
      <radiobutton active="true">
        <label>titre</label>
        <variable>nom1</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>track - titre</label>
        <variable>nom2</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>artist - titre</label>
        <variable>nom3</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>album - titre</label>
        <variable>nom4</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>track - artist - titre</label>
        <variable>nom5</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>track - album - titre</label>
        <variable>nom6</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>artist - album - titre</label>
        <variable>nom7</variable>
      </radiobutton>
      <radiobutton active="true">
        <label>track - artist - album - titre</label>
        <variable>nom8</variable>
      </radiobutton>
    </vbox>
   </notebook>
   <hbox>
     <button ok></button>
     <button cancel></button>
   </hbox>
 </vbox>
</window>
'
	# Récupérer la sortie standard de Gtkdialog
	VARIABLES=`gtkdialog --program MAIN_DIALOG` 
	# Créer les variables shell
	eval $VARIABLES
	if [ "$EXIT" = "OK" ]; then
	{
		# Définition de la variable de trie
		if [ "$trie1" = "true" ]; then
		{
			TRIE="1"
		}
		elif [ "$trie2" = "true" ]; then
		{
			TRIE="2"
		}
		elif [ "$trie3" = "true" ]; then
		{
			TRIE="3"
		}
		elif [ "$trie4" = "true" ]; then
		{
			TRIE="4"
		}
		elif [ "$trie5" = "true" ]; then
		{
			TRIE="5"
		}
		elif [ "$trie6" = "true" ]; then
		{
			TRIE="6"
		}
		elif [ "$trie7" = "true" ]; then
		{
			TRIE="7"
		}
		elif [ "$trie8" = "true" ]; then
		{
			TRIE="8"
		}
		elif [ "$trie9" = "true" ]; then
		{
			TRIE="9"
		}
		fi
		#Définition des variables pour l'affichage du nom
		if [ "$nom1" = "true" ]; then
		{
			NOM="1"
		}
		elif [ "$nom2" = "true" ]; then
		{
			NOM="2"
		}
		elif [ "$nom3" = "true" ]; then
		{
			NOM="3"
		}
		elif [ "$nom4" = "true" ]; then
		{
			NOM="4"
		}
		elif [ "$nom5" = "true" ]; then
		{
			NOM="5"
		}
		elif [ "$nom6" = "true" ]; then
		{
			NOM="6"
		}
		elif [ "$nom7" = "true" ]; then
		{
			NOM="7"
		}
		elif [ "$nom8" = "true" ]; then
		{
			NOM="8"
		}
		fi
		#Définition du répertoire
		REP=$FILE_DIRECTORY
		#Création du fichion de configuration
		echo "Chemin=$REP">~/.T1000-tag
		echo "Trie=$TRIE">>~/.T1000-tag
		echo "Nom=$NOM">>~/.T1000-tag

	}
	fi
	T1000-tag
	exit 0
}
fi
# Fichier chargé complétement?
export MAIN_DIALOG='
<window title="Attention" icon-name="gtk-dialog-warning" resizable="false" window_position="1">
  <vbox>
    <frame Attention>
      <text>
        <label>Merci de lancer le chargement de la musique avant de continuer T1000-tag</label>
      </text>
    </frame>
    <hbox>
      <button ok></button>
    </hbox>
  </vbox>
</window>
'
# Récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program MAIN_DIALOG`
# Créer les variables shell
eval $VARIABLES
### Sélection du dernier fichier flv présent dans /tmp/
file=$(ls -lt /tmp/Flash* | cut -d " " -f8 | head -n1)
# OK
if [ "$EXIT" = "OK" ]; then
{
	##Fichier existant ?
        if [ -e "$file" ]; then
	{
		### Chargement du fichier test
		export MAIN_DIALOG='
<window title="Téléchargement" icon-name="dialog-info" resizable="false" window_position="1">
  <vbox>
    <frame Progress :>
      <text>
        <label>Cette étape peut prendre plus ou moin de temps selon votre connexion.</label>
      </text>
      <progressbar>
        <label>Téléchargement en cours ...</label>
        <input>i=33.33333333 ; echo $i</input>
      </progressbar>
    </frame>
   </vbox>
</window>
'
		gtkdialog --program=MAIN_DIALOG 2>/dev/null &
		var=$(ls -lt /tmp/Flash* | cut -d " " -f5 | head -n1)
		(
		until [ "$var" = "$var1" ]
			do
     				var1=$var
      				sleep 2
       				var=$(ls -lt /tmp/Flash* | cut -d " " -f5 | head -n1)
    			done
 		)
		killall gtkdialog
		export MAIN_DIALOG='
<window title="Conversion Audio" icon-name="dialog-info" resizable="false" window_position="1">
  <vbox>
    <frame Progress :>
      <text>
        <label>Cette étape peut prendre plus ou moin de temps selon la durée de la chanson.</label>
      </text>
      <progressbar>
        <label>Conversion Audio en cours ...</label>
        <input>i=66.6666666 ; echo $i</input>
      </progressbar>
    </frame>
   </vbox>
</window>
'
		gtkdialog --program=MAIN_DIALOG 2>/dev/null &
		### Copie du fichier de /tmp a /home/MP3/
		cp $file /tmp/conv/conv.flv
		### Conversion FLV->MP3
		mplayer -dumpaudio -dumpfile /tmp/conv/conv.mp3 /tmp/conv/conv.flv
		### supression du flv
		rm -f /tmp/conv/conv.flv
		### Tag
			#### Génération du PUID du mp3
			label="Génération de l'empreinte audio"
			PUID=$(genpuid $key /tmp/conv/conv.mp3 | grep " puid: " | sed -e 's/.*puid: //')
			#### Récupération des tags avec Musicbrainz© 
			wget -O /tmp/conv/.PUID http://musicbrainz.org/show/puid/?puid=$PUID
			#### Vérification des tags
			killall gtkdialog
			export MAIN_DIALOG='
<window title="'"$label"'" icon-name="dialog-info" resizable="false" window_position="1">
  <vbox>
    <frame Progress :>
      <text>
        <label>Cette étape peut prendre plus ou moin de temps selon la durée de la chanson.</label>
      </text>
      <progressbar>
        <label>'"$label"'</label>
        <input>i=99.9999999; echo $i</input>
      </progressbar>
    </frame>
   </vbox>
</window>
'
			gtkdialog --program=MAIN_DIALOG 2>/dev/null &
			verif=$(cat /tmp/conv/.PUID | grep "This <" | sed -e 's/.*<strong>//' | sed -e 's/<\/strong>.*//')			
			if [ "$verif" = "PUID" ]; then
			{
				##### Tag non trouvé sur Musicbrainz©
				killall gtkdialog
				export MAIN_DIALOG='
<window title="Tag non trouvé" icon-name="dialog-info" resizable="false" window_position="1">
  <vbox>
    <frame Info :>
      <text>
        <label>Tag non trouvé sur Musicbrainz©. Que faire rentrez les tag :</label>
      </text>
    </frame>
    <hbox>
     <button>
       <input file icon="emblem-draft">"Manuellement"</input><label>Manuellement</label>
    </button>
     <button>
       <input file icon="emblem-web">Via la CDDB</input><label>Via la base de données CDDB</label>
    </button>
    </hbox>
  </vbox>
</window>
'
				# Récupérer la sortie standard de Gtkdialog
				VARIABLES=`gtkdialog --program MAIN_DIALOG` 
				# Créer les variables shell
				eval $VARIABLES
				if [ "$EXIT" = "Via la base de données CDDB" ]; then
				{
					###### Tagage avec lltag (ID3 v1)
					label="Entrer le nom de l'artiste ou l'album puis laissez vous guider:"
					export MAIN_DIALOG='
<window title="Recherche CDDB" icon-name="help" resizable="false" window_position="1">
  <vbox>
    <text>
      <label>'"$label"'</label>
    </text>
    <entry>
      <variable>cddb</variable>
    </entry>
    <button ok></button>
  </vbox>
</window>'
					###### Récupérer la sortie standard de Gtkdialog
					VARIABLES=`gtkdialog --program MAIN_DIALOG`
					###### Créer les variables shell
					eval $VARIABLES
					###### Lancement de lltag dans un terminal
					xterm -geometry 170x60 -sb -rightbar -hold -e lltag --cddb-query "$cddb" /tmp/conv/conv.mp3
					use_lltag="1"
				}
				elif [ "$EXIT" = "Manuellement" ]; then
				{
					###### Tagage manuel
					export MAIN_DIALOG='
<window title="Rentrer les tags manuellement" icon-name="help" resizable="false" window_position="1">
  <vbox>
    <hbox>
      <text>
        <label>Artiste :</label>
      </text>
      <entry>
        <variable>martiste</variable>
      </entry>
    </hbox>
    <hbox>
      <text>
        <label>Album :  </label>
      </text>
      <entry>
        <variable>malbum</variable>
      </entry>
    </hbox>
    <hbox>
      <text>
	<label>Track :  </label>
      </text>
      <entry>
	<variable>mtrack</variable>
      </entry>
    </hbox>
    <hbox>
      <text>
        <label>Genre :  </label>
      </text>
      <combobox>
        <variable>mgenre</variable>
        <item>Blues</item>
        <item>A Cappella</item>
        <item>Acid</item>
        <item>Acid Punk</item>
        <item>Acoustic</item>
        <item>Alternative</item>
        <item>AlternRock</item>
        <item>Ambient</item>
        <item>Anime</item>
        <item>Avantgarde</item>
        <item>Ballad</item>
        <item>Bass</item>
        <item>Beat</item>
        <item>Bebob</item>
        <item>Big Band</item>
        <item>Black Metal</item>
        <item>Bluegrass</item>
        <item>Booty Bass</item>
        <item>BritPop</item>
        <item>Cabaret</item>
        <item>Celtic</item>
        <item>Chamber Music</item>
        <item>Chanson</item>
        <item>Chorus</item>
        <item>Christian Gangsta Rap</item>
        <item>Christian Rap</item>
        <item>Christian Rock</item>
        <item>Classic Rock</item>
        <item>Classical</item>
        <item>Club</item>
        <item>Club-House</item>
        <item>Comedy</item>
        <item>Contemporary Christian</item>
        <item>Country</item>
        <item>Crossover</item>
        <item>Cult</item>
        <item>Dance</item>
        <item>Dance Hall</item>
        <item>Darkwave</item>
        <item>Death Metal</item>
        <item>Disco</item>
        <item>Dream</item>
        <item>Drum & Bass</item>
        <item>Drum Solo</item>
        <item>Duet</item>
        <item>Easy Listening</item>
        <item>Electronic</item>
        <item>Ethnic</item>
        <item>Euro-House</item>
        <item>Euro-Techno</item>
        <item>Eurodance</item>
        <item>Fast  Fusion</item>
        <item>Folk</item>
        <item>Folk-Rock</item>
        <item>Folklore</item>
        <item>Freestyle</item>
        <item>Funk</item>
        <item>Fusion</item>
        <item>Game</item>
        <item>Gangsta Rap</item>
        <item>Goa</item>
        <item>Gospel</item>
        <item>Gothic</item>
        <item>Gothic Rock</item>
        <item>Grunge</item>
        <item>Hard Rock</item>
        <item>Hardcore</item>
        <item>Heavy Metal</item>
        <item>Hip-Hop</item>
        <item>House</item>
        <item>Humour</item>
        <item>Indie</item>
        <item>Industrial</item>
        <item>Instrumental</item>
        <item>Instrumental Pop</item>
        <item>Instrumental Rock</item>
        <item>Jazz</item>
        <item>Jazz+Funk</item>
        <item>JPop</item>
        <item>Jungle</item>
        <item>Latin</item>
        <item>Lo-Fi</item>
        <item>Meditative</item>
        <item>Merengue</item>
        <item>Metal</item>
        <item>Musical</item>
        <item>National Folk</item>
        <item>Native American</item>
        <item>Negerpunk</item>
        <item>New Age</item>
        <item>New Wave</item>
        <item>Noise</item>
        <item>Oldies</item>
        <item>Opera</item>
        <item>Other</item>
        <item>Polka</item>
        <item>Polsk Punk</item>
        <item>Pop</item>
        <item>Pop / Funk</item>
        <item>Pop-Folk</item>
        <item>Porn Groove</item>
        <item>Power Ballad</item>
        <item>Pranks</item>
        <item>Primus</item>
        <item>Progressive Rock</item>
        <item>Psychedelic</item>
        <item>Psychedelic Rock</item>
        <item>Punk</item>
        <item>Punk Rock</item>
        <item>R&B</item>
        <item>Rap</item>
        <item>Rave</item>
        <item>Reggae</item>
        <item>Retro</item>
        <item>Revival</item>
        <item>Rhythmic Soul</item>
        <item>Rock</item>
        <item>Rock & Roll</item>
        <item>Rock/Pop</item>
        <item>Salsa</item>
        <item>Samba</item>
        <item>Satire</item>
        <item>Showtunes</item>
        <item>Ska</item>
        <item>Slow Jam</item>
        <item>Slow Rock</item>
        <item>Sonata</item>
        <item>Soul</item>
        <item>Sound Clip</item>
        <item>Soundtrack</item>
        <item>Southern Rock</item>
        <item>Space</item>
        <item>Speech</item>
        <item>Swing</item>
        <item>Symphonic Rock</item>
        <item>Symphony</item>
        <item>Synthpop</item>
        <item>Tango</item>
        <item>Techno</item>
        <item>Techno-Industrial</item>
        <item>Terror</item>
        <item>Thrash Metal</item> 
        <item>Top 40</item>
        <item>Trailer</item>
        <item>Trance</item>
        <item>Tribal</item>
        <item>Trip-Hop</item>
        <item>Vocal</item>
      </combobox>
    </hbox>
    <hbox>
      <text>
        <label>Titre :  </label>
      </text>
      <entry>
        <variable>mtitre</variable>
      </entry>
    </hbox>
    <button ok></button>
  </vbox>
</window>'
					###### Récupérer la sortie standard de Gtkdialog
					VARIABLES=`gtkdialog --program MAIN_DIALOG`
					###### Créer les variables shell
					eval $VARIABLES
					###### Mise en majuscule de la première lettre de chaque variable (plus propre)
					martiste=$(echo "$martiste" | sed 's/^./\u&/' | sed -e 's/\//-/g')
					malbum=$(echo "$malbum" | sed 's/^./\u&/' | sed -e 's/\//-/g')
					mgenre=$(echo "$mgenre" | sed 's/^./\u&/' | sed -e 's/\//-/g')
					mtitre=$(echo "$mtitre" | sed 's/^./\u&/' | sed -e 's/\//-/g')
					mtrack=$(echo "$mtrack" | sed 's/^./\u&/' | sed -e 's/\//-/g')
					eyeD3 -a "$martiste" -A "$malbum" -t "$mtitre" -G "$mgenre" -n "$mbtrack" /tmp/conv/conv.mp3
				}
				fi 
			}
			else
			{
				##### Tag trouvé sur Musicbrainz©
				##### Définition des variables
				mbartist=$(cat /tmp/conv/.PUID | grep "<table class=\"artisttitle\">" | sed -e 's/.*artist page">//g' | sed -e 's/<\/a.*//' | sed -e "s/&#39;/'/g" | head -n1 | sed -e 's/\//-/g')
				mbalbum=$(cat /tmp/conv/.PUID | grep "/release/" | sed -e 's/.*">//g' | sed -e 's/<\/a.*//' | sed -e "s/&#39;/'/g" | head -n1 | sed -e 's/\//-/g')
				mbtitre=$(cat /tmp/conv/.PUID | grep "/track/" | sed -e 's/.*">//g' | sed -e 's/<\/a.*//' | sed -e "s/&#39;/'/g" | head -n1 | sed -e 's/\//-/g')
				mbtrack=$(cat /tmp/conv/.PUID | grep "no\">" | sed -e 's/.*">//g' | sed -e 's/<\/t.*//' | sed -e "s/&#39;/'/g" | head -n1 | sed -e 's/\//-/g')
				##### Affichage des Tags trouvés
				killall gtkdialog
				export MAIN_DIALOG='
<window title="tag trouvé sur Musicbrainz©" icon-name="help" resizable="false" window_position="1">
  <vbox>
    <hbox>
      <frame Artiste : >
        <text>
          <label># '"$mbartist"'</label>
        </text>
      </frame>
    </hbox>
    <hbox>
      <frame Album : >
        <text>
          <label># '"$mbalbum"'</label>
        </text>
      </frame>
    </hbox>
    <hbox>
      <frame Titre : >
        <text>
          <label># '"$mbtitre"'</label>
        </text>
      </frame>
    </hbox>
    <hbox>
      <frame Track : >
        <text>
          <label># '"$mbtrack"'</label>
        </text>
      </frame>
    </hbox>
    <hbox>
      <frame Les tags de Musibrainz© sont conforme ?>
        <button yes></button>
        <button no></button>
      </frame>
    </hbox>
  </vbox>
</window>'
					###### Récupérer la sortie standard de Gtkdialog
					VARIABLES=`gtkdialog --program MAIN_DIALOG`
					###### Créer les variables shell
					eval $VARIABLES	
				##### Vérification des Tags
				if [ "$EXIT" = "Yes" ]; then
				{
					###### Tag conforme puis définition du Genre (pas donné par Musicbrainz©)
					export MAIN_DIALOG='
<window title="Entrez le genre" icon-name="help" resizable="false" window_position="1">
  <vbox>
    <frame Entrez le genre>
      <combobox>
        <variable>mgenre</variable>
        <item>Blues</item>
        <item>A Cappella</item>
        <item>Acid</item>
        <item>Acid Punk</item>
        <item>Acoustic</item>
        <item>Alternative</item>
        <item>AlternRock</item>
        <item>Ambient</item>
        <item>Anime</item>
        <item>Avantgarde</item>
        <item>Ballad</item>
        <item>Bass</item>
        <item>Beat</item>
        <item>Bebob</item>
        <item>Big Band</item>
        <item>Black Metal</item>
        <item>Bluegrass</item>
        <item>Booty Bass</item>
        <item>BritPop</item>
        <item>Cabaret</item>
        <item>Celtic</item>
        <item>Chamber Music</item>
        <item>Chanson</item>
        <item>Chorus</item>
        <item>Christian Gangsta Rap</item>
        <item>Christian Rap</item>
        <item>Christian Rock</item>
        <item>Classic Rock</item>
        <item>Classical</item>
        <item>Club</item>
        <item>Club-House</item>
        <item>Comedy</item>
        <item>Contemporary Christian</item>
        <item>Country</item>
        <item>Crossover</item>
        <item>Cult</item>
        <item>Dance</item>
        <item>Dance Hall</item>
        <item>Darkwave</item>
        <item>Death Metal</item>
        <item>Disco</item>
        <item>Dream</item>
        <item>Drum & Bass</item>
        <item>Drum Solo</item>
        <item>Duet</item>
        <item>Easy Listening</item>
        <item>Electronic</item>
        <item>Ethnic</item>
        <item>Euro-House</item>
        <item>Euro-Techno</item>
        <item>Eurodance</item>
        <item>Fast  Fusion</item>
        <item>Folk</item>
        <item>Folk-Rock</item>
        <item>Folklore</item>
        <item>Freestyle</item>
        <item>Funk</item>
        <item>Fusion</item>
        <item>Game</item>
        <item>Gangsta Rap</item>
        <item>Goa</item>
        <item>Gospel</item>
        <item>Gothic</item>
        <item>Gothic Rock</item>
        <item>Grunge</item>
        <item>Hard Rock</item>
        <item>Hardcore</item>
        <item>Heavy Metal</item>
        <item>Hip-Hop</item>
        <item>House</item>
        <item>Humour</item>
        <item>Indie</item>
        <item>Industrial</item>
        <item>Instrumental</item>
        <item>Instrumental Pop</item>
        <item>Instrumental Rock</item>
        <item>Jazz</item>
        <item>Jazz+Funk</item>
        <item>JPop</item>
        <item>Jungle</item>
        <item>Latin</item>
        <item>Lo-Fi</item>
        <item>Meditative</item>
        <item>Merengue</item>
        <item>Metal</item>
        <item>Musical</item>
        <item>National Folk</item>
        <item>Native American</item>
        <item>Negerpunk</item>
        <item>New Age</item>
        <item>New Wave</item>
        <item>Noise</item>
        <item>Oldies</item>
        <item>Opera</item>
        <item>Other</item>
        <item>Polka</item>
        <item>Polsk Punk</item>
        <item>Pop</item>
        <item>Pop / Funk</item>
        <item>Pop-Folk</item>
        <item>Porn Groove</item>
        <item>Power Ballad</item>
        <item>Pranks</item>
        <item>Primus</item>
        <item>Progressive Rock</item>
        <item>Psychedelic</item>
        <item>Psychedelic Rock</item>
        <item>Punk</item>
        <item>Punk Rock</item>
        <item>R&B</item>
        <item>Rap</item>
        <item>Rave</item>
        <item>Reggae</item>
        <item>Retro</item>
        <item>Revival</item>
        <item>Rhythmic Soul</item>
        <item>Rock</item>
        <item>Rock & Roll</item>
        <item>Rock/Pop</item>
        <item>Salsa</item>
        <item>Samba</item>
        <item>Satire</item>
        <item>Showtunes</item>
        <item>Ska</item>
        <item>Slow Jam</item>
        <item>Slow Rock</item>
        <item>Sonata</item>
        <item>Soul</item>
        <item>Sound Clip</item>
        <item>Soundtrack</item>
        <item>Southern Rock</item>
        <item>Space</item>
        <item>Speech</item>
        <item>Swing</item>
        <item>Symphonic Rock</item>
        <item>Symphony</item>
        <item>Synthpop</item>
        <item>Tango</item>
        <item>Techno</item>
        <item>Techno-Industrial</item>
        <item>Terror</item>
        <item>Thrash Metal</item> 
        <item>Top 40</item>
        <item>Trailer</item>
        <item>Trance</item>
        <item>Tribal</item>
        <item>Trip-Hop</item>
        <item>Vocal</item>
      </combobox>
    </frame>
    <button ok></button>
  </vbox>
</window>'
					###### Récupérer la sortie standard de Gtkdialog
					VARIABLES=`gtkdialog --program MAIN_DIALOG`
					###### Créer les variables shell
					eval $VARIABLES
					eyeD3 -a "$mbartist" -A "$mbalbum" -t "$mbtitre" -G "$mgenre" -n "$mbtrack" /tmp/conv/conv.mp3	
				}
				elif [ "$EXIT" = "No" ]; then
				{
					###### Tag non conforme
					export MAIN_DIALOG='
<window title="Tag non trouvé" icon-name="dialog-info" resizable="false" window_position="1">
  <vbox>
    <frame Info :>
      <text>
	<label>Tag non trouvé sur Musicbrainz©. Que faire, rentrer les tag :</label>
      </text>
    </frame>
    <hbox>
     <button>
       <input file icon="emblem-draft">"Manuellement"</input><label>Manuellement</label>
    </button>
     <button>
       <input file icon="emblem-web">Via la CDDB</input><label>Via la base de données CDDB</label>
    </button>
    </hbox>
  </vbox>
</window>
'
					# Récupérer la sortie standard de Gtkdialog
					VARIABLES=`gtkdialog --program MAIN_DIALOG` 
					# Créer les variables shell
					eval $VARIABLES
					if [ "$EXIT" = "Via la base de données CDDB" ]; then
					{
						###### Tagage avec lltag (ID3 v1)
						label="Entrer le nom de l'artiste ou l'album puis laissez vous guider:"
						export MAIN_DIALOG='
<window title="Recherche CDDB" icon-name="help" resizable="false" window_position="1">
  <vbox>
    <text>
      <label>'"$label"'</label>
    </text>
    <entry>
      <variable>cddb</variable>
    </entry>
    <button ok></button>
  </vbox>
</window>'
						###### Récupérer la sortie standard de Gtkdialog
						VARIABLES=`gtkdialog --program MAIN_DIALOG`
						###### Créer les variables shell
						eval $VARIABLES
						###### Lancement de lltag dans un terminal
						xterm -geometry 170x60 -sb -rightbar -hold -e lltag --cddb-query "$cddb" /tmp/conv/conv.mp3
						use_lltag="1"
					}
					elif [ "$EXIT" = "Manuellement" ]; then
					{
						###### Tagage manuel
						export MAIN_DIALOG='
<window title="Rentré les tags manuellement" icon-name="help" resizable="false" window_position="1">
  <vbox>
    <hbox>
      <text>
	<label>Artiste :</label>
      </text>
      <entry>
	<variable>martiste</variable>
      </entry>
    </hbox>
    <hbox>
      <text>
	<label>Album :  </label>
      </text>
      <entry>
	<variable>malbum</variable>
      </entry>
    </hbox>
    <hbox>
      <text>
	<label>Track :  </label>
      </text>
      <entry>
	<variable>mtrack</variable>
      </entry>
    </hbox>
    <hbox>
      <text>
	<label>Genre :  </label>
      </text>
      <combobox>
	<variable>mgenre</variable>
	<item>Blues</item>
	<item>A Cappella</item>
	<item>Acid</item>
	<item>Acid Punk</item>
	<item>Acoustic</item>
	<item>Alternative</item>
	<item>AlternRock</item>
	<item>Ambient</item>
	<item>Anime</item>
	<item>Avantgarde</item>
	<item>Ballad</item>
	<item>Bass</item>
	<item>Beat</item>
	<item>Bebob</item>
	<item>Big Band</item>
	<item>Black Metal</item>
	<item>Bluegrass</item>
	<item>Booty Bass</item>
	<item>BritPop</item>
	<item>Cabaret</item>
	<item>Celtic</item>
	<item>Chamber Music</item>
	<item>Chanson</item>
	<item>Chorus</item>
	<item>Christian Gangsta Rap</item>
	<item>Christian Rap</item>
	<item>Christian Rock</item>
	<item>Classic Rock</item>
	<item>Classical</item>
	<item>Club</item>
	<item>Club-House</item>
	<item>Comedy</item>
	<item>Contemporary Christian</item>
	<item>Country</item>
	<item>Crossover</item>
	<item>Cult</item>
	<item>Dance</item>
	<item>Dance Hall</item>
	<item>Darkwave</item>
	<item>Death Metal</item>
	<item>Disco</item>
	<item>Dream</item>
	<item>Drum & Bass</item>
	<item>Drum Solo</item>
	<item>Duet</item>
	<item>Easy Listening</item>
	<item>Electronic</item>
	<item>Ethnic</item>
	<item>Euro-House</item>
	<item>Euro-Techno</item>
	<item>Eurodance</item>
	<item>Fast  Fusion</item>
	<item>Folk</item>
	<item>Folk-Rock</item>
	<item>Folklore</item>
	<item>Freestyle</item>
	<item>Funk</item>
	<item>Fusion</item>
	<item>Game</item>
	<item>Gangsta Rap</item>
	<item>Goa</item>
	<item>Gospel</item>
	<item>Gothic</item>
	<item>Gothic Rock</item>
	<item>Grunge</item>
	<item>Hard Rock</item>
	<item>Hardcore</item>
	<item>Heavy Metal</item>
	<item>Hip-Hop</item>
	<item>House</item>
	<item>Humour</item>
	<item>Indie</item>
	<item>Industrial</item>
	<item>Instrumental</item>
	<item>Instrumental Pop</item>
	<item>Instrumental Rock</item>
	<item>Jazz</item>
	<item>Jazz+Funk</item>
	<item>JPop</item>
	<item>Jungle</item>
	<item>Latin</item>
	<item>Lo-Fi</item>
	<item>Meditative</item>
	<item>Merengue</item>
	<item>Metal</item>
	<item>Musical</item>
	<item>National Folk</item>
	<item>Native American</item>
	<item>Negerpunk</item>
	<item>New Age</item>
	<item>New Wave</item>
	<item>Noise</item>
	<item>Oldies</item>
	<item>Opera</item>
	<item>Other</item>
	<item>Polka</item>
	<item>Polsk Punk</item>
	<item>Pop</item>
	<item>Pop / Funk</item>
	<item>Pop-Folk</item>
	<item>Porn Groove</item>
	<item>Power Ballad</item>
	<item>Pranks</item>
	<item>Primus</item>
	<item>Progressive Rock</item>
	<item>Psychedelic</item>
	<item>Psychedelic Rock</item>
	<item>Punk</item>
	<item>Punk Rock</item>
	<item>R&B</item>
	<item>Rap</item>
	<item>Rave</item>
	<item>Reggae</item>
	<item>Retro</item>
	<item>Revival</item>
	<item>Rhythmic Soul</item>
	<item>Rock</item>
	<item>Rock & Roll</item>
	<item>Rock/Pop</item>
	<item>Salsa</item>
	<item>Samba</item>
	<item>Satire</item>
	<item>Showtunes</item>
	<item>Ska</item>
	<item>Slow Jam</item>
	<item>Slow Rock</item>
	<item>Sonata</item>
	<item>Soul</item>
	<item>Sound Clip</item>
	<item>Soundtrack</item>
	<item>Southern Rock</item>
	<item>Space</item>
	<item>Speech</item>
	<item>Swing</item>
	<item>Symphonic Rock</item>
	<item>Symphony</item>
	<item>Synthpop</item>
	<item>Tango</item>
	<item>Techno</item>
	<item>Techno-Industrial</item>
	<item>Terror</item>
	<item>Thrash Metal</item> 
	<item>Top 40</item>
	<item>Trailer</item>
	<item>Trance</item>
	<item>Tribal</item>
	<item>Trip-Hop</item>
	<item>Vocal</item>
      </combobox>
    </hbox>
    <hbox>
      <text>
	<label>Titre :  </label>
      </text>
      <entry>
	<variable>mtitre</variable>
      </entry>
    </hbox>
    <button ok></button>
  </vbox>
</window>'
						###### Récupérer la sortie standard de Gtkdialog
						VARIABLES=`gtkdialog --program MAIN_DIALOG`
						###### Créer les variables shell
						eval $VARIABLES
						###### Mise en majuscule de la première lettre de chaque variable (plus propre)
						martiste=$(echo "$martiste" | sed 's/^./\u&/' | sed -e 's/\//-/g')
						malbum=$(echo "$malbum" | sed 's/^./\u&/' | sed -e 's/\//-/g')
						mgenre=$(echo "$mgenre" | sed 's/^./\u&/' | sed -e 's/\//-/g')
						mtitre=$(echo "$mtitre" | sed 's/^./\u&/' | sed -e 's/\//-/g')
						mtrack=$(echo "$mtrack" | sed 's/^./\u&/' | sed -e 's/\//-/g')
						eyeD3 -a "$martiste" -A "$malbum" -t "$mtitre" -G "$mgenre" -n "$mbtrack" /tmp/conv/conv.mp3
					}
					fi
				}
				fi
			}
			fi
		export MAIN_DIALOG='
<window title="Insertion terminée" icon-name="dialog-info" resizable="false" window_position="1">
  <vbox>
    <frame Info :>
      <text>
        <label>Insertion des Tag (ID3 v2.4) terminé !</label>
      </text>
    </frame>
    <hbox>
      <button ok></button>
    </hbox>
  </vbox>
</window>
'
		gtkdialog --program=MAIN_DIALOG
		### Supression du fichier .PUID
		rm -f /tmp/conv/.PUID
		### Extraction des variables (ruse siou)
		eyeD3 --rename="%Asupr1%asupr2%tsupr3%n" /tmp/conv/conv.mp3
		### Définition des variables
		ARTIST=$(ls -lt /tmp/conv/*.mp3 | head -n1 | sed -e 's/.*tmp\/conv\///' | sed -e 's/supr1.*//' | sed -e 's/\//-/g')
		ALBUM=$(ls -lt /tmp/conv/*.mp3 | head -n1 | sed -e 's/.*tmp\/conv\///' | sed -e 's/.*supr1//' | sed -e 's/supr2.*//' | sed -e 's/\//-/g')
		TITRE=$(ls -lt /tmp/conv/*.mp3 | head -n1 | sed -e 's/.*tmp\/conv\///' | sed -e 's/.*supr2//' | sed -e 's/supr3.*//' | sed -e 's/\//-/g')
		NUMBER=$(ls -lt /tmp/conv/*.mp3 | head -n1 | sed -e 's/.*tmp\/conv\///' | sed -e 's/.*supr3//' | sed -e 's/.mp3.*//' | sed -e 's/\//-/g')
		GENRE=$(echo $mgenre | sed -e 's/\//-/g')
		MOVE=$(ls -lt /tmp/conv/*.mp3 | head -n1 | sed -e 's/.*tmp\/conv\///')
		### Si on a tag avec la CDDB les variables seront modifiées afin de garder les accents correctement 		
		if [ "$use_lltag" = "1" ];then
		{
			ARTIST=$(lltag -S /tmp/conv/"$MOVE" | grep "ARTIST" | sed -e 's/.*=//' | sed -e 's/\//-/g')
			ALBUM=$(lltag -S /tmp/conv/"$MOVE" | grep "ALBUM" | sed -e 's/.*=//' | sed -e 's/\//-/g')
			TITRE=$(lltag -S /tmp/conv/"$MOVE" | grep "TITLE" | sed -e 's/.*=//' | sed -e 's/\//-/g')
			NUMBER=$(lltag -S /tmp/conv/"$MOVE" | grep "NUMBER" | sed -e 's/.*=//' | sed -e 's/\//-/g')
			GENRE=$(lltag -S /tmp/conv/"$MOVE" | grep "GENRE" | sed -e 's/.*=//' | sed -e 's/\//-/g')
		}
		fi
		### Recuperation des paramètres
			dir=$(cat ~/.T1000-tag | grep "Chemin" | sed -e 's/Chemin=//')
			trie=$(cat ~/.T1000-tag | grep "Trie" | sed -e 's/Trie=//')
			nom=$(cat ~/.T1000-tag | grep "Nom" | sed -e 's/Nom=//')
		### Création des dossiers selon la configuration
			case "$trie" in
				1 ) dir2="$dir/$ARTIST/";;
				2 ) dir2="$dir/$ALBUM/";;
				3 ) dir2="$dir/$GENRE/";;
				4 ) dir2="$dir/$ARTIST/$ALBUM/";;
				5 ) dir2="$dir/$ARTIST/$GENRE/";;
				6 ) dir2="$dir/$GENRE/$ARTIST/";;
				7 ) dir2="$dir/$GENRE/$ALBUM/";;
				8 ) dir2="$dir/$GENRE/$ARTIST/$ALBUM/";;
				9 ) dir2="$dir/";;
			esac
			mkdir -p "$dir2"
		### Déplacement du mp3 dans le dossier selon la configuration
			case "$nom" in
				1 ) move2="$TITRE.mp3";;
				2 ) move2="$NUMBER-$TITRE.mp3";;
				3 ) move2="$ARTIST-$TITRE.mp3";;
				4 ) move2="$ALBUM-$TITRE.mp3";;
				5 ) move2="$NUMBER-$ARTIST-$TITRE.mp3";;
				6 ) move2="$NUMBER-$ALBUM-$TITRE.mp3";;
				7 ) move2="$ARTIST-$ALBUM-$TITRE.mp3";;
				8 ) move2="$NUMBER-$ARTIST-$ALBUM-$TITRE.mp3";;
			esac
			mv /tmp/conv/"$MOVE" "$dir2""$move2"
		export MAIN_DIALOG='
<window title="Programme terminé" icon-name="redo" resizable="false" window_position="1">
  <vbox>
    <frame Info :>
      <text>
        <label>Toute les opérations ont été effectuée avec succès la musique a été rangée dans :</label>
      </text>
      <text>
        <label>'"$dir2$move2"'</label>
      </text>
    </frame>
    <hbox>
      <button ok></button>
    </hbox>
  </vbox>
</window>
'
		gtkdialog --program=MAIN_DIALOG
	}
	else
	{
		export MAIN_DIALOG='
<window title="Erreur" icon-name="error" resizable="false" window_position="1">
  <vbox>
    <frame Info :>
      <text>
        <label>Une erreur est survenue!</label>
      </text>
    </frame>
    <hbox>
      <button ok></button>
    </hbox>
  </vbox>
</window>
'
		gtkdialog --program=MAIN_DIALOG
	}
	fi
}
fi
#Demande de relancement de T1000-tag
export MAIN_DIALOG='
<window title="T1000-tag" icon-name="reload" resizable="false" window_position="1">
  <vbox>
    <frame Question :>
      <text>
        <label>Relancer T1000-tag ?</label>
      </text>
    </frame>
    <hbox>
      <button yes></button>
      <button no></button>
    </hbox>
  </vbox>
</window>
'
###### Récupérer la sortie standard de Gtkdialog
VARIABLES=`gtkdialog --program MAIN_DIALOG`
###### Créer les variables shell
eval $VARIABLES
if [ "$EXIT" = "Yes" ]; then
{
	T1000-tag
}
fi
exit 0

Dernière modification par re06011988 (Le 23/01/2009, à 19:59)

Hors ligne

#2 Le 09/01/2009, à 00:21

AnsuzPeorth

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Je sais pas si c'est tres legal tout ca.....??? smile
J'ai fait un peu pret la meme chose y a un moment avec autoglade (pour usage privé...y a un bug avec commande eyed3, manque ", pas a jour sur cette version mais fonctionne qd meme sauf tag):
script à essayer que par curiosité, je décline toutes responsabilitées , blablalba
Dépendance eyeD3, mplayer, autoglade et zenity
autoglade pour ubuntu

Dernière modification par AnsuzPeorth (Le 09/01/2009, à 00:32)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#3 Le 09/01/2009, à 00:32

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

tu recupere les tag directement du site deezer?

Tu pense pouvoir m'aider a améliorer mon script?

PS: a quoi sert autoglade je ne connai pas cette outil

Dernière modification par re06011988 (Le 09/01/2009, à 00:35)

Hors ligne

#4 Le 09/01/2009, à 00:35

AnsuzPeorth

Re : [Aide] Script qui télécharge convertie tag et range les mp3

non, les tags tu les saisies tranquillement, pendant que le morceau se telecharge.....
Telecharge le script, instale autoglade (ca te servirra pour les script bash), regarde l'interface le code, l'interface pourrait convenir a ton script (j'ai pas lu).
Faut ajouter des " autour de l'adresses dans commande eyed3

edit:autoglade c'est le gui, ce qui remplace zenity...loin derrier zenity, ou alors regarde gtkdialog, encore mieux je trouve

Dernière modification par AnsuzPeorth (Le 09/01/2009, à 00:36)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#5 Le 09/01/2009, à 00:43

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

oki merci vais regarder ton code et prendre a droite et a gauche des morceaux utile si sa te gene pas le probleme c'est de metre lltag sous autoglade ou zenity

Hors ligne

#6 Le 09/01/2009, à 00:45

AnsuzPeorth

Re : [Aide] Script qui télécharge convertie tag et range les mp3

re06011988 a écrit :

Bug connu:

-Présence d'un but en flash flv sur le site qui créer un conflit (Pour résoudre le bug suprimer la pub du repertoire /tmp)
-Présence d'autre fichier Flash****** dans le repertoire /tmp (Quitter firefox et suprimer tous les fichiers Flash*** restant et relancer firefox avec seulement le site de streamming)

Amelioration prevu (si des gens m'aide):

-Accès a une base de donnée plus complète car si la musique n'est pas sortie en CD et donc pas présente dans la base de donnée CDBD on a pas les Tag.
-Interface grafique avec "Zenity" mais je ne sais pas faire smile

Merci

Pour la presence de flash, regarde comment j'ai fait, je verifie au demarrage, avec un sleep tant de charger firefox, si flash present, je ne me sert que du plus ressent.

Pour le gui, comme je le dis dans l'edit plus haut, zenity est simple, trop simple, autoglade simple aussi mais beaucoup plus performant (pas parfait encore, regarde le script de frafra sur multiboot, le dernier post, l'interface est via autoglade). Celui que je trouve le mieux (ca fait que 2 jours que j'y regarde), c'est gtkdialog, beaucoup de code a entrer (ou utilise glade mais limité), mais tu est presque completemtn libre de ton interface.......
Enfin, chacun ses avantages et inconvenients.


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#7 Le 09/01/2009, à 01:28

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Merci pour les bug cela va me les regler assez vite. Pour le gui je comprend plus ou moin faut que je lise un peu la doc le seule hic c'est la partie avec lltag que je ne pense pas pouvoir mettre en mode gui a moin de trouver le même logiciel que amarok qui fait une empreinte audio et qui la soumet a musikbrainz ce qui renderai le script plus automatique mais je ne sais pas comment il font

Hors ligne

#8 Le 09/01/2009, à 01:42

AnsuzPeorth

Re : [Aide] Script qui télécharge convertie tag et range les mp3

autoglade c'est psa compliqué, faut juste prendre en main glade, c'est tout. Y a deux trois truc a savoir, mais avec l'exemple de "deezerip", tu as un petit modele de ce qu'on peut faire facilement.
Pour lltag & co, je connais pas, ca me gene psa de saisir les tags a la mains, c vite fait.Le script tourne en fond, je prends que de temps en temps un morceau (radiodeezer)....Quand a l'integrer, c'est pas compliqué, réussi deja à recuperer les tags avec seulement une partie du fichier mp3 (fash ici). Pour 'lintegrer, y 'a rien a faire pour ainsi dire....


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#9 Le 09/01/2009, à 12:09

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Ben lltag a son interface a lui big_smile

Apres je pense que en bossant avec musicbrainz il y a moyen de tout integrer et faire propre

Et apres mettre une option triage pour leur biblioteque qui serait mal aranger et sans tag (comme beaucoup de gens)

Hors ligne

#10 Le 09/01/2009, à 13:44

syubuntu

Re : [Aide] Script qui télécharge convertie tag et range les mp3

SAlut moi j'avais trouvé celui la  je ne sais plus ou (créé par Otaku_666, revue et corrigé par yakusa77)
j'ai essayé ton deezaster est j'ai eu un probleme parceque il utilise les id3tag1 :

 Genre Chanson Française is not supported in ID3v1 MP3 tags
  Tagging.

Une autre question quelle est la différence qui fait que tous les scripts ne marchent pas pour deezer.
Sinon dsl mais je ne peux pas t'aider.
++

#!/bin/bash
#fconvert
#ce programme permet de telecharger le fichier
#de type flash situé dans /tmp
#créé par Otaku_666, revue et corrigé par yakusa77
#Dépendances : zenity , mencoder, mplayer, awk
#version 1.4
####### changelog ###########################################
#-fonction test des dependances
#-utilisation de mencoder pour la convertion avi
#-ajout de divers message d'erreur durant l'utilsation du en cas d'echec
#-correction des doublons de flv par suppresion de la premiere copie sans renommage
#-ajout de 2 fenetre d'information
#-difference message d'erreur selon les cas
#-proposition d'installation des dependances manquantes
####### definition des fonctions ############################
function CHECKDEP() {
	manque=()
	liste=(mencoder mplayer zenity gawk)
	i=0
#while ((i < ${#liste[@]} ))
#do
#	li="${liste[$i]}"
#	test=`dpkg -s $li | grep -i "Status"`
#	(( i = i + 1 ))
#if ! [ "${test}" == "Status: install ok installed" ]; then
#	manque=(${manque[@]} $li)
#fi
#done
if ! [ -z "${manque}" ]; then
	texte="${manque[@]}";
	
install=$(zenity --list \
	--radiolist \
	--text="Il vous maque ${texte} .\nSouhaitez vous installé les dépendances manquante ?" \
	--column "" --column "" --column="choix" \
	--hide-column="2" \
	TRUE "1" "oui biensur cretin!" \
	FALSE "2" "non je le ferait plus tard tampis")
	annuler
	if [ $install == "1" ]; then 
		xterm -e sudo apt-get install -y --force-yes ${texte} 
	fi
	if [ $install == "2" ]; then
		zenity --error \
		--width 800 \
		--title "Vérification des dépendances manquantes" \
		--text="il manque les dépendances suivante ${texte}\n sans elles le script ne peut pas continué"
		exit
	fi
fi
}

function annuler() { 
if [ "${PIPESTATUS[0]}" != "0" ]; then
	exit
fi
}

#....
function CONVERTION_AVI() {
cp ./"$flash" /home/"$USER"/fconvert/avi/"$NAME".flv
cd /home/"$USER"/fconvert/avi
mencoder -oac mp3lame -lameopts cbr=64 -ovc xvid -xvidencopts bitrate=500 "$NAME".flv -o "$NAME".avi 2>&1 \
| awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3; fflush();}' \
| zenity \
	--progress \
	--title="Conversion en cours..." \
	--text="Votre vidéo est en cours de convertion,\ncette opération peut être plus ou moins longue\nen fonction de la taille et de la durée de votre\nvidéo alors patience..." \
	--auto-close
rm "$NAME".flv
}

#....
function CONVERTION_MP3() {
cp ./"$flash" /home/"$USER"/fconvert/mp3/"$NAME".flv
cd /home/"$USER"/fconvert/mp3
mplayer "$NAME".flv -dumpaudio -dumpfile "$NAME".mp3 | ENCODING 
rm "$NAME".flv
}

#....
function ENCODING() {
	zenity \
	--progress \
	--title="Fconvert" \
	--text="Encodage en cours..." \
	--pulsate \
	--auto-close
}

#....
function PB_ENCODAGE() {
	zenity \
	--error \
	--title="Fconvert : ERREUR" \
	--text="Il y a eu un probleme d'encodage.\nla page a peut être été fermer."
exit
}

#....
function ENCODED() {
	zenity \
	--info \
	--title="Fconvert" \
	--text="Le fichier a été encodé\n avec succès !" 
exit
}

#....
function SUCCES_COPIE() {
	zenity \
	--info \
	--text="le fichier à été copie vers la destination\n/home/"$USER"/fconvert/flv/$NAME.flv"
}

#....
function ERREUR_COPIE() {
	zenity --error \
	--title="Fconvert" \
	--text="le fichier n'a pas pu être copier,\nla page internet contenant la video à du être fermer ou modifier"
}
####### debut programme #######################################
CHECKDEP
if [ -d '/home/$USER/fconvert' ]; then
	sleep 0;
else
	mkdir -p /home/"$USER"/fconvert/flv
	mkdir -p /home/"$USER"/fconvert/mp3
	mkdir -p /home/"$USER"/fconvert/avi
fi

cd '/tmp'
#flash=`echo $(find ./ -name "Flash*")`
flash=`echo $(ls -1 Flash*)`
nbfic=`ls -1 Flash* | wc -l`
quit=0

if [ -f ./Flash* ]; then	#test si un fichier commencant par Flash existe

	if [ $nbfic -eq "1" ]; then	#test si le nb de fichier trouvés egale à 1
		zenity \
		--info \
		--text="$nbfic fichier Flash à ete détecté sous le nom : $flash"
			
			NAME=$(zenity \
				--entry \
				--title="Fconvert" \
				--text="Donnez un nom au fichier")
			annuler

		zenity \
		--info \
		--title="Fconvert" \
		--text="vous avez renommez le fichier:\n \"$NAME\""

			ACTION=$(zenity \
				--list \
				--radiolist \
				--height=230 \
				--width=350 \
				--title="Fconvert" \
				--text="Action a effectuer" \
				--column="choix" --column="" --column="Actions" \
				--hide-column=2 \
				FALSE "A" "Convertir en AVI" \
				FALSE "B" "Convertir en MP3" \
				FALSE "C" "Ne pas convertir")
				annuler	
	fi
else # si aucun fichier trouvé message d'erreur
	zenity \
	--error \
	--title="Fconvert" \
	--text="Aucun fichier n'a été dectecté veuillez recharger la page"
exit
fi

# Encodage en XviD ##########################################
if [ $ACTION == "A" ]; then
	CONVERTION_AVI
	if [ "${PIPESTATUS[0]}" == "0" ]; then
		ENCODED
	else # si l'encodage a echoué message d'erreur
		PB_ENCODAGE
	fi
fi

#Convertion MP3 POUR LES FLASH audio genre deezer etc...
if [ $ACTION == "B" ]; then	
	CONVERTION_MP3
	if [ "${PIPESTATUS[0]}" == "0" ]; then
		ENCODED
	else # si l'encodage a echoué message d'erreur
		PB_ENCODAGE
	fi				
fi

# Ne pas convertir ###########################################
if [ $ACTION == "C" ]; then
	cp ./"$flash" /home/"$USER"/fconvert/flv/"$NAME".flv
	if [ "${PIPESTATUS[0]}" == "0" ]; then
		SUCCES_COPIE
	else # sinon erreur	
		ERREUR_COPIE
	fi
fi

###### fin programme ###########################################

Arch[gnu/]linuxiens

Hors ligne

#11 Le 09/01/2009, à 14:08

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Ce genre de script marche pour tous les site de streaming c'est a dire la creation d'un fichier Flash*** dans ton repertoir /tmp

Je suis en train de voir pour utiliser Musicbrainz qui lui est ID3v2 et donc accept plus de tag en genre

Voila merci pour ton utilisation

Hors ligne

#12 Le 09/01/2009, à 14:19

syubuntu

Re : [Aide] Script qui télécharge convertie tag et range les mp3

génial pour l'id3v2.

ben j'ai essayé sur http://jiwa.fr et ça ne marche pas. C'est un site de streaming pourtant. j'ai trouvé que freezer sous windows qui marche sur jiwa.Donc je me demandais comment ils avaient pu bloquer ça...

En tout cas pour les  tag c'est vraiment bien smile.avec le script que j'utilisais je devais tout changer à la main ^^

merci
++

Dernière modification par syubuntu (Le 09/01/2009, à 14:19)


Arch[gnu/]linuxiens

Hors ligne

#13 Le 09/01/2009, à 14:53

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

re,

pour http://jiwa.fr la musique n'est pas streammer donc pas de fichier flash*** donc on doit passer par autre chose comme download helper un plugin firefox

Si quelqu'un sait comment je peut utiliser musikbrainz ??

Hors ligne

#14 Le 09/01/2009, à 15:52

AnsuzPeorth

Re : [Aide] Script qui télécharge convertie tag et range les mp3

re06011988 a écrit :

re,

pour http://jiwa.fr la musique n'est pas streammer donc pas de fichier flash*** donc on doit passer par autre chose comme download helper un plugin firefox

Si quelqu'un sait comment je peut utiliser musikbrainz ??

Jiwa aussi c du stream, il pose ses fichier ailleurs, en memoire si je dis pas de betises.
Pour les recuperer, utilise le plugin cacheviewer de firefox (fichier php, comme avant pour deezer), par contre, pas moyen d'automatiser, a moins que tu saches recuperer ce qui est en memoire via un scrit bash......!


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#15 Le 09/01/2009, à 15:59

AnsuzPeorth

Re : [Aide] Script qui télécharge convertie tag et range les mp3

syubuntu a écrit :

ben j'ai essayé sur http://jiwa.fr et ça ne marche pas. C'est un site de streaming pourtant. j'ai trouvé que freezer sous windows qui marche sur jiwa.Donc je me demandais comment ils avaient pu bloquer ça...

EyeD3 gere tout les formats id3.
Pour le soft sous windows, il est fait différemment, il récupère le flux a la volé (ta connexion est dévié par le soft, comme un proxy en gros), alors que nos scripts récupèrent juste le flash dans tmp.

Dernière modification par AnsuzPeorth (Le 09/01/2009, à 16:03)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#16 Le 09/01/2009, à 16:06

syubuntu

Re : [Aide] Script qui télécharge convertie tag et range les mp3

merci. smile
il est possible de faire un site de musique en ligne sans stream???

par contre, pas moyen d'automatiser, a moins que tu saches recuperer ce qui est en memoire via un scrit bash......!

à moi je ne sais pas c'est sur smile. il y a freezer sous windows, et  qui marche sous linux avec wine d'ailleurs je crois, mais je ne le trouve pas pratique. je n'ai pas trouvé de prog linux.

edit:a ok. merci.

Dernière modification par syubuntu (Le 09/01/2009, à 16:07)


Arch[gnu/]linuxiens

Hors ligne

#17 Le 09/01/2009, à 19:24

Marzikill

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Ouch...

{
        echo "\nFichier trouver!"
        ### Copie du fichier de /tmp a /home/MP3/
        cp /tmp/Flash* ~/MP3/conv.flv
        echo "\nCopie terminer!"

C'est moche, très moche. Trouver --> trouvé // terminer --> terminé.


Désolé, c'est pas sympa de relever les fautes des autres, mais je déteste les fautes qui portent sur les participes...


Amicalement
Marzikill.

Dernière modification par Marzikill (Le 09/01/2009, à 19:25)

Hors ligne

#18 Le 09/01/2009, à 19:37

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Hehe sa arrive des fautes qui reste (pourtant j'avais fait corriger par ma copine ^^)

Hors ligne

#19 Le 10/01/2009, à 01:19

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Je pense avoir trouver une piste pour musique brainz je vien apres 4 heure de googlage de trouver un generateur d'empreinte audio etcomment consulter la database de musique brainz j'en voi le bout wink

Edit: Pour la version grafique j'ai encore un peut de mal je pense pouvoir finir sa d'ici la fin du week end si mon rapport de stage m'en laisse le temps (oui on fait pas encore des script python redigeur de stage ...)

Dernière modification par re06011988 (Le 10/01/2009, à 02:07)

Hors ligne

#20 Le 10/01/2009, à 02:25

AnsuzPeorth

Re : [Aide] Script qui télécharge convertie tag et range les mp3

re06011988 a écrit :

Edit: Pour la version grafique j'ai encore un peut de mal je pense pouvoir finir sa d'ici la fin du week end si mon rapport de stage m'en laisse le temps (oui on fait pas encore des script python redigeur de stage ...)

Pour l'interface, pas de souci, fait tourner ton script, et on fera ca ensemble, c vite fait, si  tu me dis ce que tu veux !
(reflechi deja quelle gueule auras ton GUI, attention qd meme, autoglade est limité, par exemples les boutons 'actifs', ne peuvent t'etre qu'en bas ou en haut  (bouton actif= bouton qui sort le resultat de la saisie user). Sinon, faudra voir du coté de gtkdialog, mais lui aussi a certaine restriction....enfin, on verra, fait deaj ton script...:)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#21 Le 10/01/2009, à 11:17

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

oki merci

Hors ligne

#22 Le 10/01/2009, à 13:22

spatz

Re : [Aide] Script qui télécharge convertie tag et range les mp3

intéressant big_smile


PLOP ! Blogueur ! Râleur ! Agnostique ! Architecte ! Floodeur ! Gentil ! Chiant ! Fourbe ! Crâneur ! GNU/Windows/Linuxien ! Machiavélique ! Beau ! Républicain ! Intelligent ! Bosseur ! Très Prétentieux ! Scientifique ! Frimeur ! Étudiant !  De bonne foi ! Perverti ! Ubunteros ! Grand ! Sociable! Altruiste ! Provoc' ! Censé !

Hors ligne

#23 Le 10/01/2009, à 13:32

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

une fois fini of course pratique pour ceux comme moi qui enregistre les radio gratuit de reggae et ainsi ce monter une bibilioteque propre

Je pense réaliser un script en parralele baser la dessut pour trier une bibilioteck déja existante mais mal tagger

Hors ligne

#24 Le 11/01/2009, à 01:27

re06011988

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Voila je vien de le finir il est encore plus auto que avant mais il y a aussi plein de faute d'ortogrphes dedans ma copine a pas voulue me les corriger ce coup si :'( (les femme vous jure mdr)

Pour l'installation pas de changement si ce n'est de té charger ces 2 fichier genpuid et mipcore et de les copier dans /tmp/bin disponible sur le site https://secure.musicip.com/dns/index.jsp (puis cliquer sur "Free licenses are available for non-commercial use. Click here to generate a non-commercial key." il faut s'inscrire avant) (ou si vous voulez pas vous inscrire ici : http://www.megaupload.com/fr/?d=ZOEYGW80) Leur utiliter est expliquer dans le change log.

ps: Le PUID est un peu l'empreinte numerique d'un mp3 style MD5 a ce que j'ai compris

edit : bug de atlas corriger par l'ajout de "" autour de $cddb

#!/bin/sh
##########################################################################################################
##						Change log:                  				##
##													##
## -Utilisation de lltag -S au lieu de MP3info (v1.0)							##
## -Correction des fautes de nortograffe :) (All)							##
## -Utilisation de genpuid© et mipcore© pour générer le puid du MP3 Musicip© (http://www.musicip.com) 	##
## -Utilisation de la BD Musicbrainz pour récupérer les tags auto (v1.3)				##
## -Ouverture de DEEZER avec la recherche demandé (v1.3)						##
## -Récuperation du dernier Flash*** présent dans le /tmp/ (Merci a AnsuzPeorth) (v1.2)			##
## -Utilisation de eyeD3 pour tag v1.1 et V2.4 	 (v1.2)							##
## -Améllioration des recherches CDDB avec lltag (v1.3)							##
## -Détermine si le chargement est complet automatiquement (Merci a AnsuzPeorth) (v1.3)			##
##													##
##########################################################################################################
#
##########################
##  Auteur : 06011988	##
##     Version: 1.3	##
##     Licence: GNU	##
##########################
#
#L'auteur décline toutes responsabilités de l'utilisation illégal de deezaster!
#
# Clé d'utillisation de genpuid (Fourni par Musicdns.com)
key=3839dbda127e29ccd213da2be833b756
#Recherche a effctuer sur deezer
clear
echo "Entrer un nom d'artiste ou de chanson a rechercher sur deezer.com"
read query
#Conversion des espace en url html et autre charactere spéciaux
mquery=$(echo $query | sed -e 's/ /%20/g' | sed -e 's/[éèêë]/e/g' | sed -e 's/à/a/g' | sed -e 's/[ôö]/o/g' | sed -e 's/ù/u/g' | sed -e 's/ç/c/g')
#Lancement de firefox
firefox http://www.deezer.com/#music/result/all/$mquery 2>/dev/null &
#Fichier chargé complétement?
echo "Continuer deezaster ? [O(ui)/N(on)/I(nstallation)]"
read mot
#Oui
if [ "$mot" = "o" ] || [ "$mot" = "O" ]; then
{
	##Fichier existant ?
        if [ -e /tmp/Flash* ]; then
	{
		### Chargement du fichier test
		echo "Chargement en cours. Veulliez patientez"
		var=$(ls -lt /tmp/Flash* | cut -d " " -f5 | head -n1)
		loading="=>"
		(
		until [ "$var" = "$var1" ]
			do
     				var1=$var
      				sleep 2
       				var=$(ls -lt /tmp/Flash* | cut -d " " -f5 | head -n1)
				echo $loading
				loading=$(echo $loading | sed -e 's/=/==/')
    			done
 		)
		clear 
		echo "\nFichier trouvé!"
		### Sélection du dernier fichier flv présent dans /tmp/
		file=$(ls -lt /tmp/Flash* | cut -d " " -f8 | head -n1)
		### Copie du fichier de /tmp a /home/MP3/
		cp $file ~/MP3/conv.flv
		echo "\nCopie terminé!"
		### Conversion FLV->MP3
		mplayer -dumpaudio -dumpfile ~/MP3/conv.mp3 ~/MP3/conv.flv

		echo "\nConversion Audio terminée"
		### supression du flv
		rm -f ~/MP3/conv.flv
		### Tag
			#### Génération du PUID du mp3
			echo "\nGénération de l'empreinte audio. Patientez ..."
			PUID=$(genpuid $key ~/MP3/conv.mp3 | grep " puid: " | sed -e 's/.*puid: //')
			#### Récupération des tag avec Musicbrainz©
			echo "\nRécupération des Tags sur Musicbrainz©" 
			wget -O ~/MP3/.PUID http://musicbrainz.org/show/puid/?puid=$PUID
			#### Vérification des tag
			verif=$(cat ~/MP3/.PUID | grep "This <" | sed -e 's/.*<strong>//' | sed -e 's/<\/strong>.*//')			
			if [ "$verif" = "PUID" ]; then
			{
				##### Tag non trouvé sur Musicbrainz©
				clear
				echo "Tag non trouvé!\n\nVoulez vous les rentrer:\n\n1/Via la base de données CDDB\n2/Les rentrer manuellement"
				read choix
				if [ "$choix" = "1" ]; then
				{
					###### Tagage avec lltag (ID3 v1)
					echo "\nEntrez le nom de l'artiste ou l'album puis laissez vous guider"
					read cddb
					lltag --cddb-query "$cddb" ~/MP3/conv.mp3
				}
				elif [ "$choix" = "2" ]; then
				{
					###### Tagage manuel
					clear
					echo "Entrez l'artiste :"
					read martiste
					echo "\nEntrez l'album :"
					read malbum
					echo "\nEntrez le genre :"
					read mgenre
					echo "\nEntrez le titre de la chanson :"
					read mtitre
					eyeD3 -1 -a "$martiste" -A "$malbum" -t "$mtitre" -G "$mgenre" ~/MP3/conv.mp3
					sleep 3
				}
				else
				{
					###### Erreur
					echo "\nChoix possible 1 ou 2"
					exit 0
				}
				fi 
			}
			else
			{
				##### Tag trouvé sur Musicbrainz©
				clear
				##### Définition des variables
				mbartist=$(cat ~/MP3/.PUID | grep "<table class=\"artisttitle\">" | sed -e 's/.*artist page">//g' | sed -e 's/<\/a.*//' | sed -e "s/'/'/g")
				mbalbum=$(cat ~/MP3/.PUID | grep "/release/" | sed -e 's/.*">//g' | sed -e 's/<\/a.*//' | sed -e "s/'/'/g")
				mbtitre=$(cat ~/MP3/.PUID | grep "/track/" | sed -e 's/.*">//g' | sed -e 's/<\/a.*//' | sed -e "s/'/'/g")
				mbtrack=$(cat ~/MP3/.PUID | grep "no\">" | sed -e 's/.*">//g' | sed -e 's/<\/t.*//' | sed -e "s/'/'/g")
				##### Affichage des Tags trouvés	
				echo "Tag Trouver :\n"
				echo "\nArtiste :   '"$mbartist"'"
				echo "Album :     '"$mbalbum"'"
				echo "Piste :     '"$mbtrack"'"
				echo "Titre :     '"$mbtitre"'"
				##### Vérification des Tags
				echo "\nTag correct ? [(O)ui/(N)on]"
				read tag
				if [ "$tag" = "o" ] || [ "$tag" = "O" ]; then
				{
					###### Tag conforme puis definission du Genre (pas donné par Musicbrainz©)
					echo "\nEntrez le genre :"
					read mbgenre
					eyeD3 -1 -a "$mbartist" -A "$mbalbum" -t "$mbtitre" -G "$mbgenre" -n "$mbtrack" ~/MP3/conv.mp3
					sleep 3		
				}
				elif [ "$tag" = "n" ] || [ "$tagtag" = "N" ]; then
				{
					###### Tag non conforme
					clear
					echo "Voulez vous les rentrer:\n\n1/Via la base de données CDDB\n2/Les rentrer manuellement"
					read choix
					if [ "$choix" = "1" ]; then
					{
						####### Tagage avec lltag (ID3 v1)
						echo "\nEntrez le nom de l'artiste ou l'album puis laissez vous guider"
						read cddb
						lltag --cddb-query "$cddb" ~/MP3/conv.mp3
					}
					elif [ "$choix" = "2" ]; then
					{
						####### Tagage manuel
						clear
						echo "Entrez l'artiste :"
						read martiste
						echo "\nEntrez l'album :"
						read malbum
						echo "\nEntrez le genre :"
						read mgenre
						echo "\nEntrez le titre de la chanson :"
						read mtitre
						eyeD3 -1 -a "$martiste" -A "$malbum" -t "$mtitre" -G "$mgenre" ~/MP3/conv.mp3
						sleep 3
					}
					else
					{
						####### Erreur
						echo "\nChoix possible 1 ou 2"
						exit 0
					}
					fi
				}
				else
				{
					###### Erreur
					echo "choix possible o/O ou n/N !"
					exit 0
				}
				fi
			}
			fi
		clear
		echo "Insertion des tags Terminer"
		### Supression du fichier .PUID
		rm -f ~/MP3/.PUID
		### Définition des variables
		ARTIST=$(lltag -S ~/MP3/conv.mp3 | grep "ARTIST" | sed -e 's/.*=//' | sed -e 's/ /_/g')
		ALBUM=$(lltag -S ~/MP3/conv.mp3 | grep "ALBUM" | sed -e 's/.*=//' | sed -e 's/ /_/g')
		TITRE=$(lltag -S ~/MP3/conv.mp3 | grep "TITLE" | sed -e 's/.*=//' | sed -e 's/ /_/g')
		### Création des dossiers /artist/album
		mkdir -p ~/MP3/$ARTIST/$ALBUM/
		### Déplacement du mp3 dans le dossier /$artist/$album
		mv ~/MP3/conv.mp3 ~/MP3/$ARTIST/$ALBUM/$TITRE.mp3
		### Conversion des tag v1.1 en v2.4
		eyeD3 --to-v2.4 ~/MP3/$ARTIST/$ALBUM/$TITRE.mp3
		clear
		echo "Musique convertie et rangée dans : "$HOME"/MP3/"$ARTIST"/"$ALBUM"/"
		echo "\nMerci de votre utilisation. A bientôt"
		sleep 3
		clear
	}
	else
	{
		echo "\nLe fichier n'existe pas, du moins n'est pas dans le répertoire /tmp ou il n'est pas chargé. Merci de relancer le deezaster."
		sleep 3
	}
	fi
}
#Installation
elif [ "$mot" = "i" ] || [ "$mot" = "I" ]; then
{
	echo "\nLe deezaster va installer le répertoire "$HOME"/MP3 et les paquets suivant: w32codecs, ffmpeg, mplayer, lltag, mp3info, eyed3.\n\nVous devez posséder les droits administration et le dépôt Medibuntu (en accord avec les lois régissant votre pays)"
	echo ""
	sleep 10
        if [ -d ~/MP3 ]; then
	{
		echo "\nRépertoire déjà existant"
	}
	else
	{
		mkdir ~/MP3
		echo "\nRépertoire créé"
	}
	fi
	sudo apt-get install -y w32codecs ffmpeg mplayer lltag mp3info eyed3
	echo "\nInstallation terminée! Merci de relancer deezaster"
	sleep 3
	clear
}
#Non
elif [ "$mot" = "n" ] || [ "$mot" = "N" ]; then
{
	echo "\nMerci d'avoir lancer deezaster pour ne pas l'utiliser c'est malin ..."
	sleep 3
	clear
}
#Boulet
else
{
echo "\nLes choix possibles sont o/O n/N ou i/I et pas : '"$mot"'\nBoulet va!"
sleep 3
clear
}
fi
exit 0

Dernière modification par re06011988 (Le 11/01/2009, à 02:17)

Hors ligne

#25 Le 11/01/2009, à 01:59

atlas95

Re : [Aide] Script qui télécharge convertie tag et range les mp3

Bonjour,
Merci pour cette excellent script, un ptit truc a corrigé, lorsque l'on rentre le tag a la main, enfin qu'on fait la recherche avec CDDB, si je tappe un nom d'artiste en 2 mot , ca skip un des mots...


Ubuntu sur un XPS m1330:c'est ici !
Mon blog sur ubuntu:c'est ici !
Jabber : cyril at jabber.levis-heb.net

Hors ligne