#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/'/'/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/'/'/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/'/'/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/'/'/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)
Mes script : T1000tag~Série pour conky
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.....???
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)
Mes script : T1000tag~Série pour conky
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
Mes script : T1000tag~Série pour conky
Hors ligne
#6 Le 09/01/2009, à 00:45
- AnsuzPeorth
Re : [Aide] Script qui télécharge convertie tag et range les mp3
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 faireMerci
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
Mes script : T1000tag~Série pour conky
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
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)
Mes script : T1000tag~Série pour conky
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
Mes script : T1000tag~Série pour conky
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 .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 ??
Mes script : T1000tag~Série pour conky
Hors ligne
#14 Le 09/01/2009, à 15:52
- AnsuzPeorth
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 ??
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
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.
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 . 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 ^^)
Mes script : T1000tag~Série pour conky
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
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)
Mes script : T1000tag~Série pour conky
Hors ligne
#20 Le 10/01/2009, à 02:25
- AnsuzPeorth
Re : [Aide] Script qui télécharge convertie tag et range les mp3
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
Mes script : T1000tag~Série pour conky
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
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
Mes script : T1000tag~Série pour conky
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)
Mes script : T1000tag~Série pour conky
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