Correction des métadonnées du numéro de disque et des titres d'album dans iTunes

0

J'ai beaucoup de CD qui ont été étiquetés puis importés dans iTunes dans le format suivant:

  • Cream Classics (disque 1)
  • Cream Classics (disque 2)
  • Cream Classics (disque 3)

Ce que je voudrais faire est de définir le numéro de disque de chacun des albums (car iTunes dispose de méta-données pour cela), puis de renommer l'album en "Cream Classics".

Compte tenu du nombre d'albums que j'ai, il s'agit d'un processus manuel extrêmement laborieux.

Bien que je puisse trouver quelque chose dans vbscript pour le faire automatiquement, j'espère que c'était un problème assez commun pour que quelqu'un l'ait déjà résolu.

Aucune suggestion?

Richard
la source
Sans aller dans la cour entière avec quelque chose comme Musicbrainz Picard et repasser l’étiquette une fois pour toutes dans votre bibliothèque entière, la meilleure option (la plus précise) vous permettra probablement de la faire vous-même manuellement.
Michael Frank

Réponses:

0

Il s'est avéré qu'écrire vbscript pour résoudre ce problème n'était pas si difficile du tout.

Créez un nouveau fichier texte avec le nom fixdisc.vbset mettez-y le texte suivant:

Option Explicit
Dim oiTunes : Set oiTunes = CreateObject("iTunes.Application")
Dim oLibrary : Set oLibrary = oiTunes.LibraryPlaylist
Dim oTracks : Set oTracks = oLibrary.Tracks
Dim i, oSong, p, sDisk, sNewTitle, iTotal
iTotal = oTracks.Count
For i = 1 To iTotal
    Set oSong = oTracks.Item(i) 
    For p = 1 To 4
        sDisk = " (disc " & p & ")"
        If Instr(1, oSong.Album, sDisk, vbTextCompare) > 0 Then
            sNewTitle = Replace(oSong.Album, sDisk, "", 1, -1, vbTextCompare)
            WScript.Echo i & "/" & iTotal & ": Setting '" & oSong.Album & "' to '" & sNewTitle & "' and disk number to " & p
            ' Remove the ' prefix on the next two lines to actually update the data!
            ' oSong.DiscNumber = p
            ' oSong.Album = sNewTitle
            Exit For
        End If
    Next
Next
Set oSong = Nothing
Set oTracks = Nothing
Set oLibrary = Nothing
Set oiTunes = Nothing

Ouvrez une invite de commande (using cmd), naviguez jusqu'à l'emplacement du script et tapez:

cscript fixdisc.vbs

Le script vous dira quels albums il va changer mais ne fera pas les changements . Lorsque vous êtes satisfait, éditez le script et supprimez-le 'des deux lignes afin que le code ressemble à ceci:

            ' Remove the ' prefix on the next two lines to actually update the data!
            oSong.DiscNumber = p
            oSong.Album = sNewTitle
            Exit For
        End If

Maintenant, relancez le script et toutes les pistes contenant (disc x)(où x est compris entre 1 et 4) auront les méta-données appropriées "Numéro de disque" renseignées et le titre de l'album sera mis à jour pour supprimer cette chaîne.

Mises en garde / avertissements

  • Si vous double-cliquez dessus à partir de Windows, vous serez submergé de pop-ups. Donc, toujours courir depuis la ligne de commande.
  • Je ne l'ai pas complètement testé, utilisez-le à vos risques et périls! (sauvegardez d'abord votre bibliothèque)
  • Seul "disque x" fonctionnera, vous pouvez facilement le modifier pour prendre en charge "disque x" si vous le souhaitez.
  • Seuls les disques 1 à 4 fonctionneront, vous pouvez facilement le modifier pour en faire plus.
  • Les numéros de disque complexes (par exemple "Exposition nord (disque 1: 0 degrés, nord)") ne seront pas corrigés.
  • Cela prend beaucoup de temps et votre bibliothèque iTunes sautera de manière erratique au fur et à mesure que les données seront corrigées. Votre PC s'embourbe aussi un peu.

Prendre plaisir.

Richard
la source
Il est à noter que ce script n'est pas le meilleur moyen de le faire. Toute personne souhaitant réécrire ceci devrait envisager de forcer le script à s'exécuter en tant que cscript, en vérifiant la présence de « (dispremier» dans la chaîne, puis en utilisant une expression régulière (telle que \(dis[ck] (\d+).*?\)pour extraire le numéro de disque). ligne, traitement plus rapide, prise en charge des variantes "disque / disque", prise en charge de tout numéro de disque et prise en charge des numéros de disque complexes. Donc, en gros, la plupart des mises en garde
Richard