MTG / acousticbrainz-client

A client to upload data to an acousticbrainz server
GNU General Public License v3.0
29 stars 22 forks source link

AcousticBrainz client

For more information about AcousticBrainz, see https://acousticbrainz.org

This client lets you submit your own audio features to the AcousticBrainz project.

Requirements

This client has been tested on Linux and OSX with python 2.6, 2.7, and 3.x. It has no additional dependencies.

Getting a feature extractor

To contribute data to AcousticBrainz you first need an extractor. This is a program that analyses your music and generates a file.

We provide static builds of extractors for popular platforms. Find one for your platform here:

https://acousticbrainz.org/download

Put your extractor in this directory. These files require no additional dependencies.

We prefer that you use one of our provided extractors. This lets us be sure that different versions of software don't cause variations in the data that we are collecting. If you really want to, you can make your own, but note that this requires a fair number of dependencies to compile. It will certainly be easier to use one of our binaries to get started.

The extractor is provided as part of the Essentia project. To build it, download Essentia and compile the examples.

git clone https://github.com/MTG/essentia.git
cd essentia
./waf configure --with-example=streaming_extractor_music
./waf

and get the resulting file from build/src/examples/streaming_extractor_music

Installation

First, download the extractor related to your platform and put it in this directory.

You can run ./abzsubmit from this directory, or install it:

sudo python setup.py install

and run abzsubmit from any shell.

Running

Run it like this:

./abzsubmit [some dirs] ...

and go and have a coffee. :-)

Configuration files:

~/.abzsubmit/abzsubmit.conf ~/.abzsubmit/filelog.sqlite

If you want to abzsubmit to look in a custom location for your extractor program, you can edit your ~/.abzsubmit.conf file. Add or edit the section that looks like this:

[essentia]
path: /path/to/streaming_extractor_music

If you don't specify an absolute path, we will first look in $PATH, and then the same directory as the submission script, abzsubmit.

The SQLite database is used to keep track of uploaded files so that they are not submitted twice.

FAQ

License

This application is Copyright Music Technology Group, Universitat Pompeu Fabra. It is available under the terms of the GNU GPL v3+. See COPYING for details.