I'm developing an application to recognize the music played by speakers. It records 32 seconds of the sound played and send a request via an API of music recognition. So far I used Echonest. But my api_key has been banned because of too many requests since I published my freeware, used by more than 200 users.

So I looked at MusicBrainz but it needs the exact duration of the entire song to receive an acceptable response, duration that my application can't guess.

So I'm looking for a free music recognition API so my freeware works. Do you know one?

Note: I used Echonest by :

  • capturing 32 seconds with ffmpeg
  • sending this command via cURL :

    curl -F "api_key=XXX" -F "filetype=mp3" -F "track=@sound.mp3" "http://developer.echonest.com/api/v4/track/upload" > info.txt

I tried to use MusicBrainz by :

  • capturing 32 seconds with ffmpeg
  • generating the fingerprint using Chromaprint with this command :

    fpcalc sound.mp3 > fingerprint.txt

  • sending this command via cURL :

    curl -F "client=XXX" -F "meta=recordings" -F "duration=32" -F "fingerprint=ABC" "http://api.acoustid.org/v2/lookup" > info.txt

  • What about adding some caching to bring down the number of requests? – liftarn Jun 23 '14 at 11:28

I suggest ACRCloud, which is a comprehensive audio recognition services providers. Music recognition is one of the solutions, with 40m tracks as its music catalogue. Offers Android, iOS, Java and Python SDKs.


How about just requiring your users to get an API Key? Without full details on your use case I can't say if this would be a good option but I think that it most cases it would be. It is not an odd thing to do and is done by some very popular open source projects - such as Responsive File Manager

  • I think this is your best bet for any service you find if you want a free service – Paul Taylor Dec 17 '15 at 15:24

A test has been made to compare Gracenote and ACRCloud and it turns out ACRCloud's music recognition service is much better than Gracenote. Please refer to: Music Recognition Competition: Gracenote vs ACRCloud.


Another option possibly more in the spirit of the question. Gracenote has one of the best recognition databases around. I've only used it from an end-user perspective rather than a developer but I have found it pretty accurate.

As noted here it takes only the first few seconds to generate an audio fingerprint. They do have a non-commercial developer program.

  • Gracenote is a huge pain in the ass if you want to implement it in Python. – Epoc Aug 26 '16 at 21:40

There's a music recognition API that gives you 300 requests for free (and you may require your users to get their own API tokens). It's called AudD, and I think that's the best music recognition API available: the DB contains most of the published songs, it's easy to test and implement in your project.

New contributor
Mikhail Samin is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

Most of the suggestions seem to cost something. This github project could let you do your own in house solution maybe even local to the client's machine. Downside is you would have to create your own database but at the end of the day it meets your request for a free solution. https://github.com/worldveil/dejavu


AudD is a free music recognition API created for developers. It recognizes music from its 42,5+ million songs DB (and they also have 3+m tracks with lyrics). You can easily post files to the AudD API or send urls of the files. I really can recommend it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.