Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/parshap/node-fpcalc
- Owner: parshap
- Created: 2013-07-30T08:15:12.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2022-02-05T18:21:32.000Z (almost 3 years ago)
- Last Synced: 2024-11-09T03:48:32.258Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 214 KB
- Stars: 69
- Watchers: 7
- Forks: 13
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
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
```