Local desktop app (Tauri + Next.js + Rust) for scanning a music library, scraping metadata from a companion API, editing tags/cover art, downloading tracks, and browsing library stats.
Current version: 2.0.2
| Area | Capability |
|---|---|
| Library | Pick a folder, scan MP3s into a local SQLite cache, refresh individual tracks |
| Scrape | Batch-fetch metadata via an external scrape API; review suggestions or apply tags immediately |
| Edit | Manual tag edits, embed/replace album art (ID3v2.3 + JPEG), fetch art from a URL |
| Download | YouTube/other URLs via yt-dlp; Spotify via spotDL |
| Player | Built-in library playback (Windows taskbar media controls when available) |
| Stats | Library summaries, genre/artist breakdowns, artist-country map (MusicBrainz) |
| Settings | Thread count, scrape providers, scrape mode, library path, appearance |
App data lives under ~/.config/auto-mp3 (on Windows: %USERPROFILE%\.config\auto-mp3).
- Node.js (18+ recommended)
- Rust + Tauri v1 system deps
- A running scrape API reachable from this app (see env below)
- For downloads only:
- ffmpeg on
PATH - Sidecar binaries in
bin/(see Download sidecars)
- ffmpeg on
git clone https://github.com/Mp3-Automated-Tag-Editor/Automated-Mp3-Gui
cd Automated-Mp3-Gui
npm installCreate .env.development at the repo root (or in src-tauri/):
ENV=development
DEV_API_ENDPOINT=http://127.0.0.1:8000/api/scrape/
HEALTH_ENDPOINT=http://127.0.0.1:8000/api/| Variable | Used for |
|---|---|
DEV_API_ENDPOINT |
POST target for per-track scrape requests (must be a valid URL; trailing path is fine) |
HEALTH_ENDPOINT |
Base URL for /health checks in the UI |
ENV |
Optional label logged at startup |
Production builds compile in src-tauri/.env.production (same keys). That file must exist before npm run tauri build.
Windows (from repo root):
npm run fetch:sidecarsThis places bin/yt-dlp-x86_64-pc-windows-msvc.exe and bin/spotdl-x86_64-pc-windows-msvc.exe for Tauri externalBin. Other platforms: put matching yt-dlp / spotdl binaries under bin/ per Tauri externalBin naming.
npm run tauri dev # development
npm run tauri build # production installer / binary- Set a library folder (Edit or Settings).
- Wait for the scan to finish (progress events update the UI).
- Scrape incomplete tracks — choose review (suggestions only) or apply (write tags to disk).
- Review/edit tags and cover art on the Edit page; save when ready.
- Optional: Download into the library; Music to play; Statistics for overview.
Scraping will fail if DEV_API_ENDPOINT is unset or the API is down. Local edit/playback/library scan work without it.
- UI: React, TypeScript, Tailwind, Next.js
- Shell: Tauri 1.x
- Tags: Lofty / ID3 (JPEG APIC, ID3v2.3 for player compatibility)
- Local data: SQLite library cache + scrape response cache under
~/.config/auto-mp3
MIT © Mp3 Automated Tag Editor. See LICENSE.
