5

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()

メタデータの残りの部分は問題なく動作しますが、画像部分がコード全体を完全に壊してしまいます。

4

1 に答える 1

8

変異原ドキュメントから:

MP4 メタ 'covr' – カバー アートワーク、MP4Cover オブジェクトのリスト (strs とタグ付けされています)。

MP4Cover imageformat – 画像の形式 (FORMAT_JPEG または 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()
于 2016-06-18T14:37:43.170 に答える