2013-06-24 3 views
1

Редактирование: попытка получить эти библиотеки для работы в python 3.3 была явно неправильным подходом, и теперь моя проблема совсем другая, поэтому я просто перепрошу ее в новом вопросе.Редактирование ID3-mp3 в python - обновленный пакет?

Я хочу иметь возможность редактировать ID3-теги mp3-файлов с помощью команд python, например, например, setAlbumName ("folderPath \ song.mp3", "albumname"). До сих пор я пробовал Mutagen, PyID3, pytagger, eyeD3, и все они кажутся устаревшими, потому что установка завершилась неудачно из-за синтаксических ошибок. Я попытался исправить это в eyeD3, но я зашел в тупик: http://i41.tinypic.com/o6zklv.png (второй снимок экрана после того, как я исправил все отпечатки и «кроме Error, e» и т. Д.).

Я пробовал то же самое с Mutagen, но я тоже столкнулся с ним, когда замена «raise KeyError, key» на «raise KeyError as key» не сработала.

Я даже не знаю, что сделать из этого одного (pytagger): http://i41.tinypic.com/29fz7mh.png

Это позволяет предположить, что там что-то не так с моей установки Python? Не попасть в это.

Итак, хотел бы кто-нибудь указать мне на пакет ID3, который работает, или пойдет на исправление устаревшего?

(Кроме того, я пытался как «питон setup.py установить» и «setup.py установить», и это, казалось, не имеет никакого значения, я на Windows 8..)

Edit: На скриншоте ниже , а также исходный код (мутагены с питоном 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' 

ответ

1

mutagen отлично работает для меня с Python 2.7.

примеры: 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. пожалуйста, отправьте образцы кода, чтобы люди могли помочь .. не ссылки на скриншоты.

p.p.s. похоже, вы пытаетесь установить Python2 libs в Python3.

+0

Как вы его устанавливаете? Как я уже сказал, это не работает для меня, когда я пишу «setup python setup.py» или «setup.py install», поскольку он, кажется, использует устаревший синтаксис, такой как «материал» печати, а не печать («материал») и 'except Error, e' вместо 'except Error as e'. Редактировать: nvm, увидел, что вы используете python 2.7. – Blrp

+0

Хорошо, я попробовал установить python 2.7, делая его по умолчанию и устанавливая мутаген, и он не работает. (Ссылка на скриншот, потому что у меня недостаточно символов для копирования трассировки.) Я получаю первую трассировку с примером, которую вы дали, а второй - при удалении audio.pprint(): http: //i41.tinypic. com/301ev5i.png – Blrp

+0

опубликуйте свой исходный код и НЕ публикуйте скриншоты –

1

Mutagen также имеет инструмент EasyID3, который обрабатывает простые задачи, такие как изменение на название файла:

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

работает как шарм. Но он имеет очень ограниченную функциональность. Дополнительные примеры: http://code.google.com/p/mutagen/wiki/Tutorial