pylastfp è un'interfaccia Python alla biblioteca di Last.fm acustico impronte digitali (chiamato fplib) e dei suoi servizi API correlati. & Nbsp; Esegue l'estrazione di impronte digitali, impronte digitali ID lookup, e metadati pista di ricerca. Inoltre è dotato di alcuni aiutanti per la decodifica dei file audio.
Installazione
Per installare, è necessario un compilatore e le dipendenze richieste dal fplib sé: fftw (compilato per carri precisione singola) e libsamplerate.
Una volta che avete questi, si può facilmente installare da PyPI utilizzando pip:
pip installare pylastfp
In alternativa, se non si dispone di pip (o easy_install), testa alla pagina di download. Il comando normale installazione dovrebbe funzionare:
python setup.py install
Per compilare dalla sorgente di controllo di versione (cioè, non da un tarball di rilascio), avrete anche bisogno di Cython. (Le distribuzioni sorgenti includono il file generato C ++, evitando la necessità di Cython. Setup.py di questo pacchetto gioca brutti scherzi a rilevare se avete installato Cython.)
Esecuzione
È possibile eseguire lo script incluso fingerprinter / ricerca, lastmatch.py, per testare l'installazione:
& Nbsp; mysterious_music.mp3 lastmatch.py
Questo mostrerà partite metadati dal database di Last.fm. Lo script utilizza binding Python di Gstreamer per decodificare MP3. È inoltre possibile utilizzare pymad invece di Gstreamer (per MPEG solo audio) fornendo il flag -m:
& Nbsp; lastmatch.py -m mysterious_music.mp3
Utilizzo nel vostro codice
Lo script presenta il solito modo di usare pylastfp, che è questo:
>>> Lastfp importazione
>>> Xml = lastfp.gst_match (apikey, percorso)
>>> Partite = lastfp.parse_metadata (xml)
>>> partite stampa [0] ['artista'], '-', partite [0] ['title']
The National - Emprire Falso
Questo esempio utilizza la funzione convenienza gst_match, che utilizza Gstreamer per decodificare i dati audio. La funzione importa il modulo Gstreamer quando viene chiamato, quindi se non si vuole dipendere Gstreamer, solo che non chiamare questa funzione. Un'altra funzione simile chiamata mad_match importa invece la biblioteca pymad e utilizza MAD per decodificare invece di Gstreamer.
Se avete il vostro modo di audio decodifica, è possibile utilizzare l'interfaccia di livello inferiore:
>>> Xml = lastfp.match (apikey, pcmdata, campionamento, time_in_secs)
Naturalmente, avrete bisogno di un flusso PCM per l'audio che si desidera prendere le impronte digitali. Il parametro pcmdata deve essere un iterabile di Python oggetti str o tampone contenente dati PCM come array di valori C brevi (intero a 16 bit).
Tutte queste funzioni (partita, gst_match e mad_match) accettare un ulteriore parametro opzionale metadati. Dovrebbe essere un dict contenente la tua ipotesi corrente metadati del file. Last.fm potrebbero utilizzare queste informazioni per migliorare il loro database. Il dict dovrebbe utilizzare questi tasti (ognuno dei quali sono opzionali): "artista", "album", e "traccia".
Il modulo esegue internamente thread-safe API limitazione a 5 query al secondo, in conformità con TOS API Last.fm
Cosa c'è di nuovo in questa versione:.
< p>- Usa audioread invece dei pygst e pymad decoder inclusi.
Cosa c'è di nuovo in versione 0.5:
- Handle risposte vuote dalla API. setup.py cerca ora il prefisso utente locale Homebrew.
Cosa c'è di nuovo nella versione 0.4:
- Fix pulitura bug in gstdec che causava file rimangano aperti .
Cosa c'è di nuovo in versione 0.3:
- Correzione errore di battitura nella gestione degli errori HTTP. Gestire i casi in cui la linea di stato HTTP non è corretto
Cosa c'è di nuovo in versione 0.2:
- Fissare una perdita di memoria orribile. Fail sicuro quando il file è troppo breve. Sicuro gestire XML non valido restituito dal API. Maneggiare ed esporre gli errori HTTP.
Requisiti
- Python
I commenti non trovato