使用Python Mutagen库嵌入M4A同步歌词:格式规范咨询
在m4a文件中嵌入同步歌词的格式规范与Mutagen实现
格式规范
m4a(AAC)文件的同步歌词采用iTunes兼容的LRC格式,具体要求如下:
- 时间戳格式为
[mm:ss.xxx],其中xxx代表三位毫秒数,例如[00:01.234]第一句歌词 - 支持单句歌词对应多个时间戳(用于重复出现的内容),格式为
[00:01.000][00:05.000]重复歌词 - 纯文本歌词(非同步)直接使用多行文本即可,无需时间戳
Mutagen实现代码
使用Mutagen的MP4类可以直接写入同步歌词,示例代码如下:
from mutagen.mp4 import MP4 # 目标m4a文件路径 audio_file = "your_song.m4a" # 定义同步歌词内容 synced_lyrics = """[00:00.000]测试歌曲 [00:02.100]第一句测试歌词 [00:05.400]第二句测试歌词 [00:08.700]第三句测试歌词 """ # 打开文件并写入歌词 with MP4(audio_file) as audio: # 直接赋值给lyrics字段 audio["lyrics"] = synced_lyrics # 保存修改 audio.save()
疑难处理
如果直接写入lyrics字段不生效,可以尝试使用Apple iTunes的自定义标签字段:
with MP4(audio_file) as audio: # 自定义标签需要传入字节数组列表 audio["----:com.apple.iTunes:LYRICS"] = [synced_lyrics.encode("utf-8")] audio.save()
注意事项
- 时间戳的毫秒部分必须是三位数字,否则部分播放器无法解析同步效果
- 同步歌词的兼容性依赖播放器对iTunes歌词规范的支持,部分小众播放器可能仅识别纯文本歌词
- 写入前建议备份原文件,避免元数据损坏
内容的提问来源于stack exchange,提问作者ToboBaldo
相关产品推荐
相关产品推荐

