A cross-platform audio player built with Electron, supporting robust audio metadata extraction from both local tags and online sources (AcoustID/MusicBrainz). Displays title, artist, and cover art, with a support for Windows and Linux.
- Audio playback
- Metadata extraction:
- Local tags via jsmediatags
- Online lookup via AcoustID/MusicBrainz (using fpcalc for fingerprinting)
- Cover art display (from local tags or Cover Art Archive )
- Playlist/folder selection
- Offline fallback: If online metadata is missing/incomplete, falls back to local tags
- Works on Windows and Linux (auto-selects correct fpcalc binary)
- Linux RPM/DEB builds: Uses
rpmbuildand@electron-forge/maker-rpmfor RPM packages (see below)
- Node.js (v18+ recommended)
- Git
- On Windows: No extra steps
- On Linux: Ensure
fpcalcinresources/bin/linux/is executable (chmod +x) - For Linux RPM builds: Install
rpmbuild(see below)
npm installnpm start-
Windows (from Windows):
npm run make
Output:
out/make/(installer.exe) -
Linux (from Linux or WSL):
npm run make
Output:
out/make/(e.g.,.deb,.rpm)
Note: You cannot build Linux installers from Windows directly. Use WSL or a Linux machine for Linux builds.
- Make sure
rpmbuildis installed:- On Ubuntu/Debian (WSL):
sudo apt update && sudo apt install rpm - On Fedora/RHEL:
sudo dnf install rpm-build
- On Ubuntu/Debian (WSL):
- Then run:
npm run make
- The
.rpmpackage will be inout/make/.
resources/
bin/win/fpcalc.exe # Windows fingerprint binary
bin/linux/fpcalc # Linux fingerprint binary
lib/jsmediatags.min.js # Local jsmediatags build
src/
index.html, renderer.js, preload.js, ...
assets/ # App icons and images
metadata/ # Metadata extraction modules
forge.config.js # Electron Forge config
package.json # Project metadata and scripts
- App name & icon:
- Change
productNameinpackage.jsonfor app name - Change
iconandsetupIconinforge.config.jsfor app/installer icon
- Change
- Metadata logic:
- See
src/metadata/for local/online extraction logic
- See
MIT
