mrfeathers / php-fpcalc
PHP wrapper for command-line fingerprint generator - fpcalc
Installs: 3 658
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 7
Open Issues: 2
pkg:composer/mrfeathers/php-fpcalc
Requires
- php: >=7.1
- symfony/process: ^4.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^6.0
Suggests
- mrfeathers/acoustid: Object Oriented PHP Wrapper for acoustid.org API
This package is auto-updated.
Last update: 2025-10-10 00:44:05 UTC
README
This package is a wrapper for the fpcalc command-line tool.
Installation
First you need to get installed fpcalc on your system.
OS X
brew install chromaprint
Ubuntu
apt-get install libchromaprint-tools
Arch Linux
pacman -Sy chromaprint
Or you can get the latest version from AcoustId site
Than you just need to require this package via Composer
$ composer require mrfeathers/php-fpcalc
Usage
Usage is pretty simple. First you create a FpcalcProcess using factory class.
$factory = new FpcalcFactory(); $fpcalcProcess = $factory->create();
Than just call generateFingerPrint with array of file paths (or web stream uri - more info)
$result = $fpcalcProcess->generateFingerPrint(['myfile.mp3']); //or you can generate fingerprints for more than one file $result = $fpcalcProcess->generateFingerPrint(['myfile.mp3', 'mysecondfile.mp3']); //using online stream radio $result = $fpcalcProcess->generateFingerPrint(['http://icecast2.play.cz/radio1.mp3']);
As a result you'll get output string with generated fingerprint or fingerprints.
You're able to set some options:
format- input format namealgorithm- algorithm method (default 2). Available since fpcalc version 1.4.3rate- sample rate of the inputchannels- number of channels in the input audiolength- restricts the duration of the processed input audio (default 120, in seconds)chunk- splits the input audio into chunks of given duration (in seconds)overlap- overlap the chunks slightly to make sure audio on the edge id fingeprintedts- output UNIX timestamps for chunked results, useful when fingerprinting real-time audio streamraw- output fingerprints in the uncompressed formatoutputFormat- format of result output. Available: json, text, plain
Sometimes fingerprint generation can be a long process, sou you can set the process timeout using
setTimeoutmethod (default is 60 seconds).
Feel free to open an issue in case of bugs or improvement requests!