eyeD3 doesn't parse certain id3 tags
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
eyed3 (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: eyed3
Ubuntu release: 9.10 (Karmic)
Package: eyeD3 0.6.17-1
Recently I retagged all of my music with MusicBrainz's Picard. Where possible, Picard will include 'Album Artist', 'Album Artist Sort Order', 'Artist', and 'Artist Sort Order' in the id3 tags. I use eyeD3 in a bash script that parses each music file and subsequently collects certain information into a text file. I encountered problems with this when eyeD3 didn't parse particular files providing an error message along the lines of "'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)"
The only files eyeD3 produced this error with were files containing non-English characters, examples of some of the artists: múm, Sigur Rós, Stafrænn Hákon. Furthermore, when I examined it a bit more I found that if I removed the 'Album Artist Sort Order' tag and left all other tags intact then eyeD3 would parse all files correctly including the files that had failed before and even artists who were tagged entirely in a different script e.g. Пётр Ильич Чайковский
Steps to reproduce:
1) Add 'Album Artist Sort Order' tag (some taggers have a different name for this tag) to a music file and provide a value containing any non-English character e.g. æ, á
2) Scan the file with eyeD3 which should result in similar error mentioned above
ProblemType: Bug
Architecture: i386
CheckboxSubmission: 57367fa8b4b1233
CheckboxSystem: d00f84de8a55581
Date: Wed Jan 13 18:26:17 2010
DistroRelease: Ubuntu 9.10
InstallationMedia: Ubuntu 9.10 "Karmic Koala" - Release Candidate i386 (20091020.3)
Package: eyed3 0.6.17-1
PackageArchitec
ProcEnviron:
LANG=en_IE.UTF-8
SHELL=/bin/bash
ProcVersionSign
SourcePackage: eyed3
Uname: Linux 2.6.31-17-generic i686
I had the same problem with special characters in a UserTextFrame (ALBUMARTISTSORT in my case). I verified that ENCODING is correctly inherited from my environment ("UTF-8"), yet for some reason the string convert() is still trying to use the ascii codec.
Inexplicably I fixed it by separating the printout of the lines into two calls to print instead of one with a "\n" in the middle. I would love it if someone explained why the heck it works!
I only tested UserTextFrame but I assume comments and lyrics would have the same problem so I changed those too.