Vinyl-fm

scrobble vinyl to last.fm

You want to scrobble all of your music.  Even the vinyl. 

The goal of this project is to let you do that.  While this has a ways to go before it's great, it already works in many cases. 

Here's what you need to run vinyl-fm:

vinyl-fm.  Download it above! 

A record player with USB-out plugged into your computer (It might work with mini jack, but I haven't tested it.  It probably won't work over-the-air with a microphone yet.) 

A bunch of software requirements.  First get portaudio (I built this from source; I think there was a problem with the homebrew version). 

Then:

pip install pyaudio Cython pyechonest pylast

Finally, you need to get the EchoNest Music Fingerprint codegen binary.  This is the library that we use to create create a fingerprint of the incoming audio clip.  The EchoNest's servers then try to match this to one of the millions of songs in their database. 

Ok, now let's scrobble some vinyl! 

python vinylfm.py

You will be asked to enter your username and password.  The password is immediately hashed and authorized by last.fm (it's not being saved in plaintext anywhere- don't worry!). 

Make sure that you switch your sound input settings to use the record player (however it's attached). 

Now start playing records!  Hopefully you'll see some indication in the terminal that vinyl-fm has identified and scrobbled your tunes. 

I know, it's rough. 

Please leave feedback!  File a bug report!  Whatever!  I have to know what doesn't work to know what to fix. 

Here's my current to-do list:

Interpolate album and songs given some successful matches

De-dupe matches with similar titles so the same song doesn't get scrobbled several times in a row. 

More intelligent recording (looking for silence to find the beginning of a song?)