Чтение/запись тега комментария mp3 в Python

Я борюсь с чтением/записью тега комментариев mp3 в Python. Частично я не могу прочитать ожидаемые значения комментариев. Или при настройке новых комментариев создается впечатление, что комментарий не сохраняется в мп3-файл.

например с Eyed3 я попробовал:

mp3 = eyed3.load(filename)
comments = mp3.tag.comments
mp3.tag.comments.set("comment set with eye3d")
mp3.tag.save()

Впоследствии я не смог увидеть комментарий при проверке в VLC.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, я узнал, что mp3-файл может содержать несколько комментариев и для каждого комментария определен язык. Многие инструменты этого не показывают и ненадежны. Я нашел исполняемый файл EyeD3 очень полезным:

$ eyeD3 ./Frank\ Sinatra\ -\ My\ Way.mp3 
/home/Frank Sinatra - My Way.mp3             [ 4.20 MB ]
--------------------------------------------------------------------------------
Time: 02:48 MPEG1, Layer III    [ ~209 kb/s @ 48000 Hz - Stereo ]
--------------------------------------------------------------------------------
ID3 v2.4:
title: My Way
artist: Frank Sinatra
album: My Way
track:      
Publisher/label: 
Comment: [Description: ] [Lang: XXX]
That's a comment entered in VLC
UserTextFrame: [Description: TRACKTOTAL]

--------------------------------------------------------------------------------

Потом я понял, что нужно следить за языком комментариев при чтении или изменении комментариев. Библиотека Eyed3 по умолчанию использует язык «eng». Вы можете передать параметр языка при настройке комментария, как показано ниже. Но это должно быть число, поэтому мне это не пригодилось.

mp3.tag.comments.set("comment set with eye3d","",b'1')

Мутаген библиотеки не знает тег комментария «из коробки», но вы можете легко зарегистрировать его, как объясняет Трэвис Кардвелл в своем блоге. Там вы можете указать значение языка в качестве параметра для Register_tag_comment. Вы можете передавать такие значения, как «eng» или «XXX». Это помогло мне.

register_tag_comment("XXX")
try:
    tag = EasyID3(entry.path)
except:
    tag = mutagen.File(path, easy=True)
    tag.add_tags()
comment = tag['comment']
tag['comment'] = ["comment set with mutagen"]
tag.save()

Кстати, я заметил, что VLC использует язык «XXX» при сохранении нового комментария. Однако это также показывает, например. 'eng' комментарии и можете их менять.

Другие вопросы по теме