'Ensure that all string attributes on this object, and the
constituent `TrackInfo` objects, are decoded to Unicode.'

def decode(self, codec='utf-8'):

    for fld in ['album', 'artist', 'albumtype', 'label', 'artist_sort', 'catalognum', 'script', 'language', 'country', 'albumstatus', 'albumdisambig', 'artist_credit', 'media']:
        value = getattr(self, fld)
        if isinstance(value, bytes):
            setattr(self, fld, value.decode(codec, 'ignore'))
    if self.tracks:
        for track in self.tracks:
            track.decode(codec)
