From media
Audio fingerprinting - music recognition, ad detection, intro/outro skipping
npx claudepluginhub willsigmon/sigstack --plugin mediaThis skill is limited to using the following tools:
Identify and match audio content using fingerprinting.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Automates semantic versioning and release workflow for Claude Code plugins: bumps versions in package.json, marketplace.json, plugin.json; verifies builds; creates git tags, GitHub releases, changelogs.
Identify and match audio content using fingerprinting.
AudD ($2-5/1000 requests)
ACRCloud
ShazamAPI (via RapidAPI)
AcoustID (Free)
Dejavu
curl -X POST "https://api.audd.io/" \
-F "api_token=YOUR_TOKEN" \
-F "file=@audio.mp3" \
-F "return=spotify,apple_music"
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']}")
# Install chromaprint
brew install chromaprint
# Generate fingerprint
fpcalc -json audio.mp3
import acoustid
for score, recording_id, title, artist in acoustid.match(API_KEY, 'audio.mp3'):
print(f"Match ({score:.2f}): {title} by {artist}")
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
# 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
Use when: Music recognition, ad skipping, duplicate detection, audio matching