예제 #1
0
파일: metadata.py 프로젝트: gsy/gmusic
 def parse(self):
     print os.path.abspath(self.filename)
     tag = MutagenFile(self.filename)
     if tag == None:
         print self.filename
     else:
         for key, value in tag.iteritems():
             if key in GENERAL_KEYS.keys():
                 self.dict[ GENERAL_KEYS[key] ] = unicode(value)
             elif key in MP3_KEYS.keys():
                 self.dict[ MP3_KEYS[key] ] = unicode(value)
             elif key in MP4_KEYS.keys():
                 self.dict[ MP4_KEYS[key] ] = unicode(value)
예제 #2
0
파일: network.py 프로젝트: kragniz/musc
    class Metadata(object):
        """Get the metadata for a file.
        Data you probably need:
            artist
            title
            album
            tracknumber
            date"""

        def __init__(self, filename):
            self._audio = File(filename, easy=True)
            for k, v in self._audio.iteritems():
                # drop any unicode character we can't decode into ascii so md5
                # works (because md5 uses bytes, not characters)
                self._audio[k] = v[0].encode("ascii", "ignore")

        def __getattr__(self, name):
            return self._audio[name][0]
예제 #3
0
class Vorbis(object):
    def __init__(self, filename):
        self.filename = filename
        ext = os.path.splitext(filename)[1].lower()
        if ext == u'.flac':
            self.file = FLAC(filename)
        elif ext == u'.wma':
            self.file = ASF(filename)
        elif ext == u'.wv':
            self.file = WavPack(filename)
        elif ext in [u'.mpc', u'.mpp', u'.mp+']:
            self.file = Musepack(filename)
        elif ext in [u'.ogg', u'.ape']:
            self.file = File(filename)
        else:
            raise TypeError

    def readAll(self):
        return {k: unicode(v[0]) for k, v in self.file.iteritems()}