2013-06-24 1 views
1

Editer: Essayer de faire fonctionner ces bibliothèques dans python 3.3 était clairement la mauvaise approche, et mon problème est maintenant complètement différent, alors je vais juste le poser à nouveau dans une nouvelle question. Je veux être capable d'éditer des tags ID3 de fichiers mp3 avec des commandes python, par exemple quelque chose comme setAlbumName ("folderPath \ song.mp3", "albumname"). Jusqu'à présent, j'ai essayé Mutagen, PyID3, pytagger, eyeD3, et ils semblent tous être obsolètes parce que l'installation échoue en raison d'erreurs de syntaxe. J'ai essayé de le réparer dans eyeD3, mais j'ai frappé une impasse: http://i41.tinypic.com/o6zklv.png (deuxième capture d'écran après que j'avais fixé toutes les impressions et "sauf erreur, e" et ainsi de suite). J'ai essayé la même chose avec Mutagen, mais je suis tombé sur un mur là aussi en remplaçant "raise KeyError, key" par "raise KeyError as key" qui ne fonctionnait pas.Édition ID3-mp3 en python - mise à jour du paquet?

Je ne savais même pas quoi faire de celui-ci (pytagger): http://i41.tinypic.com/29fz7mh.png

Il semble suggérer qu'il ya quelque chose de mal avec mon installation de python? Ne pas entrer dans ça.

Ainsi, quelqu'un voudrait me pointer vers un package ID3 qui fonctionne, ou avoir un aller à la fixation d'un périmé?

(Aussi, j'ai essayé à la fois « python setup.py install » et « setup.py install » et il semblait faire aucune différence que je suis sur Windows 8..)

Modifier: la capture d'écran ci-dessous , ainsi que le code source (mutagène avec python 2.7.5)

from mutagen.mp3 import MP3 
p = "E:\\Musik\\Aeon\\2005 Bleeding the False\\01 Cenobites - Copy.mp3" 
audio = MP3(p) 
audio["title"] = "An example" 
audio.pprint() 
audio.save() 

_

Traceback (most recent call last): 
    File "id3tag.py", line 5, in <module> 
    audio.pprint() 
    File "C:\Python27\lib\site-packages\mutagen\__init__.py", line 138, in pprint 
    try: tags = self.tags.pprint() 
    File "C:\Python27\lib\site-packages\mutagen\id3.py", line 190, in pprint 
    frames = list(map(Frame.pprint, self.values())) 
TypeError: unbound method pprint() must be called with Frame instance as first a 
rgument (got str instance instead) 

_

from mutagen.mp3 import MP3 
p = "E:\\Musik\\Aeon\\2005 Bleeding the False\\01 Cenobites - Copy.mp3" 
audio = MP3(p) 
audio["title"] = "An example" 
audio.save() 

_

Traceback (most recent call last): 
    File "id3tag.py", line 7, in <module> 
    audio.save() 
    File "C:\Python27\lib\site-packages\mutagen\__init__.py", line 132, in save 
    return self.tags.save(filename, **kwargs) 
    File "C:\Python27\lib\site-packages\mutagen\id3.py", line 370, in save 
    framedata = [self.__save_frame(frame) for (key, frame) in frames] 
    File "C:\Python27\lib\site-packages\mutagen\id3.py", line 461, in __save_frame 

    framedata = frame._writeData() 
AttributeError: 'str' object has no attribute '_writeData' 

Répondre

1

mutagen fonctionne très bien pour moi avec Python 2.7.

exemples: https://code.google.com/p/mutagen/wiki/Tutorial

from mutagen.mp3 import MP3 

audio = MP3("example.mp3") 
audio["title"] = "An example" 
audio.pprint() 
audio.save() 

P.S. s'il vous plaît envoyer des exemples de code afin que les gens peuvent aider .. pas de liens vers des captures d'écran.

p.p.s. Il semble que vous essayez d'installer les bibliothèques Python2 dans Python3.

+0

Comment installer alors? Comme je l'ai dit, ça ne marche pas pour moi quand j'écris "python setup.py install" ou "setup.py install" car il semble utiliser une syntaxe obsolète comme "print" plutôt que print ("stuff"), et 'except Error, e' au lieu de 'except Error comme e'. Edit: nvm, vu que vous utilisez python 2.7. – Blrp

+0

Ok, j'ai essayé d'installer python 2.7, le rendant par défaut et l'installation mutagen, et ça ne fonctionne pas. (Lien vers la capture d'écran parce que je n'ai pas assez de caractères pour copier le retraçage.) Je reçois le premier retraçage avec l'exemple que vous avez donné, et le second quand je supprime audio.pprint(): http: //i41.tinypic. com/301ev5i.png – Blrp

+0

postez votre code source, et ne postez pas de captures d'écran –

1

Mutagène dispose également d'un outil EasyID3, qui gère des tâches simples comme changer le titre du fichier:

from mutagen.easyid3 import EasyID3 
f = EasyID3("file.mp3") 
f["title"] = u"Some title" 
f.save() 

fonctionne comme un charme. Mais il a des fonctionnalités très limitées. Voir d'autres exemples à http://code.google.com/p/mutagen/wiki/Tutorial

Questions connexes