EchoNest Tempo Plugin¶
A newer Echo Nest Plugin is available that supersedes this plugin. In addition to the tempo, the new plugin can fetch the Echo Nest’s full complement of acoustic attributes. This older tempo-specific plugin is deprecated.
echonest_tempo plugin fetches and stores a track’s tempo (the “bpm”
field) from the Echo Nest API.
This plugin requires the pyechonest library in order to talk to the EchoNest API.
There are packages for most major linux distributions, you can download the library from the Echo Nest, or you can install the library from pip, like so:
$ pip install pyechonest
Beets includes its own Echo Nest API key, but you can apply for your own for
free from the EchoNest. To specify your own API key, add the key to your
configuration file as the value for
echonest_tempo like so:
echonest_tempo: apikey: YOUR_API_KEY
In addition, the
autofetch config option lets you disable automatic tempo
fetching during import. To do so, add this to your
echonest_tempo: auto: no
Fetch Tempo During Import¶
To automatically fetch the tempo for songs you import, just enable the plugin
echonest_tempo on your config file’s
plugins line (see
Plugins). When importing new files, beets will now fetch the
tempo for files that don’t already have them. The bpm field will be stored in
the beets database. If the
import.write config option is on, then the tempo
will also be written to the files’ tags.
This behavior can be disabled with the
autofetch config option (see below).
Fetching Tempo Manually¶
tempo command provided by this plugin fetches tempos for
items that match a query (see Queries). For example,
beet tempo magnetic fields absolutely cuckoo will get the tempo for the
appropriate Magnetic Fields song,
beet tempo magnetic fields will get
tempos for all my tracks by that band, and
beet tempo will get tempos for
my entire library. The tempos will be added to the beets database and, if
import.write is on, embedded into files’ metadata.
-p option to the
tempo command makes it print tempos out to the
console so you can view the fetched (or previously-stored) tempos.