J'ai hérité d'environ 2000 fichiers MP3. Pour la majorité d'entre eux, leurs balises ID3 s'affichent dans Amarok. J'ai besoin d'un logiciel qui met à niveau les balises ID3 vers le type v2.4 $03
(c'est-à-dire l'encodage UTF-8), supprime toutes les balises v1 et est également intelligent pour déterminer l'encodage d'origine au cas par cas (probablement l'un des Windows-1252, sans nomenclature UTF-16 ou GB18030).
Avant de commencer à programmer cela par moi-même au-dessus de TagLib, existe-t-il déjà une solution aussi complète que je pourrais utiliser?
Je ne recommande pas Musicbrainz - il est fortement biaisé pour la musique publiée aux États-Unis et presque inutile pour moi. Je ne recommande pas le logiciel de marquage ID3 général sans le tester d'abord par rapport à mes besoins - la plupart d'entre eux
- ne supporte pas la v2.4
- ont, franchement dit, des idées discrètes sur le codage des caractères
- n'ont pas de fonctionnalités d'automatisation (je ne veux pas passer mon temps à éditer manuellement).
Je ne suis pas non plus (encore) intéressé par le nettoyage de balises, le renommage en masse ou les logiciels de catégorisation uniquement; J'ai d'abord fait l'étape de normalisation susmentionnée.
mid3v2
n'est que la moitié de la solution. Après l'avoir essayé, il n'est certainement pas bon avec les encodages mal identifiés dont je souffre, c'est-à-dire qu'une balise ID3 mise à niveau s'affiche toujours mal dans Amarok. Mutagen échoue à mon exigence de «savoir comment comprendre l'encodage d'origine»; il suppose allègrementLatin1
/Windows-1252
, qui est conforme au standard, mais inutile pour le monde réel désordonné. Je suis enclin à ne pas accepter cette réponse pour le moment; Je vais donner quelques jours de plus pour d'autres réponses. Si rien de bon ne vient, vous êtes accepté.mid3v2
n'est pas trop brillante, et cela ne me surprend pas ... mais je pense que python a des modules d'encodage de caractères (peuticonv
- être ou similaires) qui sont plus intelligents et pourraient être utiles à un bricolage- euh.Je ne pense pas que vous allez trouver une application autonome qui corrigera votre sélection particulière d'encodages mal étiquetés. Avoir un mélange de cp1252, UTF-16 et GB-18030 est assez inhabituel et je ne pense pas que les logiciels existants seront capables de résoudre cela automatiquement.
Je téléchargerais donc Mutagen et j'écrirais un script Python personnalisé pour automatiser vos propres décisions sur la façon de corriger les encodages inconnus. Par exemple:
Le script ci-dessus fait quelques hypothèses:
Seules les balises marquées comme étant dans l'encodage 0 sont incorrectes. (Le codage ostensiblement 0 est ISO-8859-1, mais en pratique, il s'agit souvent d'une page de codes par défaut de Windows.)
Si une étiquette est marquée comme étant en UTF-8 ou en encodage UTF-16, elle est supposée être correcte, et simplement convertie en UTF-8 si ce n'est pas déjà fait. Personnellement, je n'ai jamais vu d'erreur ID3 marqués comme UTF (encodages 1-3). Heureusement, le codage 0 est facile à récupérer dans ses octets d'origine car ISO-8859-1 est un mappage direct 1 à 1 des valeurs d'octets ordinaux.
Lorsqu'une balise d'encodage 0 est rencontrée, le script tente d'abord de la refondre en GB18030, puis si elle n'est pas valide, revient à la page de code 1252. Les codages à un octet comme cp1252 auront tendance à correspondre à la plupart des séquences d'octets, il est donc préférable de les mettre à la fin de la liste des encodages à essayer.
Si vous avez d'autres encodages comme cp1251 cyrillique, ou beaucoup de noms de fichiers cp1252 avec plusieurs caractères accentués d'affilée, qui se trompent pour GB18030, vous aurez besoin d'un algorithme de devinette plus intelligent. Peut-être regardez le nom du fichier pour deviner quel type de caractères sont susceptibles d'être présents?
la source
Que diriez-vous de Mp3Tag avec Wine ?
Caractéristiques (entre autres):
la source
Foobar a un support de marquage assez complet . Il coule sous le vin.
la source
il y a aussi EasyTag
vous voudrez peut-être aussi savoir que id3v2.3 est généralement le format préférable, car le lecteur Windows Media ne prend pas en charge 2.4
la source