Для этого я использую Python 2.7.13, Windows 10 и пакет eyed3, как описано здесь.
Цель: я пытаюсь создать сценарий, который может вводить любые метаданные ID3 для файлов MP3, в которых отсутствует информация.
Проблема: сценарий правильно обновляет метаданные, но не может добавить информацию на экран «Подробности» свойств MP3 (экран сведений о MP3). Однако, если я сначала вручную ввожу данные в эти поля перед запуском скрипта, он правильно добавляет метаданные и показывает их на экране «Подробности»! Еще одна вещь, которую я заметил, заключается в том, что мне нужно ввести данные хотя бы в одно поле, чтобы скрипт правильно заполнил все поля. Кажется, что это инициализирует и каким-то образом разрешает доступ к полям...
В документации eyed3 приведен пример кода, которому я более или менее точно следовал в своем коде:
import eyed3
import eyed3.mp3
path = [path to some MP3 file]
if eyed3.mp3.isMp3File(path):
audiofile = eyed3.load(path) # load file from file path
audiofile.tag.artist = u"Artist" # u needed to denote unicode
audiofile.tag.album_artist = u"Album Artist"
audiofile.tag.album = u"Album"
audiofile.tag.save() # save altered tags
Вопросы:
- Есть ли какое-то скрытое разделение между метаданными ID3 и фактическими полями, отображаемыми на экране «Подробности» свойств MP3, о которых я не знаю?
- Я видел еще один вопрос относительно проблемы с глазами3, которая была решена используя initTag(), когда файл не имеет тегов ID3 для начала. Хотя у меня не было такой же ошибки, может ли моя проблема быть связана?
- Могу ли я пропустить оператор импорта?
- Должен ли я просто попробовать другой модуль Python для управления метаданными ID3?
Я пробовал всевозможные тесты, но не могу найти никаких других результатов, которые могли бы указать на решение.
Заранее спасибо всем, кто найдет время, чтобы прочитать это! Любая помощь приветствуется :)