Ejemplo n.º 1
0
 def lookup(self, files):
     if len(files) > 1:
         raise Exception("Can only look up one file at a time")
     res = files[0]
     fname = res["file"]
     stime = time.time()
     duration, fp = acoustid.fingerprint_file(fname)
     actual_dur = res.get("data", {}).get("duration", duration)
     mtime = time.time()
     answer = None
     fptime = 0
     looktime = 0
     try:
         response = acoustid.lookup(app_key, fp, actual_dur,
                                    acoustid.DEFAULT_META)
         etime = time.time()
         fptime = (mtime - stime) * 1000
         looktime = (etime - mtime) * 1000
         if response.get("status") == "ok":
             chromaresults = response.get("results", [])
             if len(chromaresults):
                 rec = chromaresults[0].get("recordings", [])
                 if len(rec):
                     answer = rec[0].get("id")
     except acoustid.WebServiceError:
         pass
     res["result"] = answer
     res["fptime"] = fptime
     res["lookuptime"] = looktime
     return [res]
Ejemplo n.º 2
0
 def lookup(self, files):
     if len(files) > 1:
         raise Exception("Can only look up one file at a time")
     res = files[0]
     fname = res["file"]
     stime = time.time()
     duration, fp = acoustid.fingerprint_file(fname)
     actual_dur = res.get("data", {}).get("duration", duration)
     mtime = time.time()
     answer = None
     fptime = 0
     looktime = 0
     try:
         response = acoustid.lookup(app_key, fp, actual_dur, acoustid.DEFAULT_META)
         etime = time.time()
         fptime = (mtime-stime)*1000
         looktime = (etime-mtime)*1000
         if response.get("status") == "ok":
             chromaresults = response.get("results", [])
             if len(chromaresults):
                 rec = chromaresults[0].get("recordings", [])
                 if len(rec):
                     answer = rec[0].get("id")
     except acoustid.WebServiceError:
         pass
     res["result"] = answer
     res["fptime"] = fptime
     res["lookuptime"] = looktime
     return [res]
Ejemplo n.º 3
0
    def fingerprint(self, file):
        duration, fp = acoustid.fingerprint_file(file)
        tag = eyeD3.Tag()
        tag.link(file)
        artist = tag.getArtist()
        album = tag.getAlbum()
        title = tag.getTitle()
        track = tag.getTrackNum()
        if isinstance(track, tuple):
            track = track[0]

        u = uuid.uuid4()
        fpid = str(u)
        data = {
            "duration": "%d" % int(duration),
            "fingerprint": fp,
            "artist": artist,
            "album": album,
            "track": title,
            "mbid": fpid
        }
        if track:
            data["trackno"] = "%s" % track
        return (fpid, data)
Ejemplo n.º 4
0
    def fingerprint(self, file):
        duration, fp = acoustid.fingerprint_file(file)
        tag = eyeD3.Tag()
        tag.link(file)
        artist = tag.getArtist()
        album = tag.getAlbum()
        title = tag.getTitle()
        track = tag.getTrackNum()
        if isinstance(track, tuple):
            track = track[0]

        u = uuid.uuid4()
        fpid = str(u)
        data = {"duration": "%d" % int(duration),
                "fingerprint": fp,

                "artist": artist,
                "album": album,
                "track": title,
                "mbid": fpid
               }
        if track:
            data["trackno"] = "%s" % track
        return (fpid, data)