Audio Fingerprinting API

JSON API for Emy

Posted by Sergiu Ciumac on September 07, 2020 · 1 min read

Since the start of this project, I’ve been asked multiple times to provide JSON API for audio fingerprinting. The native client is great, but it sets significant restrictions since it can only be used from .NET.

Since v7.4.12 API support has been added, you can perform inserts/queries using simple HTTP requests.

How to insert an audio track into Emy? It’s simple, the following web-request will insert a new track into the storage.


curl 'http://localhost:3340/api/tracks' \
    -H 'Authorization: Basic Admin:' \
    -F 'track.id=test-id' \
    -F 'track.title=test-title' \
    -F 'track.artist=test-artist' \
    -F 'track.metaFields[test-meta-key]=test-meta-value' \
    -F 'track.mediaType=Audio,Video' \
    -F 'insertOriginalPoints=true' \
    -F 'file=@ad.mp4'

Once you’ve inserted the track, you can now query it using query endpoint:


curl 'http://localhost:3340/api/query' \
    -H 'Authorization: Basic Admin:' \
    -F 'file=@query.ts' \
    -F 'mediaType=Audio,Video' \
    -F 'minCoverage=0.4' \
    -F 'minConfidence=0.4'

The addition of JSON audio fingerprinting API marks a significant milestone in the development of Emy storage. Head to SoundFingerprinting GitHub page if you want to see more features added to Emy storage. Ideas are welcome!