Annonce

Réduire
Aucune annonce.

Auto Tri de musiques à la volée en Bash (Linux)

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Auto Tri de musiques à la volée en Bash (Linux)

    Bonjour,

    Je voudrais aujourd'hui vous présenter l'un de mes script bash servant au tri de musiques à la volée.

    Encore une fois je suis ouvert à tous commentaires et remarques sur mon script.

    Ce script nécessite la commande id3tool. Celle-ci sert à retrouver l'artiste et l'album d'une musique via ses méta-données.

    # Veuillez enregistrer ce script sous le nom music.sh sinon il sera inopérant.
    # Pour l exécuter placer le dans un dossier référencé par le PATH et rendez le exécutable. Déplacez vous ensuite vers le dossier contenant les musiques
    # Une fois dans celui - ci, extrayez les musiques des dossiers, supprimer ces derniers (afin de recréer une arborescence complète) et lancer la commande music.sh sans paramètres
    # Cette commande peut générer des erreurs lors de son exécution. Certaines sont normales cependant, aucun de mes programmes n'est certifié sans bugs.

    Une fois le script exécuté, vos musiques au format mp3 et wma seront triées dans une arborescence du type Artiste/Album/Musique

    Code:
        #!/bin/bash
         
        #Auteur: Anonyme77
        #Team: iDev4U
         
        if [ -z $1 ]
        then
                oldifs=$IFS
                IFS='\n'
                find -name "*.mp3" -exec music.sh {} \;
                find -name "*.wma" -exec music.sh {} \;
                IFS=$oldifs
                rm $HOME/log/music.log
        else
                destination=$1
         
                artist=$(id3tool "$destination"|grep Artist| sed 's/\t\t//g'|cut -d : -f 2|sed 's/ //g')
                if [ -z $artist ]
                then
                        artist="Inconnu"
                fi
         
                album=$(id3tool "$destination"|grep Album| sed 's/\t\t//g'|cut -d : -f 2|sed 's/ //g')
                if [ -z $album ]
                then
                        album="Inconnu"
                fi
           
                mkdir $artist >> $HOME/log/music.log
                cd $artist
                mkdir $album >> $HOME/log/music.log
                cd ..
         
                mv "$destination" "$artist/$album" >> $HOME/log/music.log
        fi
    Je suis disponible pour toute remarque et/ou pour tout conseil.

    Afin de vérifier que le tri vous convient je ne peux que vous conseiller de faire cette opération sur une copie de vos musiques.

    Merci beaucoup.

    Bien à vous.
    Dernière modification par Anonyme77, 28 décembre 2012, 11h04.

  • #2
    Pour que le script soit opérant quelque soit son nom, tu devrais utiliser
    Code:
    find -name "*.mp3" -exec $0 {} \;
    Dernière modification par comaX, 28 décembre 2012, 16h08.

    Commentaire


    • #3
      # Veuillez enregistrer ce script sous le nom music.sh sinon il sera inopérant.
      # Pour l exécuter placer le dans un dossier référencé par le PATH et rendez le exécutable. Déplacez vous ensuite vers le dossier contenant les musiques
      # Une fois dans celui - ci, extrayez les musiques des dossiers, supprimer ces derniers (afin de recréer une arborescence complète) et lancer la commande music.sh sans paramètres
      # Cette commande peut générer des erreurs lors de son exécution. Certaines sont normales cependant, aucun de mes programmes n'est certifié sans bugs.
      Bonjour,

      Le fait d'utiliser un langage de script, n'éviterait pas normalement de faire tout cela?
      C'est dommage d'avoir autant de manoeuvre

      Commentaire

      Chargement...
      X