Audio Fingerprint Expert
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
More from willsigmon/sigstack
fastlane expert
Fastlane automation - build, test, deploy iOS apps, TestFlight, App Store Connect
39swiftlint-autofix
Run SwiftFormat and fix all auto-correctable SwiftLint issues
30manus ai agent integration
Use this skill when delegating complex autonomous tasks to Manus AI - an AI agent that can browse the web, execute code, generate files, and comple...
24find-bug-root-cause
Deep investigation to find actual root cause (not just symptoms)
23dead code eliminator
Find and delete unused files, disabled code blocks, Enhanced variants, deprecated features, test files in production for Leavn app
22bitrise expert
Bitrise CI/CD - iOS builds, automated testing, deployment, managed macOS runners
21