Search code examples
pythonid3

Python - Add ID3 tags to mp3 file that has NO tags


I get a lot of podcasts that have no ID3 tags in them. I've tried a number of tools that I could use to loop through directories and add title and artist info to the ID3 tags, but they fail. I've tried ID3, eyed3 and mutagen. Most of the time if a file has no ID3 tag these modules fail.

Can someone recommend a good ID3 tag editor library that will work through loops? What else do I need to know about editing/adding ID3 tags when they're 100% blank? It's getting frustrating trying library after library only to find that the problem remains.

Thank you.


Solution

  • Mutagen handles this just fine:

    >>> import mutagen
    >>> from mutagen.easyid3 import EasyID3
    >>> filePath = "8049.mp3"
    
    >>> try:
    >>>    meta = EasyID3(filePath)
    >>> except mutagen.id3.ID3NoHeaderError:
    >>>    meta = mutagen.File(filePath, easy=True)
    >>>    meta.add_tags()
    >>> meta
    {}
    >>> type(meta)
    <class 'mutagen.easyid3.EasyID3'>
    >>> meta['title'] = "This is a title"
    >>> meta['artist'] = "Artist Name"
    >>> meta['genre'] = "Space Funk"
    >>> meta.save(filePath, v1=2)
    >>> changed = EasyID3("8049.mp3")
    >>> changed
    {'genre': [u'Space Funk'], 'title': [u'This is a title'], 'artist': [u'Artist Name']}