The server components for the AcousticBrainz project

License: GPL-2.0

Language: Python

Keywords: acousticbrainz-server, big-data, machine-learning, music, python, web


The server components for the new AcousticBrainz project.

Please report issues here:


Vagrant VM

The easiest way to start is to setup ready-to-use Vagrant VM. To do that download and install Vagrant for your OS. Then copy two config files:

  1. to (you don't need to modify this file)
  2. to in the ./hl_extractor/ directory (in this file you need to set models_essentia_git_sha value)

After that you can spin up the VM and start working with it:

$ vagrant up
$ vagrant ssh

There are some environment variables that you can set to affect the provisioning of the virtual machine.

  • AB_NCPUS: Number of CPUs to put in the VM (default 1, 2 makes compilation faster)
  • AB_MEM: Amount of memory (default 1024mb)
  • AB_MIRROR: ubuntu mirror (default
  • AB_NOHL: If set, don't compile the highlevel calculation tools (not needed for regular server development)

There are some shortcuts defined using fabric to perform commonly used commands:

  • fab vpsql: Load a psql session. Requires a local psql client
  • fab vssh: Connect to the VM more efficiently, saving the settings so that you don't need to run vagrant each time you ssh.


Full installation instructions are available in file. After installing, continue the following steps.

Configuration and development

Building static files

We use Gulp as our JavaScript/CSS build system. node.js dependencies. Calling gulp on its own will build everything necessary to access the server in a web browser:


Keep in mind that you'll need to rebuild static files after you modify JavaScript or CSS.


To use the dataset tools you need to configure OAuth with MusicBrainz. Log in to your MusicBrainz account (or create one if needed) and create a new application.

Choose a name (for example, "AcousticBrainz development"), set Type to "Web Application" and set the Callback URL to http://localhost:8080/login/musicbrainz/post

Copy the OAuth Client ID and OAuth Client Secret values to as MUSICBRAINZ_CLIENT_ID and MUSICBRAINZ_CLIENT_SECRET.

You should now be able to use the menu in the top corner of your AcousticBrainz server to log in.

Admin interface

Once you have logged in, you can make your user an admin, by running

python add_admin <your user>

You should now be able to access the admin section at http://localhost:8080/admin


Before starting the server you will need to build static files:

$ cd acousticbrainz-server
$ fab build_static

Keep in mind that you'll need to rebuild static files after you modify JavaScript or CSS.

You can start the web server (will be available at http://localhost:8080/):

$ cd acousticbrainz-server
$ python runserver

the high-level data extractor:

$ cd acousticbrainz-server/hl_extractor
$ python

the dataset evaluator:

$ cd acousticbrainz-server/dataset_eval
$ python

Working with data


AcousticBrainz provides data dumps that you can import into your own server. Latest database dump is available at You need to download full database dump from this page and use it during database initialization:

$ python init_db path_to_the_archive

you can also easily remove existing database before initialization using --force option:

$ python init_db --force path_to_the_archive

or import archive after database is created:

$ python import_data path_to_the_archive

You can also import dumps that you created yourself. This process is described below (see dump full_db command).


There are several ways to export data out of AcousticBrainz server. You can create full database dump or export only low-level and high-level data in JSON format. Both ways support incremental dumping.


Full database dump:

$ python dump full_db

JSON dump:

$ python dump json

Creates two separate full JSON dumps with low-level and high-level data.

Incremental dumps:

$ python dump incremental

Creates new incremental dump in three different formats: usual database dump, low-level and high-level JSON.

Previous incremental dumps:

$ python dump incremental --id 42

Same as another one, but recreates previously created incremental dump.

Project Statistics

Sourcerank 7
Repository Size 2.75 MB
Stars 80
Forks 50
Watchers 12
Open issues disabled
Dependencies 53
Contributors 18
Tags 0
Last updated
Last pushed

Top Contributors See all

Roman Tsukanov Alastair Porter Robert Kaye Ian McEwen Swapnil Gupta Frederik “Freso” S. Olesen kartikgupta0909 Dmitry Bogdanov vibhorbajpai Saiful B. Khan JesseWeinstein Wieland Hoffmann Shadab Zafar Laurent Monin Caroline Gschwend Daniele Scarano Johannes Dewender Nupur Baghel

Interesting Forks See all

The server components for the new AcousticBrainz project.
JavaScript - GPL-2.0 - Last pushed - 1 stars
The server components for the AcousticBrainz project
Python - Updated - 1 stars
The server components for the new AcousticBrainz project.
JavaScript - Published - 1 stars

Something wrong with this page? Make a suggestion

Last synced: 2017-05-25 06:36:39 UTC

Login to resync this repository