The API this bot is using.
>
> PRICING
>
> 0+ requests per month - $5 per 1000 requests;
> 100 000 requests per month - $450;
> 200 000 requests per month - $800;
> 500 000 requests per month - $1800.
Acoustic fingerprinting. Basically a computer looks at the most prominent frequencies and how they relate to time, and generates something which is [relatively] unique to a particular song, or a piece of a song. Then a computer can easily compare these fingerprints with a database to find a match.
In practical terms, the bot uses this: https://audd.io/
audd.io for the logic, but the trigger (and anti-trigger) words can be easily identified: https://github.com/AudDMusic/RedditBot/blob/main/config.json
Apparently my phrase didn't trigger it, but luckily someone elses did.
I don't think it'd be as touch as /u/Kapow-bitch thinks, but it would cost a little bit.
This is because there's no free Shazam like service to use for the bot. The only one I can find at all is https://audd.io/, which would cost $4.20 per 1000 requests, or half a cent per request.
It's not a big cost but still if it got a lot of use it'd cost a bit.
Other than that it wouldn't be tooo hard IMO, just download the video and then send it to that API.
I could take a crack at it some point in the future, if there was demand, but not any very soon.
If you can code, you can use this https://rapidapi.com/apidojo/api/shazam or this https://audd.io/ to identify snippets of songs. You just have to get the “streaming” data somehow. This may prove to be the difficult part…
https://audd.io seems to already serve this function, and has an API created with documentation. It may not be a bad place to start, as there doesn’t currently seem to be an API for Shazam.
I was wondering whether something like this would work: https://audd.io/
If there aren't enough Christmas carols in the 52 million song database, maybe I could just upload some tracks of me and my wife singing them and see if that gets detected.
They've got this feature as well: https://i.imgur.com/Zr2Jc6q.jpg
>arduino running Shazam
Probably not. First of all I don't think Shazam has an API, so you would have to reverse engineer their app just to get started. Then you will have to compress that sound data and send it to the internet. Maybe if you were using one of the arm based boards like the Arduino Zero, but even then you are outside the realm of what is going to be easy to do with the Arduino environment. If you were going to do this I would defiantly go for something more like the raspberry pi, and I would use something that has an api like https://audd.io/.
What would be much easier to do would be to get that info directly off your laptop so the Arduino is just responsible for receiving a few lines of text and displaying them on an LED panel. First build your thing that can display arbitrary text from serial or over WiFi, then build something on your computer that sends the song name and artist in whatever format your arduino needs.
Very cool little project! Given the fact that audd.io has a fee, you may want to add a "listen for a gap, then re-query" feature to your development backlog to replace the 20 second interval. Since some LPs have no gap between some of the songs, you would probably want to also add a "query now button" feature to the backlog too.
Short answer, no.
Nerd answer, depends.
You would need an API to run and listen to your stream and identify the song being played. Currently there are a bunch of plugins that will display that information from streaming services. There are other solutions but they are not free, such as https://audd.io/