You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用eyed3为清空元数据后的MP3文件添加评论?

解决eyed3清空MP3元数据后添加新评论的问题

核心问题

调用tag.clear()清空所有元数据后,mp3.tag.comments会返回None,无法通过遍历现有评论的方式修改,需要使用添加新评论的专用方法。

解决方案

可以通过两种方式给清空元数据后的MP3添加评论:

方法1:使用Tag对象的add_comment快捷方法

这是最简单的实现方式,直接调用Tag内置方法添加评论:

import eyed3

FILE_PATH = "target.mp3"
mp3 = eyed3.load(FILE_PATH)

# 执行你的元数据处理流程
original_title = mp3.tag.title.title()  # 复制原标题并转为标题格式
original_artist = mp3.tag.artist.title()
mp3.tag.clear()
# 重新添加格式化后的元数据
mp3.tag.title = original_title
mp3.tag.artist = original_artist

# 添加新评论
mp3.tag.add_comment("这是清空元数据后新增的评论")

# 保存修改
mp3.tag.save()

方法2:直接操作CommentsAccessor的add方法

如果需要自定义评论的语言、描述等参数,可以直接操作comments属性(若为None则手动初始化):

import eyed3
from eyed3.id3.tag import CommentsAccessor

FILE_PATH = "target.mp3"
mp3 = eyed3.load(FILE_PATH)

mp3.tag.clear()
# 重新添加其他格式化元数据...

# 初始化CommentsAccessor(当comments为None时)
if mp3.tag.comments is None:
    mp3.tag.comments = CommentsAccessor(mp3.tag)

# 添加带自定义参数的评论
mp3.tag.comments.add(
    text="自定义内容的评论",
    lang="zh",  # 语言代码,中文为zh,英文为eng
    description="备注"  # 可选的评论描述字段
)

mp3.tag.save()

原有代码失效原因

原有代码依赖遍历已存在的评论列表,但tag.clear()会将mp3.tag.comments置为None,不存在可迭代的评论集合。添加新评论必须调用add()方法,该方法会自动创建新的Comment实例并绑定到标签中。

内容的提问来源于stack exchange,提问作者Turbo Deoradhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:07:06