IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Modifier les métadatas de fichiers audios [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Modifier les métadatas de fichiers audios
    Bonjour à tous et à toutes

    Je me suis mis au Powershell depuis peu et je fais quelques petits scripts pour apprendre ce langage.
    J’essaie actuellement de créer un script pour modifier les métadatas de fichiers audios en fonction du répertoire.

    L’arborescence s’organiser de la façon suivante :
    -artiste1
    -album1
    -album2
    -artiste2
    -albumA
    -albumB

    Avec le script j’essaie de récupérer le nom du dossier artiste puis le nom du dossier album pour que les fichiers soient modifiés en conséquence.
    Mais le problème c’est que lors des déplacements il me dit ne pas trouver le chemin pour accéder à mes fichiers.
    Normalement il devait aller dans E:\Musiques puis E:\Musiques\artiste1 puis E:\Musiques\artiste1\album1 et modifier les métadatas. Pour aller dans l’autre dossier (album2) et une fois terminé changer de dossier artiste.
    Mais au lieu de cela il me dit que le chemin E:\Musiques\artiste1\artiste1 et E:\Musiques\artiste1\artiste2 n’existe pas.
    Le programme met à la place de l’album le nom de l’artiste (ou d’un autre artiste) et je n’arrive pas à voir où je me suis trompé.

    J’espère avoir été assez clair.

    Merci d’avance pour votre aide.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    $location="E:\Musiques\"
    $taglibsharpPath=“D:\Powershell\lib\taglib-sharp\taglib-sharp.dll”
    
    [Reflection.Assembly]::LoadFrom($taglibsharpPath)
    
    cd $location
    
    $folderArtiste = Get-ChildItem -Path $location | Where-Object { ($_.PSIsContainer) }
    foreach ($artFolder in $folderArtiste){
        cd $location
        cd $artFolder
        $artiste = get-location | split-path -leaf
    
        $folderAlbum = Get-ChildItem -Path $artFolder | Where-Object { ($_.PSIsContainer) }
        foreach ($albFolder in $folderAlbum){
            echo $albFolder
            cd $albFolder
            $album= get-location | split-path -leaf
            $albumLocation= get-location
    
            $files = Get-ChildItem -Path $albumLocation | Where-Object { (-not $_.PSIsContainer) }
    
            foreach ($filename in $files){
                $media = [TagLib.File]::Create(($albumLocation+"\"+$filename))
                $media.Tag.Album = $album
                $media.Tag.AlbumArtists = $artiste
                $media.Save() 
            }
            cd ..
        }
    }

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous et à toutes.

    Bon j’ai mis un peu de temps à trouver (et puis j’avais un peu lâché ce script), mais j’ai trouvé la solution.
    Alors déjà en ce qui concerne le le get-childitem, étant donné que je fais un CD avant et que je suis déjà dans le dossier de l’artiste je n’avais pas besoin de préciser le path, c’est pour cela que j’avais un artiste1/artiste1 et forcément ça n’existait pas.
    Ensuite j’ai fourni dans certaines commandes des variables qui n’étaient pas des chaînes de caractères donc il fallait que je les castes avant, pour les concaténer et ensuite les fournir pour remplir les informations avec la librairie taglib.

    Du coup voici à quoi ressemble le script maintenant pour ceux que ça pourrait intéresser.
    J’ai encore quelques erreurs mais du au fait que dans certains cas la musique n’étant pas fini d’être assemblé j’ai des sous dossiers (voix1, batterie, sample …) et que pour le moment ne script ne fonctionne qu’avec Artiste/Album.

    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    $taglibsharpPath=“C:\Users\Thomas\Google Drive\Powershell\lib\taglib-sharp\taglib-sharp.dll”
    
    $location="D:\Musiques\"
    
    [Reflection.Assembly]::LoadFrom($taglibsharpPath)
    
    set-location -path $location
    
    $listeArtiste = Get-ChildItem | Where-Object { ($_.PSIsContainer) }
    
    foreach ($artisteFolder in $listeArtiste){
    
        set-location -path $location
        set-location -path $artisteFolder
    
        $listeAlbum = Get-ChildItem | Where-Object { ($_.PSIsContainer) }
        foreach ($albumFolder in $listeAlbum){
            
            set-location -path $albumFolder
    
            $files = Get-ChildItem | Where-Object { (-not $_.PSIsContainer -and ($_.extension -eq ".mp3" -or $_.extension -eq ".wav")) }
    
            foreach ($filename in $files){
                $emplacement = (Get-Location).tostring() + "\" + $filename
                attrib -r $emplacement
                $media = [TagLib.File]::Create(($emplacement))
                $media.Tag.Album = $albumFolder
                $media.Tag.AlbumArtists = $artisteFolder
                $media.Save() 
            }
            cd ..
        }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 3.X] Modifier les métadonnées de fichiers audio sur linuxmint
    Par ti.du.du39 dans le forum Général Python
    Réponses: 1
    Dernier message: 10/12/2017, 18h57
  2. Modifier les noms de fichiers d'un dossier
    Par jybtiti dans le forum Général VBA
    Réponses: 1
    Dernier message: 23/08/2010, 19h08
  3. Empaquetage : modifier les chemins des fichiers inclus
    Par AndréPe dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 21/08/2008, 11h56
  4. Réponses: 5
    Dernier message: 04/07/2007, 00h24
  5. Lire et modifier les propriétés des fichiers Office
    Par SilkyRoad dans le forum Contribuez
    Réponses: 4
    Dernier message: 18/09/2006, 22h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo