a1f6701bac
- gRPC service with MusicBrainz provider - PostgreSQL schema with migrations - Service layer with database-first caching - Repository pattern for data access - YAML configuration support - Research documentation for 17 music metadata projects
56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
# AcoustID
|
|
|
|
## Overview
|
|
|
|
AcoustID is an open-source audio fingerprinting service. It identifies music tracks by their acoustic fingerprint and links them to MusicBrainz recordings.
|
|
|
|
## Key Features
|
|
|
|
- **Purpose**: Audio identification via acoustic fingerprinting
|
|
- **Technology**: Chromaprint fingerprint generation
|
|
- **Database**: Crowdsourced fingerprints linked to MusicBrainz
|
|
- **License**: MIT (code), CC BY-SA 3.0 (data)
|
|
|
|
## Source
|
|
|
|
| Resource | URL |
|
|
|----------|-----|
|
|
| **Server Repository** | https://github.com/acoustid/acoustid-server |
|
|
| **Index Repository** | https://github.com/acoustid/acoustid-index |
|
|
| **Chromaprint Library** | https://github.com/acoustid/chromaprint |
|
|
| **API Documentation** | https://acoustid.org/webservice |
|
|
| **Website** | https://acoustid.org |
|
|
|
|
## API Examples
|
|
|
|
```bash
|
|
# Lookup by fingerprint
|
|
GET /v2/lookup?client=YOUR_API_KEY&meta=recordings&fingerprint={fp}&duration={dur}
|
|
|
|
# Submit new fingerprint
|
|
POST /v2/submit
|
|
```
|
|
|
|
## Chromaprint CLI
|
|
|
|
```bash
|
|
# Generate fingerprint from audio file
|
|
fpcalc song.mp3
|
|
# Returns: FINGERPRINT=... DURATION=...
|
|
```
|
|
|
|
## Self-Hosting
|
|
|
|
The acoustid-index v2 is written in Zig for performance:
|
|
|
|
```bash
|
|
git clone https://github.com/acoustid/acoustid-index.git
|
|
# Follow build instructions in README
|
|
```
|
|
|
|
## Notes
|
|
|
|
- Used by: Beets, Picard, Kid3, MusicBrainz ecosystem
|
|
- Free API for audio fingerprint matching
|
|
- Identify unknown files → get MusicBrainz metadata
|