Audio Fingerprint Expert
Identify and match audio content using fingerprinting.
Use Cases for Modcaster
-
Skip intros/outros automatically
-
Detect and skip ads
-
Identify music in podcasts
-
Match duplicate content
Top Services
Commercial APIs
AudD ($2-5/1000 requests)
-
Neural network based
-
Music recognition
-
Real-time and batch
ACRCloud
-
Industry leader
-
Cross-platform SDKs
-
Custom fingerprint databases
ShazamAPI (via RapidAPI)
-
The classic
-
Huge music database
-
Enterprise options
Open Source
AcoustID (Free)
-
Links to MusicBrainz
-
Community-powered
-
Chromaprint fingerprinting
Dejavu
-
Python implementation
-
Self-hosted
-
Custom audio matching
AudD API
Recognize Music
curl -X POST "https://api.audd.io/"
-F "api_token=YOUR_TOKEN"
-F "file=@audio.mp3"
-F "return=spotify,apple_music"
Python
import requests
response = requests.post('https://api.audd.io/', data={ 'api_token': 'YOUR_TOKEN', 'return': 'spotify,apple_music', }, files={ 'file': open('audio.mp3', 'rb'), })
result = response.json() if result['result']: print(f"Found: {result['result']['title']} by {result['result']['artist']}")
AcoustID (Free)
Generate Fingerprint
Install chromaprint
brew install chromaprint
Generate fingerprint
fpcalc -json audio.mp3
Lookup
import acoustid
for score, recording_id, title, artist in acoustid.match(API_KEY, 'audio.mp3'): print(f"Match ({score:.2f}): {title} by {artist}")
Dejavu (Self-Hosted)
Setup
from dejavu import Dejavu
djv = Dejavu(config={ "database_type": "sqlite", "database": "fingerprints.db" })
Fingerprint known audio
djv.fingerprint_directory("known_intros/", [".mp3", ".wav"])
Match unknown audio
songs = djv.recognize(FileRecognizer, "podcast_episode.mp3") print(songs) # Returns matches with timestamps
Podcast Ad Detection Pattern
1. Fingerprint known ads
for ad_file in known_ads: dejavu.fingerprint_file(ad_file)
2. When processing episode
matches = dejavu.recognize(episode_file)
3. Get timestamps of ads
ad_segments = [(m['offset'], m['offset'] + m['duration']) for m in matches]
4. Skip those segments in player
Accuracy Tips
-
Use 10-30 second samples
-
Higher sample rate = better accuracy
-
Noise affects matching
-
Store fingerprints, not audio
Use when: Music recognition, ad skipping, duplicate detection, audio matching