hypermodules / hyperamp

🎛 Humble music player
https://twitter.com/hyperampapp
GNU General Public License v3.0
306 stars 10 forks source link

Image fingerprinting #308

Closed zeke closed 1 year ago

zeke commented 6 years ago

Forgive the not-specifically-related-to-hyperamp question:

I'm doing a little tiny experiment to analyze my music. Do you folks know of existing npm modules or techniques for fingerprinting audio files? By fingerprint, I think I mean some kind of hash that doesn't change when the file metadata (like id3 data) or file path change.

Does hyperamp create something like this? And how does hyperamp store processed metadata?

ungoldman commented 6 years ago

Haven't researched it heavily but I know Picard/MusicBrainz does this (https://musicbrainz.org/doc/Fingerprinting). I tried it using it once to "fix" my library and add album art but it totally wrecked my library's metadata. Let me know if you find anything.

bcomnes commented 6 years ago

e.g. https://en.wikipedia.org/wiki/Acoustic_fingerprint https://wiki.musicbrainz.org/Fingerprinting Haven't really explored it yet. https://wiki.musicbrainz.org/Fingerprinting

ungoldman commented 6 years ago

first post

bcomnes commented 6 years ago

http://willdrevo.com/fingerprinting-and-audio-recognition-with-python/ Looks good

bcomnes commented 6 years ago

I thing services like grace note do this, for $$ also https://github.com/lastfm/Fingerprinter

zeke commented 6 years ago

I wanted the answer to be npm install foo. I always want that to be the answer.

zeke commented 6 years ago

Hey maybe these:

Hi @parshap! I remember you from San Francisco. 👋 With two years of hindsight, what do you have to say about these modules? Are they working and happy?

parshap commented 6 years ago

Hey @zeke! I haven't personally used either of those modules in years, but they seem to be working and getting moderate use. They're really just a light wrapper around Acoustid's Chromaprint (an algorithm for getting audio fingerprints) and their metadata web service. I would do some reading here:

Feel free to open any issues in my repos if you run into problems.