pylastfp er et Python grensesnitt til Last.fm akustiske fingeravtrykk bibliotek (kalt fplib) og dets tilhørende API-tjenester. & Nbsp; Den utfører fingeravtrykk utvinning, fingeravtrykk ID-oppslag, og spor metadata oppslag. Den kommer også med noen hjelpere for dekoding lydfiler.
Installasjon
Å installere, du vil trenge en kompilator og avhengigheter som kreves av fplib selv: fftw (kompilert for single-presisjon flyter) og libsamplerate.
Når du har disse, kan du enkelt installere fra PyPI bruker pip:
PIP installere pylastfp
Eller, hvis du ikke har pip (eller easy_install), leder til nedlastingssiden. Den normale installasjonskommandoen skal fungere:
python setup.py installere
Å bygge fra versjonskontroll kilden (dvs, ikke fra en utgivelse tarball), vil du også trenge Cython. (Kilde distribusjoner inkluderer den genererte C ++ fil, unngå behovet for Cython. Denne pakken er setup.py spiller triks for å avgjøre hvorvidt du har Cython installert.)
Running
Du kan kjøre den medfølgende fingerprinter / lookup script, lastmatch.py, for å teste installasjonen:
& Nbsp; lastmatch.py mysterious_music.mp3
Dette vil vise metadata kamper fra Last.fm database. Skriptet bruker GStreamer sin Python bindinger å dekode MP3. Du kan også bruke pymad stedet for GStreamer (for MPEG kun lyd) ved å levere det -m flagget:
& Nbsp; lastmatch.py -m mysterious_music.mp3
Ved hjelp i koden
Skriptet oppviser på vanlig måte til å bruke pylastfp, som er denne:
>>> Import lastfp
>>> Xml = lastfp.gst_match (apikey, bane)
>>> Kamper = lastfp.parse_metadata (xml)
>>> utskrifts kampene [0] ['artist'], '-', fyrstikker [0] ['tittel']
The National - Fake Emprire
Dette eksemplet bruker gst_match praktisk funksjon, som bruker GStreamer å dekode lyddata. Funksjonen importerer GStreamer modulen når kalt, så hvis du ikke ønsker å være avhengig av GStreamer, bare ikke kalle denne funksjonen. En annen lignende funksjon kalt mad_match stedet importerer pymad bibliotek og bruker MAD å dekode stedet for GStreamer.
Hvis du har din egen måte å dekoding lyd, kan du bruke lavere nivå grensesnitt:
>>> Xml = lastfp.match (apikey, pcmdata, samplerate, time_in_secs)
Selvfølgelig, trenger du en PCM stream for lyden du vil fingeravtrykk. Den pcmdata parameteren må være en iterable av Python-str eller buffer objekter som inneholder PCM data som matriser av C kort (16-bit heltall) verdier.
Alle disse funksjonene (kamp, gst_match, og mad_match) aksepterer en ekstra valgfri parameter kalt metadata. Det bør være en dict inneholder gjeldende gjette på filens metadata. Last.fm kan bruke denne informasjonen til å forbedre sin database. Den dict bør bruke disse tastene (som alle er valgfritt): "artist", "album", og "track".
Modulen utfører internt thread-safe API begrense til fem forespørsler per sekund, i samsvar med Last.fm sin API TOS
Hva er nytt i denne utgaven.
< p>- Bruk audioread stedet for de inkluderte pygst og pymad dekodere.
Hva er nytt i versjon 0.5:
- Håndtak tomme svar fra API. setup.py søker nå Homebrew bruker lokalt prefiks.
Hva er nytt i versjon 0.4:
- Fix opprydding bug i gstdec som var årsak filer å forbli åpen .
Hva er nytt i versjon 0.3:
- Fix skrivefeil i håndtering av HTTP-feil. Behandle saker når HTTP statuslinjen er misformet
Hva er nytt i versjon 0.2:
- Løs et fryktelig minnelekkasje. Mislykkes trygt når filen er for kort. Trygg håndtere misformet XML returnert fra API. Håndtak og avsløre HTTP feil.
Krav
- Python
Kommentarer ikke funnet