Question

I'm using the mutagen module for Python to get the artist of various MP3 files I have.

Here's the code giving the error:

audio = EasyID3(C:\Users\Owner\Music\Music\Blue Öyster Cult\Blue Öyster Cult\Cities on Flame)
print audio["artist"]

The code is working for most of my MP3 files, but there are a select few that continually give the following error:

KeyError: 'TPE1'

And because of that error, I can't see the artist. Note that these MP3 files all have an artist, and none of them have special characters or anything like that.

Why is this happening? And how can I fix it?

Thanks

Was it helpful?

Solution

Most likely, you're looking for a key which doesn't exist in mutagens id3 dictionary. Do a simple check like you would do for a regular dictionary:

if 'artist' in audio:
  print audio['artist']

I've tried with and without ensuring that the argument is Unicode and it works in both cases with Python 2.7.3

OTHER TIPS

This is probably because you removed its value manually via the file properties/details.
That's what happened with me (with Python 3.4).

You could redefine the key by following:

if not 'keyname' in Dic:
     'keyname' = ""

If that was the reason it should work again.

This error normally happens if you are using a version of Python less than 3.0. You need to ensure that the argument to the mutagen audio function is a Unicode string. So use

audio = EasyID3(C:\Users\Owner\Music\Music\Blue Öyster Cult\Blue Öyster Cult\Cities on Flame) print audio[U"artist"]

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top