pyacoustid
Bindings for Chromaprint acoustic fingerprinting and the Acoustid API
What it is and what it does
pyacoustid is a Python wrapper around Chromaprint, an open-source acoustic fingerprinting system, and the Acoustid Web service for music identification. It lets you generate a compact fingerprint from an audio file and look it up against Acoustid's database to retrieve metadata like title, artist, and MusicBrainz recording IDs. The package handles audio decoding via audioread and communicates with the Acoustid API via requests, abstracting away the complexity of working with raw fingerprints and HTTP calls.
You can use it at a high level with a single match call to identify a file, or drop down to lower-level functions to fingerprint raw PCM data, compare fingerprints, or submit new fingerprints to the database. The library enforces rate limiting (3 queries per second) when calling the Web API and raises specific exceptions for fingerprinting failures and lookup errors, making it straightforward to handle failures gracefully.
Use it for:
- Identify unknown music files by matching their acoustic fingerprint against the Acoustid database.
- Bulk-tag a music library with metadata (title, artist, recording ID) by fingerprinting each file.
- Compare two audio files for similarity without relying on file metadata or format.
- Submit new fingerprints to Acoustid to improve the database coverage for unrecognized tracks.
- Build a music recognition feature into an application using the Acoustid API.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides Python bindings for Chromaprint acoustic fingerprinting and the Acoustid Web service to identify music files by their audio content.
Yes. The package is actively maintained, has no known vulnerabilities, and low install friction. It fills a specific niche—acoustic music identification—with a clean API and permissive MIT license. Install it if you need to identify or match audio files; skip it if you only work with file metadata or don't need music recognition.
Install
pyacoustid on PyPI
pip
pip install pyacoustiduv
uv add pyacoustidpoetry
poetry add pyacoustidInstalling pyacoustid
Before you install
Low friction install with a pure-wheel distribution. Actively maintained with recent commits and no known vulnerabilities. Requires Python 3.10+ and the external Chromaprint library or fpcalc command-line tool to be available on your system.
License in practice
MIT license permits commercial and private use with minimal restrictions, making it suitable for most projects.
Quickstart
pip install pyacoustid
import pyacoustid
for score, recording_id, title, artist in pyacoustid.match(apikey, 'path/to/audio.mp3'):
print(f"{title} by {artist} (score: {score})")
Requires Chromaprint library installed separately or fpcalc command-line tool on $PATH; set FPCALC environment variable if fpcalc is not in standard locations.
Verify before relying
- Whether audioread's codec support (GStreamer, FFmpeg, MAD, Core Audio) covers your target audio formats.
- Performance characteristics when fingerprinting large audio files or batch processing.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — audioread, requests |
| Maintenance | actively maintained — 127 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 119,581/month — #12,063 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyacoustid-1.3.1-py3-none-any.whl
Tags
More Conversion packages
Pydub provides a high-level Python interface…
permissive · top 5,000 on PyPI
soxrPerforms high-quality sample-rate conversion…
copyleft · top 5,000 on PyPI
audioreadDecode audio files using whichever backend is…
permissive · top 5,000 on PyPI
cloudinaryCloudinary Python SDK provides image and video…
permissive · top 5,000 on PyPI
lameencWraps LAME MP3 encoder for Python, providing…
copyleft · top 5,000 on PyPI
miniaudioMiniaudio provides Python bindings for…
permissive · top 15,000 on PyPI
aubioaubio is a Python wrapper around a C library…
copyleft · top 15,000 on PyPI
musicbrainzngsProvides Python bindings to query the…
permissive · top 15,000 on PyPI
pyobjc-framework-ShazamKitProvides Python bindings to macOS's ShazamKit…
permissive · top 15,000 on PyPI
ytmusicapiytmusicapi lets you programmatically interact…
permissive · top 15,000 on PyPI
shazamioAsynchronous Python library that recognizes…
permissive · top 15,000 on PyPI
panns-inferenceProvides pretrained neural network models for…
permissive · top 15,000 on PyPI
apify-fingerprint-datapointsProvides a dataset of browser fingerprint…
permissive · top 5,000 on PyPI
mir-evalmir_eval computes standard accuracy metrics for…
permissive · top 15,000 on PyPI
tinytagReads metadata (artist, title, duration,…
permissive · top 5,000 on PyPI