OVH Cloud OVH Cloud

Editer des ID3Tags en masse (en VBScript de preference)

10 réponses
Avatar
harick
Bonjour a tous,

Je viens de debarquer ici car j'ai besoin de votre aide.

J'ai voulu tester iTunes pour acheter quelques titres, je ne pensais
m'y attacher mais finallement, sa gestion des infos (ce que
j'appelerais ID3) m'a seduit.

Seulement voila, il semblerait qu'ils n'ecrive pas les ID3 dans les
fichiers mais dans une base a part.........

Je m'en suis apercu car je voulais ecrire un script qui lise les ID3
et renomme les fichiers et les deplacent comme je voulais. Et lors des
tests, je me suis apercu que mes ID3 etaient vides...........

Donc grosse question.... J'ai un fichier avec ma librairie complete
avec les infos que je veux dedans (en plus, y'a le nom du fichier
rattache). Puisqu'iTunes n'a pas fait son boulot, je me dois de la
faire a sa place, donc je voudrais reussir a mettre les ID3 des
fichiers a jour par rapport au contenu de ma librairie et renommer les
fichiers en consequence.

Renommer, deplacer les fichiers, lire un fichier texte, je peux me
debrouiller a faire tout cela. Mais je n'arrive pas a ecrire les ID3.
Avez-vous des infos a me donner sur le sujet? Je vous signale qu'a
part du VBS (et encore) je ne suis pas trop capable de coder quoique
ce soit......

Je vous remercie par avance.
Harick.

10 réponses

Avatar
Gerald
Harick_NoSpam wrote:

Renommer, deplacer les fichiers, lire un fichier texte, je peux me
debrouiller a faire tout cela. Mais je n'arrive pas a ecrire les ID3.
Avez-vous des infos a me donner sur le sujet? Je vous signale qu'a
part du VBS (et encore) je ne suis pas trop capable de coder quoique
ce soit......



Les ID3 sont peut-être présents mais il en existe différents formats
(différentes versions) qui sont parfois "invisibles" dans certains
logiciels. Si tu as la chance d'être sous Mac OS 9 ou X (ce que tu ne
précises pas) LE logiciel qui te permettra toutes les conversions en
batch et tags et bien plus encore est MP3 Rage de Chaotic Software. Pour
25$ (au prix du dollar !) c'est quasi donné.
<http://www.chaoticsoftware.com/ProductPages/MP3Rage.html>

Je pense qu'il peut être téléchargé en version fonctionnelle limitée.
--
Gérald
Avatar
daniel.patin
Gerald wrote:
Harick_NoSpam wrote:



Les ID3 sont peut-être présents mais il en existe différents formats
(différentes versions) qui sont parfois "invisibles" dans certains
logiciels. Si tu as la chance d'être sous Mac OS 9 ou X (ce que tu ne
précises pas) LE logiciel qui te permettra toutes les conversions en
batch et tags et bien plus encore est MP3 Rage de Chaotic Software. Pour
25$ (au prix du dollar !) c'est quasi donné.
<http://www.chaoticsoftware.com/ProductPages/MP3Rage.html>



pour completer le propos (judicieux) de gerald, si tu es sous mac, tu
peux trouver TriTag, un freeware qui le ferait.
(trouvé sur macaudio.org, dans le traqueur de logiciel, à visiter pour
tout ce qui concerne la musique et le mac)

--
daniel.patin et non pas marcel.dugenou
(quoique, il y a des jours, je me demande....)
Avatar
harick
(Gerald) wrote in message news:<1giq8rh.1anze4617ljhj4N%...
Les ID3 sont peut-être présents mais il en existe différents formats
(différentes versions) qui sont parfois "invisibles" dans certains
logiciels. Si tu as la chance d'être sous Mac OS 9 ou X (ce que tu ne
précises pas) LE logiciel qui te permettra toutes les conversions en
batch et tags et bien plus encore est MP3 Rage de Chaotic Software. Pour
25$ (au prix du dollar !) c'est quasi donné.
<http://www.chaoticsoftware.com/ProductPages/MP3Rage.html>



Effectivement, je n'avais pas preciser l'OS mais je ne crois pas que
le VBScript soit utilisable sur Mac....

Merci beaucoup pour ta reponse, meme si je ne peux pas l'utiliser. Je
continue a chercher de mon cote....

Je vous tiendrais au courant. Ne nous decourageons pas, grace a vous,
j'en suis sur, j'y arriverai....

A+.
Harick.
Avatar
nohare
fallait pas utilmiser Itunes mais winamp5
lui te propose de faire un BDD a part ou carémnt d'écrire dans tes fichier
....

vive winamp !!




"Harick_NoSpam" a écrit dans le message de
news:
Bonjour a tous,

Je viens de debarquer ici car j'ai besoin de votre aide.

J'ai voulu tester iTunes pour acheter quelques titres, je ne pensais
m'y attacher mais finallement, sa gestion des infos (ce que
j'appelerais ID3) m'a seduit.

Seulement voila, il semblerait qu'ils n'ecrive pas les ID3 dans les
fichiers mais dans une base a part.........

Je m'en suis apercu car je voulais ecrire un script qui lise les ID3
et renomme les fichiers et les deplacent comme je voulais. Et lors des
tests, je me suis apercu que mes ID3 etaient vides...........

Donc grosse question.... J'ai un fichier avec ma librairie complete
avec les infos que je veux dedans (en plus, y'a le nom du fichier
rattache). Puisqu'iTunes n'a pas fait son boulot, je me dois de la
faire a sa place, donc je voudrais reussir a mettre les ID3 des
fichiers a jour par rapport au contenu de ma librairie et renommer les
fichiers en consequence.

Renommer, deplacer les fichiers, lire un fichier texte, je peux me
debrouiller a faire tout cela. Mais je n'arrive pas a ecrire les ID3.
Avez-vous des infos a me donner sur le sujet? Je vous signale qu'a
part du VBS (et encore) je ne suis pas trop capable de coder quoique
ce soit......

Je vous remercie par avance.
Harick.


Avatar
nohare
WINAMP
the only way to listen and manage mp3 ....




"Harick_NoSpam" a écrit dans le message de
news:
(Gerald) wrote in message


news:<1giq8rh.1anze4617ljhj4N%...
> Les ID3 sont peut-être présents mais il en existe différents formats
> (différentes versions) qui sont parfois "invisibles" dans certains
> logiciels. Si tu as la chance d'être sous Mac OS 9 ou X (ce que tu ne
> précises pas) LE logiciel qui te permettra toutes les conversions en
> batch et tags et bien plus encore est MP3 Rage de Chaotic Software. Pour
> 25$ (au prix du dollar !) c'est quasi donné.
> <http://www.chaoticsoftware.com/ProductPages/MP3Rage.html>

Effectivement, je n'avais pas preciser l'OS mais je ne crois pas que
le VBScript soit utilisable sur Mac....

Merci beaucoup pour ta reponse, meme si je ne peux pas l'utiliser. Je
continue a chercher de mon cote....

Je vous tiendrais au courant. Ne nous decourageons pas, grace a vous,
j'en suis sur, j'y arriverai....

A+.
Harick.


Avatar
daniel.patin
nohare wrote:

WINAMP
the only way to listen and manage mp3 ....




et ça apprend à quoter correctement ?


--
daniel.patin et non pas marcel.dugenou
(quoique, il y a des jours, je me demande....)
Avatar
harick
Salut a tous,

Merci pour vos interventions.

Je voulais vous signaler que mon script est presque termine. En fait,
il reste encore l'ecriture des ID3 eux-memes dans les fichiers, sinon
(comme je vous l'avais annonce d'ailleurs... lol ) la partie renommage
et deplacement des fichiers est terminee. Je mets juste un peu de
polish et je frotte pour que ca brille... Non, en fait, je veux gerer
les doublons (c'est presque fini) et les fichier qui ne sont pas bien
nommes (c'est tres dur.....).

Je vous dirais ou j'en suis.... J'ai trouve des infos chez un gars sur
une librairie C qui serait adaptable en VB, je pense que je peux pas
trop difficilement convertir un VBS en VB mais je n'aime pas trop ca,
j'aurai vraiment prefere rester dans un langage que je maitrise (plus
ou moins ;-p ).

Donc, comme je vous le disais, ca avance, pas vite, mais quand
meme....

A+.
Harick.
Avatar
harick
Salut a tous,

Merci pour vos interventions.

Je voulais vous signaler que mon script est presque termine. En fait,
il reste encore l'ecriture des ID3 eux-memes dans les fichiers, sinon
(comme je vous l'avais annonce d'ailleurs... lol ) la partie renommage
et deplacement des fichiers est terminee. Je mets juste un peu de
polish et je frotte pour que ca brille... Non, en fait, je veux gerer
les doublons (c'est presque fini) et les fichier qui ne sont pas bien
nommes (c'est tres dur.....).

Je vous dirais ou j'en suis.... J'ai trouve des infos chez un gars sur
une librairie C qui serait adaptable en VB, je pense que je peux pas
trop difficilement convertir un VBS en VB mais je n'aime pas trop ca,
j'aurai vraiment prefere rester dans un langage que je maitrise (plus
ou moins ;-p ).

Donc, comme je vous le disais, ca avance, pas vite, mais quand
meme....

A+.
Harick.
Avatar
harick
Salut a tous,

Merci pour vos interventions.

Je voulais vous signaler que mon script est presque termine. En fait,
il reste encore l'ecriture des ID3 eux-memes dans les fichiers, sinon
(comme je vous l'avais annonce d'ailleurs... lol ) la partie renommage
et deplacement des fichiers est terminee. Je mets juste un peu de
polish et je frotte pour que ca brille... Non, en fait, je veux gerer
les doublons (c'est presque fini) et les fichier qui ne sont pas bien
nommes (c'est tres dur.....).

Je vous dirais ou j'en suis.... J'ai trouve des infos chez un gars sur
une librairie C qui serait adaptable en VB, je pense que je peux pas
trop difficilement convertir un VBS en VB mais je n'aime pas trop ca,
j'aurai vraiment prefere rester dans un langage que je maitrise (plus
ou moins ;-p ).

Donc, comme je vous le disais, ca avance, pas vite, mais quand
meme....

A+.
Harick.
Avatar
harick
Bonjour a tous,

Voila, mon script est presque termine.
J'ai "abandonne" la partie edition des ID3Tags car je n'ai toujours
pas trouve en VBScript.

Par contre, je m'etais trompe, iTunes edite de lui-meme les ID3 sans
souci. En fait, c'est l'affichage de Windows qui n'affiche pas les
memes champs, ce qui explique que je ne retrouvais pas mes petits en
regardant simplement les proprietes de mes fichiers......

Je vous livre mon script tel qu'il est aujourd'hui, c'est a dire qu'il
y a une fonction de definie pour editer les ID3 mais elle est vide. Et
puis, je n'ai pas encore commente mon code.... Ca viendra bientot,
d'autant que j'ai choisi d'agir d'une certaine facon pour renommer les
mp3 de musiques de film mais ca ne plaira peut-etre pas a tout le
monde.... Je preciserais les choses dans les commentaires.....

En attendant, amusez vous avec ca:

'##########################################################
' MP3Tagger.vbs
' Script qui lit une liste au format tab-separated afin de renommer
' les fichiers MP3 en fonction de certains champs.
'
' Normalement, il devrait aussi editer les Tags mais pour
' l'instant, il me manque les APIs
'
' Il faudra decommenter les lignes concernant les copies de fichiers
'marquees par '## en debut et en fin de ligne
'
' Il faudra aussi definir l'action en cas de nom d'artiste inconnu
' Il faut aussi decider pour les albums multi-interpretes comme les
OST
'de comment on les nomme.....

' Il faudra editer les ID3Tags, apres tout, c'etait le but premier du
script.

Option Explicit

Dim objArgs
Dim fso, TS, TE, TEName, TELigne, TSLigne, dirName
Dim mediaFile, newName, Destination, Extension
Dim Song, Artist, Album, DiscNumber, DiscCount
Dim TrackNumber, TrackCount, Comments, Source

Set objArgs = WScript.Arguments
Dim argCount:argCount = Wscript.Arguments.Count
TEName = ".entree.txt"
If argCount > 0 Then TEName = WScript.Arguments(0)
dirName = "D:MP3z"

Set fso = CreateObject("Scripting.FileSystemObject"):CheckError
Set TS = fso.CreateTextFile(".sortie.txt", -1, 0):CheckError
Set TE = fso.OpenTextFile(TEName, 1, 0, 0):CheckError
If Not fso.FolderExists(dirName) Then fso.CreateFolder(dirName)

TELigne = TE.ReadLine
Dim txtTemp:txtTemp = UCase(Mid(TELigne, 1, 11))
If Not txtTemp = UCase("Name" & vbTab & "Artist") Then WScript.Quit 1
WScript.Echo "Let's Go!!!" & vbCRLF & TEName
TS.WriteLine TELigne

Dim Tableau(26)

While Not TE.AtEndOfStream
TELigne = TE.ReadLine
Dim index:index = 0
Dim oldindex, pos, taille
For pos = 0 to 25
oldindex = index
index = InStr(index + 1, TELigne, vbTab, vbTextCompare)
If oldindex > index Then
Tableau(pos) = Mid(TELigne, oldindex + 1, Len(TELigne) - oldindex)
TSLigne = Mid(TELigne, 1, oldindex)
If fso.FileExists(Tableau(24)) Then '##
ChangeName(Tableau)
EditID3(Tableau)
TS.WriteLine TSLigne
End If '##
Exit For
End If
Tableau(pos) = Mid(TELigne, oldindex + 1, index - oldindex - 1)
Next
Wend

Function EditID3 (Info)
'On reprends les définition des variables car dans ChangeName, on les
aura
'modifiées pour les rendre compatible avec le système de fichiers
Windows
Song = Info(0)
Artist = Info(1)
Album = Info(3)
DiscNumber = Info(8)
DiscCount = Info(9)
TrackNumber = Info(10)
TrackCount = Info(11)
Comments = Info(20)
' Source = Info(24)
Destination = Info(25)

'Ouvrir le fichier "Destination", verifier son extension si ID3 geres
'differemments selon les types de fichiers, inscrire les infos,
fermer
'le fichier

End Function

Function ChangeName(Info)
Song = Epuration(Info(0))
Artist = Epuration(Info(1))
Album = Epuration(Info(3))
DiscNumber = Info(8)
DiscCount = Info(9)
TrackNumber = Info(10)
TrackCount = Info(11)
Comments = Epuration(Info(20))
Source = Info(24)

Dim longueurDisc, longueurTrack, longueurDest
longueurDisc = 0
index = InstrRev(Source, ".")
Extension = LCase(Mid(Source, index, Len(Source) - index + 1))
If Artist = "" AND Info(5) <> "Soundtrack" Then
Artist = "UnknownArtist - "
ElseIf Artist <> "" AND Info(5) = "Soundtrack" Then
Artist = " - " & Artist
ElseIf Artist = "" AND Info(5) = "Soundtrack" Then
Artist = ""
Else
Artist = Artist & " - "
End If

If DiscCount <> "" Then
longueurDisc = Len(DiscCount)
DiscCount = "on" & DiscCount & ") - "
Else
DiscCount = ") - "
End If
If DiscNumber <> "" AND Album <> "" Then
If Len(DiscNumber) <= longueurDisc Then
DiscNumber = " (" & String(longueurDisc - Len(DiscNumber), "0") &_
DiscNumber & DiscCount
Else
DiscNumber = " (" & DiscNumber & ") - "
End If
ElseIf Album <> "" Then
Album = Album & " - "
' Else
' Album = "Unknown Album - "
End If
If TrackCount <> "" Then longueurTrack = Len(TrackCount)
If Len(TrackNumber) < longueurTrack Then
TrackNumber = String(longueurTrack - Len(TrackNumber), "0") &_
TrackNumber
End If
If TrackNumber <> "" Then TrackNumber = TrackNumber & " "
If LCase(Mid(Comments, 1, 5)) = "feat." Then
Comments = " (" & Comments & ")"
Else
Comments = ""
End If
If Info(5) = "Soundtrack" Then
If Artist = "UnknownArtist - " Then Artist = ""
newName = "OST of " & Album & DiscNumber & TrackNumber & Song &_
Artist & Comments
Else
newName = Artist & Album & DiscNumber & TrackNumber & Song &
Comments
End If

index = 2
Destination = dirName & "" & newName & Extension
Dim Destination2:Destination2 = dirName & "_Doublons" & newName &_
" [1]" & Extension
If Not fso.FileExists(Destination) AND Not
fso.FileExists(Destination2) Then
fso.CopyFile Source, Destination, 0 :CheckError '##
Else
If fso.FileExists(Destination) AND Not fso.FileExists(Destination2)
Then
If Not fso.FolderExists(dirName & "_Doublons") Then
fso.CreateFolder(dirName & "_Doublons")
End If
fso.MoveFile Destination, Destination2 :CheckError '##
End If
While fso.FileExists(Destination2)
Destination2 = dirName & "_Doublons" & newName & " [" & index &_
"]" & Extension
index = index + 1
Wend
Destination = Destination2
If Not fso.FolderExists(dirName & "_Doublons") Then
fso.CreateFolder(dirName & "_Doublons")
End If
fso.CopyFile Source, Destination2, 0 :CheckError '##
End If
Tableau(25) = Destination
TSLigne = TSLigne & Destination
End Function

Function Epuration(Str)
Dim Chaine, caract, index, interdit
Chaine = Str
interdit = "/:*?<>|" & Chr(34) & Chr(92)
index = 1

While index <= Len(Chaine)
caract = Mid(Chaine, index, 1)
If InStr(1, interdit, caract, vbTextCompare) Then
Chaine = Mid(Chaine, 1, index - 1) & Mid(Chaine, index + 1)
Else
'A partir du Code ANSI du caractere.
Select Case Asc(caract)
Case 199
Chaine = Mid(Chaine, 1, index - 1) & "C" &_
Mid(Chaine, index + 1)
Case 249, 250, 251, 252
Chaine = Mid(Chaine, 1, index - 1) & "u" &_
Mid(Chaine, index + 1)
Case 232, 233, 234, 235
Chaine = Mid(Chaine, 1, index - 1) & "e" &_
Mid(Chaine, index + 1)
Case 224, 225, 226, 227, 228, 229
Chaine = Mid(Chaine, 1, index - 1) & "a" &_
Mid(Chaine, index + 1)
Case 231
Chaine = Mid(Chaine, 1, index - 1) & "c" &_
Mid(Chaine, index + 1)
Case 204, 205, 206, 207
Chaine = Mid(Chaine, 1, index - 1) & "I" &_
Mid(Chaine, index + 1)
Case 236, 237, 238, 239
Chaine = Mid(Chaine, 1, index - 1) & "i" &_
Mid(Chaine, index + 1)
Case 192, 193, 194, 195, 196, 197
Chaine = Mid(Chaine, 1, index - 1) & "A" &_
Mid(Chaine, index + 1)
Case 200, 201, 202, 203
Chaine = Mid(Chaine, 1, index - 1) & "E" &_
Mid(Chaine, index + 1)
Case 230
Chaine = Mid(Chaine, 1, index - 1) & "ae" &_
Mid(Chaine, index + 1)
Case 198
Chaine = Mid(Chaine, 1, index - 1) & "AE" &_
Mid(Chaine, index + 1)
Case 242, 243, 244, 245, 246, 248
Chaine = Mid(Chaine, 1, index - 1) & "o" &_
Mid(Chaine, index + 1)
Case 210, 211, 212, 213, 214, 216
Chaine = Mid(Chaine, 1, index - 1) & "O" &_
Mid(Chaine, index + 1)
Case 217, 218, 219, 220
Chaine = Mid(Chaine, 1, index - 1) & "U" &_
Mid(Chaine, index + 1)
Case 165, 221
Chaine = Mid(Chaine, 1, index - 1) & "Y" &_
Mid(Chaine, index + 1)
Case 253, 255
Chaine = Mid(Chaine, 1, index - 1) & "y" &_
Mid(Chaine, index + 1)
Case 241
Chaine = Mid(Chaine, 1, index - 1) & "n" &_
Mid(Chaine, index + 1)
Case 209
Chaine = Mid(Chaine, 1, index - 1) & "N" &_
Mid(Chaine, index + 1)
' Case Else
End Select
index = index + 1
End If
Wend

If Str <> "" Then
Epuration = Chaine
Else
Epuration = Str
End If
End Function

Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbLf &_
errRec.FormatText
End If
Fail message
End Sub

'###############################################################

Voila, pour ceux qui veulent faire evoluer les script, laissez-vous
aller, y'a pas de mal a se faire plaisir. Pour la diffusion sur le
net, merci de prevenir que c'est a moi et pas a vous a l'origine....

Merci pour votre aide, je vous previens des que j'ai commente les code
et trouve comme editer les ID3 en VBS.

A+.
Harick.