Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/parshap/node-fpcalc

Calculate AcoustID audio fingerprint
https://github.com/parshap/node-fpcalc

Last synced: 21 days ago
JSON representation

Calculate AcoustID audio fingerprint

Awesome Lists containing this project

README

        

# fpcalc

This module is a wrapper around the [`fpcalc` command-line tool][chromaprint]
and provides a node interface to calculate [AcoustID][] audio
fingerprints for audio files.

[chromaprint]: http://acoustid.org/chromaprint
[acoustid]: http://acoustid.org/

## Installing Chromaprint

[`fpcalc` (provided by *Chromaprint*)][chromaprint] must be installed for
this module to function.

**OSX using Homebrew**

```
$ brew install chromaprint
```

**Ubuntu**

```
$ sudo apt-get install libchromaprint-tools
```

## Example

```js
var fpcalc = require("fpcalc");
fpcalc("./audio.mp3", function(err, result) {
if (err) throw err;
console.log(result.file, result.duration, result.fingerprint);
});
```

## API

### `fpcalc(file, [options,] callback)`

Calculates the fingerprint of the given audio file.

*File* must be the path to an audio file or a readable stream.

If using a stream, note that you will not get `duration` out due to an [fpcalc issue](https://github.com/acoustid/chromaprint/issues/53).

*Options* may be an object with any of the following keys:

* `length`: Length of the audio data used for fingerprint calculation
(passed as `-length` option)
* `raw`: Output the raw uncompressed fingerprint (default: `false`)
* `command`: Path to the fpcalc command (default: `"fpcalc"` - expects
executable in `$PATH`)

*Callback* must be a function that will be called with `callback(err,
result)` once the fingerprint is calculated. The *result object* will
contain the following keys:

* `file`: Path to the audio file
* `duration`: Duration of audio file in seconds
* `fingerprint`: Fingerprint of audio file - *Buffer* if `options.raw`,
*String* otherwise

## Installation

```
npm install --save fpcalc
```