python - 使用 Mutagen 在 MP4 文件中嵌入专辑封面

标签 python m4a albumart mutagen

我希望能够使用mutagen将专辑封面添加到文件中,但是当我将其添加为文件时,它会返回:

File "D:\Download\pandora\renamingMETAEFF.pyw", line 71, in <module>
    meta['covr'] = image
File "C:\Users\AMD\AppData\Local\Programs\Python\Python35\lib\site-packages\mutagen\_file.py", line 67, in __setitem__
    self.tags[key] = value
File "C:\Users\AMD\AppData\Local\Programs\Python\Python35\lib\site-packages\mutagen\mp4\__init__.py", line 357, in __setitem__
    self._render(key, value)
File "C:\Users\AMD\AppData\Local\Programs\Python\Python35\lib\site-packages\mutagen\mp4\__init__.py", line 371, in _render
    return render_func(self, key, value)
File "C:\Users\AMD\AppData\Local\Programs\Python\Python35\lib\site-packages\mutagen\mp4\__init__.py", line 732, in __render_cover 
    b"data", struct.pack(">2I", imageformat, 0) + cover))

TypeError: can't concat bytes to str


相关的一段代码是这样的:
from mutagen.mp4 import MP4

image = jpgname + '.jpg'
meta['\xa9nam'] = song
meta['\xa9ART'] = artist
meta['\xa9alb'] = album
meta = MP4(songPath)
meta['covr'] = image
meta.save()

其余的元数据工作得很好,但是图像部分完全破坏了整个代码。

最佳答案

来自 mutagen docs :

MP4 meta 'covr' – cover artwork, list of MP4Cover objects (which are tagged strs).

MP4Cover imageformat – format of the image (either FORMAT_JPEG or FORMAT_PNG)

from mutagen.mp4 import MP4, MP4Cover

video = MP4("test.mp4")

video["\xa9nam"] = "Test1"
video["\xa9ART"] = "Test2"
video["\xa9alb"] = "Test3"

with open("cover.jpg", "rb") as f:
    video["covr"] = [
        MP4Cover(f.read(), imageformat=MP4Cover.FORMAT_JPEG)
    ]

video.save()

关于python - 使用 Mutagen 在 MP4 文件中嵌入专辑封面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37897801/

相关文章:

Python:使用 np.savetxt 使用 float 和字符串保存数据

encoding - 非标准采样率可以与 AAC 编码一起使用吗?

python - 抽象id3标签、m4a标签、flac标签之间的转换

android - 录制 .m4a 文件 Android

iphone - 每次歌曲更改或每隔几秒使用 Stormy Productions RadioKit 获取专辑封面以从 URL 更新

java - 用Java读取媒体文件的APIC图像数据

audio - FFmpeg:将文件夹中的所有音频(mp3)批量转换为带有专辑封面的视频(mp4)

python - 属性错误 : 'gurobipy.LinExpr' object has no attribute '__colno__'

python - 将按键修饰符与搅拌器模式一起使用

python - 在 Python 中从对角向量创建密集矩阵的有效方法?