Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the "TPE1" KeyError?

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

like image 600
Cisplatin Avatar asked Jul 21 '13 21:07

Cisplatin


2 Answers

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

like image 163
Tiberiu C. Avatar answered Sep 21 '22 00:09

Tiberiu C.


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.

like image 29
delaflota Avatar answered Sep 22 '22 00:09

delaflota