Próbuję zaktualizować metadane wiązki plików mp3 przy użyciu języka Python i jego interfejsu API eyeD3.Python + eyeD3: nie można zapisać daty na metadane mp3
Wygląda to dość proste, kod używam wygląda następująco:
if not eyeD3.isMp3File(filename):
print filename, 'is not a mp3 file. Ignoring it.'
tag = eyeD3.Tag()
tag.link(filename)
tag.setVersion(eyeD3.ID3_V2)
tag.setTextEncoding(eyeD3.UTF_8_ENCODING)
tag.setTitle(dataset['Title'])
tag.setDate(datetime.datetime.now().year)
tag.update()
Co się dzieje: kod wykonywany po cichu (nie ma błędów i wyjątki), tytuł jest ustawiony prawidłowo, data jest nie zestaw w pliku docelowym. Pozostaje pusty lub ustawiony na poprzednią wartość (zaznaczone są oba przypadki).
Pomoc dla funkcji setDate nie jest szczególnie zabawne:
setDate(self, year, month=None, dayOfMonth=None, hour=None, minute=None, second=None, fid=None) unbound eyeD3.tag.Tag method
... ale mówi mi, że moje wezwanie powinno być ok. Jakieś pomysły, co się tutaj dzieje?
Po zerknięciu na kod źródłowy nie widzę niczego oczywistego. –
Okazało się, że linia poleceń eyeD3 robi dokładnie to samo: nie zmienia daty, ale nie zgłasza żadnego błędu. Po zbliżającym się terminie użyłem Mutagen do tego celu. Chyba mamy gdzieś błąd w eyeD3. – zencodism