Afraid the music will stop right after the last track you selected have been streamed ? The automatic play feature in your personal settings will help. Read more.


How does batch-processing of tracks using the Echonest API work ? 

By now you might be familiar with configuration of the "Similar/related tracks (Echonest API)" feature in AmpJuke.

You might also have an understanding of the effect of different configuration scenarios, as well as the "mechanics" in  the interaction between AmpJuke and the Echonest.


This FAQ-entry deals with identification of "values" (BPM/tempo, danceability, loudness etc.) based on multiple tracks.


As you might know already, a track is only identifed right after streaming, - unless that's not done earlier.

A given track can have a status of "Not identified", "Attempted identification - no match found " or "Identified OK".


Rather than listening to your entire music collection for the sole purpose of identifying each and every track, a batch-processing mechanism for identification of multiple tracks would be desirable.

Fortunately, there's a feature for that in AmpJuke!


Provided you have enabled calls to the Echonest API, you will see a link to "Echonest..." on the "Welcome page" in the "Administrator" section in the left panel.


If you click on the "Echonest..." link, you'll be taken to a page that allows batch-processing of multiple tracks in your AmpJuke database against the Echonest API.


Important: Please note that in order to take full advantage of this feature, it is highly recommended to have cURL installed on your AmpJuke box. Most Linux-dostributions have the option to install cURL available, - it's a matter of a few mouse-clicks.

You can find more information about cURL here:



Let's take a quick tour of the information and parameters associated with the Echonest menu in AmpJuke, starting with the "Status" section:

Total number of tracks: Equals the total number of tracks in your AmpJuke database.

This total is on the following lines broken down into three numbers represented by:


Identified with success: This is the total number of tracks that have been identified successfully using the Echonest API. This number represents tracks identified using both the "lazy" method as well as the "real method".


Failed identification: This is the total number of tracks where an attempt has been made to identify the "fingerprint" using the "lazy" method against the Echonest API. In other words: In order to convert tracks with "failed identification" to "identified with success", an upload (using cURL - see above) as well as analysis+identification by the Echonest API is required.


Never identified: This is the total number of tracks where no previous attempt has been made to identify the "fingerprint" (BPM/tempo, danceability, energy, loudness and "key") against the Echonest API. In other words: A "lazy" call to the API might convert these tracks to "identified with success".


The sum of each of the above mentioned "categories" will be equal to the total number of tracks in your AmpJuke database. You can use the numbers as an indication of how well your music collection have been identified in terms of "fingerprint" values (BPM/tempo, danceability, energy, loudness and "key"), - and possibly determine if a batch-processing of tracks is required right now...



Beneath the "Status" section there's an "Options" section that controls how the batch-processing should occur.



Parameters for "Options" are:

Process tracks with this status: Allows you to specify what tracks should be processed against the Echonest API. The options should be self-explaining.


Number of tracks to process: Allows you to specify how many tracks to process.

Please note that the Echonest has a "fair usage" policy, a note about avoiding commercial use and more:

Also note that there's a maximum limit (hardcoded into AmpJuke).


Show details during processing: Is similar to the same setting used when doing a scan+import of music into your AmpJuke database. 

...or "verbosity level" - in order to use a geeky expression :)



The next section requires - as mentioned above - cURL to be installed on your box.

Especially if you're planning to upload tracks to the Echonest API for analysis and identification, there's no way around avoiding cURL.

You typically want to upload tracks that fails identification using the "lazy" method, - and cURL is required for that in this case.


Parameters are:

Upload track(s) to The Echonest for processing: Enabling/checking this allows for upload of tracks that fails identification using the "lazy" method.

The "lazy" method is always tried as the first attempt to identify a given track's "fingerprint" (BPM/tempo, danceability etc.).


Path to cURL: Should be relatively's the absolute path to where cURL is.

On most Linux distributions it's /usr/bin/curl.



Once you have figured out how, what and how many tracks should be batch-processed for identification, you can click "Start processing".

...or perhaps start off with 5-10 and - if everything goes well - go for 500-1000 tracks (or whatever you prefer).

Please bear in mind that the Echonest has the above mentioned "fair usage" policy.


Other documentation related to the Echonest API in AmpJuke:

What it is.

How to configure.

Configuration examples.

The "mechanics".

Batch-processing (this doc.).

Improved listening experience.