web-dev-qa-db-ja.com

Pythonを使用してアルバムアートをMP3にどのように埋め込みますか?

MP3タグの読み取りと書き込みに変異原を使用していますが、アルバムアートをファイルに直接埋め込むことができるようにしたいと考えています。

28
Connor

アルバムカバーとしてexample.pngをmutagenを使用してexample.mp3に追加する方法は次のとおりです。

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, error

audio = MP3('example.mp3', ID3=ID3)

# add ID3 tag if it doesn't exist
try:
    audio.add_tags()
except error:
    pass

audio.tags.add(
    APIC(
        encoding=3, # 3 is for utf-8
        mime='image/png', # image/jpeg or image/png
        type=3, # 3 is for the cover image
        desc=u'Cover',
        data=open('example.png').read()
    )
)
audio.save()
37

eyeD モジュールを使用して、これを正確に実行しました。

def update_id3(mp3_file_name, artwork_file_name, artist, item_title):    
    #edit the ID3 tag to add the title, artist, artwork, date, and genre
    tag = eyeD3.Tag()
    tag.link(mp3_file_name)
    tag.setVersion([2,3,0])
    tag.addImage(0x08, artwork_file_name)
    tag.setArtist(artist)
    tag.setDate(localtime().tm_year)
    tag.setTitle(item_title)
    tag.setGenre("Trance")
    tag.update()
12
Owen

MP3に特別なタイプのフレームを追加する必要があるようです。 ID3タグ のサイトを参照してください

また、変異原のチュートリアルでは、変異原にID3タグを追加できることを示しています 参照

3
Andrew Cox

可能な解決策

画像をたくさんのファイルに埋め込もうとしていますか?もしそうなら、私はディレクトリのセットを調べ、画像を探し、それらをMP3ファイルに埋め込むスクリプト(リンクを参照)を見つけました。これは、(現在は機能していない)iPhoneのCoverFlowで実際に何かを見たいときに役立ちました。

1
Christopher

Id3のものを開発しているときに私が何をしたかをチェックするのに大いに役立った素敵な小さなCLIツールは、id3v2の変異原バージョンであるmid3v2です。 Python変異原ライブラリにバンドルされています。この小さなツールのソースから、変異原の使用方法について多くの回答が得られました。

0
jpoppe