How do you embed album art into an MP3 using Python?

前端 未结 5 530
Happy的楠姐
Happy的楠姐 2020-12-02 08:33

I\'ve been using mutagen for reading and writing MP3 tags, but I want to be able to embed album art directly into the file.

相关标签:
5条回答
  • 2020-12-02 09:00

    Looks like you have to add a special type of frame to the MP3. See the site on ID3 tags

    Also the tutorial for mutagen implies that you can add ID3 tags in mutagen see

    0 讨论(0)
  • 2020-12-02 09:01

    Here is how to add example.png as album cover into example.mp3 with mutagen:

    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()
    
    0 讨论(0)
  • 2020-12-02 09:09

    I've used the eyeD3 module to do this exact thing.

    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()
    
    0 讨论(0)
  • 2020-12-02 09:12

    Possible solution

    Are you trying to embed images into a lot of files? If so, I found a script (see the link) that goes through a set of directories, looks for images, and the embeds them into MP3 files. This was useful for me when I wanted to actually have something to look at in CoverFlow on my (now defunct) iPhone.

    0 讨论(0)
  • 2020-12-02 09:12

    A nice small CLI tool which helped me a lot with checking what I did while developing id3 stuff is mid3v2 which is the mutagen version of id3v2. It comes bundled with the Python mutagen library. The source of this little tool gave me also lots of answers about how to use mutagen.

    0 讨论(0)
提交回复
热议问题