AcousticBrainz Alternative in 2026: The Honest Insider's Guide
If you were one of the developers, researchers, or hobbyists who built on AcousticBrainz, you already know the story. The Music Technology Group at Universitat Pompeu Fabra announced the shutdown on 16 February 2022, stopped accepting submissions, and published the entire dataset as a public dump. The site and a read-only API are still up, but frozen. Four years later, there's still nothing exactly like it.
This post is the honest insider's view of the post-AB landscape — written by a team that uses the frozen AcousticBrainz dump in production right now, as the fallback layer behind our own catalogue in our music-features API. We know what works in the dump, what doesn't, and what the realistic alternatives look like in 2026.
What you actually lost
AcousticBrainz had three things going for it that nothing has fully replaced:
- Free, public, scriptable. No API key, no rate limit, no sign-up.
GET /api/v1/<mbid>/low-levelreturns ~120 fields per recording. Researchers could pull millions of rows for a paper without negotiating commercial terms. - MBID-keyed. Every track was identified by its MusicBrainz ID, the open community-maintained identifier. That meant data from AcousticBrainz could be joined cleanly to MusicBrainz, Discogs, ListenBrainz, lyrics databases — the whole open-data ecosystem.
- Crowd-contributed. Anyone could run the AcousticBrainz client on their own audio collection and submit features back. The dataset grew from real personal libraries, not a label-licensed catalog.
None of the commercial replacements has all three. Most have none.
The frozen dump — still extremely useful
This is the under-appreciated fact: the entire AcousticBrainz dataset is still freely downloadable. The official dump page hosts both the high-level (mood, genre, instrument-detection) and low-level (BPM, key, MFCCs, ~120 descriptors) archives as of June 2022.
What you get:
- ~7.5M unique recordings by MBID, with one or more contributed analyses each
- ~120 low-level descriptors per track — spectral centroid, MFCCs, rhythm features, tonal features, dynamic complexity, all the numbers Essentia's
MusicExtractoroutputs - 11 high-level classifier outputs per track — genre, mood (happy/sad/aggressive/relaxed/party), instrumentalness, danceability, etc.
- The AcousticBrainz JSON schema — same one the live API used, so existing client code works against the dump with zero changes if you stand up your own static endpoint
Practical setup: serve the dump as a local API
The dump is a giant tarball of one-JSON-per-MBID. The cleanest pattern is to extract it into SQLite and serve via a thin wrapper:
# Pseudocode for the loader
import json, sqlite3, tarfile
conn = sqlite3.connect("ab_features.db")
conn.execute("""
CREATE TABLE ab_features (
mbid TEXT PRIMARY KEY,
bpm REAL,
key TEXT,
scale TEXT,
danceability REAL,
average_loudness REAL,
dynamic_complexity REAL,
onset_rate REAL,
tuning_frequency REAL,
mood_happy REAL,
mood_sad REAL,
mood_aggressive REAL,
mood_relaxed REAL,
mood_party REAL,
genre TEXT,
instrumentalness REAL,
full_json TEXT
)
""")
# The JSON dump ships as numbered parts in acousticbrainz-lowlevel-json-20220623/;
# each part is a .tar.zst of lowlevel/<a>/<b>/<mbid>-<n>.json files.
with tarfile.open("acousticbrainz-lowlevel-json-20220623-0.tar.zst") as tar:
for member in tar:
if not member.name.endswith(".json"):
continue
data = json.loads(tar.extractfile(member).read())
mbid = member.name.split("/")[-1].rsplit("-", 1)[0] # strip the -<n>.json suffix
conn.execute("INSERT OR IGNORE INTO ab_features ...", (mbid, ...))
Expect the resulting SQLite to land around 2.2 GB once you've extracted the columns you actually use. Full-JSON-per-row blows it up to ~50 GB; only do that if you need every descriptor.
The dump is frozen at June 2022. Nothing released after that has values. For 2024-2026 releases, you'll need a live source. Use the dump as the historical layer of a tiered system — check it first, fall back to live analysis on miss.
The MBID problem
The dump is keyed by MBID, but most of your queries will arrive with artist + title strings, not MBIDs. Resolution is a separate problem:
- Hit the live MusicBrainz API:
GET /ws/2/recording/?query=artist:"<artist>" AND recording:"<title>" - Score the candidates — usually the first hit is right but featured-artist strings ("Mark Ronson featuring Bruno Mars") and remixes/covers cause noise
- If you find a match, take the MBID and look it up in your AB dump table
Realistic hit rate from name-only resolution to AB-dump features: ~50%. Half your tracks will resolve cleanly, the other half will be misses for one of: no MBID assigned, MBID exists but track not in AB, featured-artist confusing the resolver, or a release after June 2022.
The live alternatives
Five categories, ranked from "closest to AB's spirit" to "closest in functionality":
1. Build your own with Essentia
AcousticBrainz was Essentia + crowd contributions. The same toolkit is open-source, actively maintained, and runs on a VPS. MusicExtractor takes a 30-second audio clip and returns the same ~120 fields AB stored. Caveat: you need the audio. The dump worked because users contributed local libraries; your replacement needs an audio source — iTunes 30-second previews work but rate-limit hard, full-track licenses cost money.
2. Self-host: your own Essentia analysis first, the dump as fallback
This is roughly what we do: our own analysed catalogue answers first, and the AB dump (ab_features.db) answers when we can resolve a MusicBrainz ID but haven't analysed the track yet. The two layers complement each other — the dump catches anything pre-2022 that has an MBID; Essentia catches everything else with a commercial preview. What neither catches is mostly bootlegs, demos and obscurities with no preview anywhere.
3. Hosted music-feature APIs
The post-AB market split into two camps:
- Spotify-shim APIs — Musicae and similar, designed to feel like the deprecated Spotify
audio_featuresendpoint. Field names match Spotify's vocabulary. Useful if you're a Spotify-deprecation refugee, but they don't expose AB's ~120 low-level descriptors — just the ~11 Spotify-style high-level fields. - Catalog-style APIs — including ours. Pass artist + title, get back BPM, key, energy, mood-vector, the four AB low-level descriptors we surface from the AcousticBrainz dump on MBID-matched tracks (onset_rate, dynamic_complexity, tuning_frequency, average_loudness), and standard cross-link IDs. Different ergonomics from AB but covers most practical use cases.
4. Apple Music API
Apple's catalog API is good for identifiers, genres and 30-second previews ($99/year developer membership to ship), but it exposes no audio features — no tempo, key, danceability or anything like AB's descriptors. Useful as a preview source if you run the analysis yourself.
5. Re-run the analysis on labelled academic datasets
For research/non-commercial work where licensing matters, the FMA, GTZAN and similar academic corpora ship with audio that you can run Essentia on yourself (check each track's licence). None match AB's coverage.
Field-mapping table
For migrating code that previously called the AcousticBrainz live API, here's roughly how the field names translate:
| AcousticBrainz field | Frozen dump | FreqBlog | Essentia (DIY) |
|---|---|---|---|
rhythm.bpm | ✓ | bpm | RhythmExtractor2013.bpm |
tonal.key_key | ✓ | key | KeyExtractor.key |
tonal.key_scale | ✓ | mode | KeyExtractor.scale |
highlevel.danceability | ✓ | danceability | SVM model, deprecated |
highlevel.mood_happy | ✓ | mood_vector.happy | SVM model, deprecated |
lowlevel.average_loudness | ✓ | average_loudness | Loudness |
lowlevel.dynamic_complexity | ✓ | dynamic_complexity | DynamicComplexity |
rhythm.onset_rate | ✓ | onset_rate | OnsetRate |
tonal.tuning_frequency | ✓ | tuning_frequency | TuningFrequency |
highlevel.genre_* (multiple) | ✓ | genre (single) | SVM models, deprecated |
lowlevel.mfcc.mean[0..12] | ✓ | not exposed | MFCC |
lowlevel.spectral_* (~30 fields) | ✓ | not exposed | various spectral algorithms |
The dump is the only option if you need the deep low-level vector (~120 fields). Hosted APIs typically expose the ~10-15 fields that map cleanly to product use cases.
What no replacement gives you back
- The crowd contribution loop. AB grew because users ran the client on their personal libraries and submitted back. No commercial replacement has that bottom-up data flow — it's all top-down catalog ingestion.
- The high-level mood/genre classifiers. MTG's own shutdown post acknowledged the high-level model quality wasn't reliable enough — that's part of why they killed AB. Essentia's documentation now flags those SVM models as deprecated. Reproducing them locally reproduces a known-broken system. If you need genre/mood at production-grade quality, the modern path is the Essentia Labs MusiCNN models (TensorFlow-based, much better trained), not the deprecated SVMs.
- The MBID-keyed open-data ecosystem. AB joined cleanly to MusicBrainz/Discogs/ListenBrainz because everyone shared the MBID identifier. Commercial APIs key on their own internal IDs (or Spotify track IDs, whose audio-feature endpoints are closed to new apps). Cross-linking is harder.
How to choose
- Academic / research / one-shot dataset analysis → download the dump. It's free, complete through June 2022, and citable.
- Building a product that needs MIR data on current releases → tier the dump under a live source (Essentia self-hosted, or a hosted API). Use the dump as the cheap-and-deep layer.
- Building a quick app that just needs BPM/key/energy → a hosted catalog API (ours or Musicae) is faster to integrate than running Essentia yourself.
- Need the deep low-level vector (MFCCs, spectral centroid, etc.) on every track → only the dump or your own Essentia worker will give you those. No hosted API exposes them at retail prices.
FreqBlog Music API — AB-style data, hosted
BPM, key, Camelot, energy, danceability, mood-vector, plus 4 AB low-level fields surfaced from the AcousticBrainz dump on MBID-matched tracks (onset_rate, dynamic_complexity, tuning_frequency, average_loudness). Free tier, no card required.
View API →Frequently asked questions
Is AcousticBrainz discontinued?
Yes. The Music Technology Group at Universitat Pompeu Fabra announced AcousticBrainz's shutdown on 16 February 2022, and stopped accepting new data. The site and its read-only API are still online, but frozen: nothing has been added since 2022.
What is the status of AcousticBrainz in 2026?
Crowd submission stopped in 2022. The website and its read-only API are still online in 2026, but frozen. However, the complete dataset — roughly 7.5 million recordings keyed by MusicBrainz ID — is still freely downloadable as a frozen dump dated June 2022.
Is the AcousticBrainz data still available to download?
Yes. Both the high-level (mood, genre) and low-level (BPM, key, ~120 descriptors) tarballs are still hosted on the official AcousticBrainz download page, current through June 2022.
What is the best AcousticBrainz alternative in 2026?
There's no single drop-in replacement. For pre-2022 analysis, use the frozen dump. For current releases, either self-host Essentia (the same toolkit AcousticBrainz used) or use a hosted catalog API such as FreqBlog, which returns BPM, key, Camelot, energy, mood and several of the AB low-level fields by track name or ISRC (a raw Spotify track ID also resolves, per request by title match, but misses when several artists share the title — name or ISRC gives the most reliable coverage). See also our comparison of music-metadata APIs.