Skip to content

MP3 CSV Tagger v1.5.0 — round 2: preview editing, tag sync, fingerprints (desktop), consistency, jobs

Latest

Choose a tag to compare

@DevXen DevXen released this 15 Oct 21:57

Round 2: desktop 1.4.0 + Android app 1.2.0. Everything works through the same preview → apply → change log → tag-snapshot undo path as CSV changes, on both platforms unless noted. No file renaming, no cleanup transforms — as always.

Highlights

  • Edit values in the preview — double-click a preview cell (Android: tap it) and type the correction. A manual edit outranks every CSV candidate, is marked "✎ manual edit", and can be reverted to the candidate value. The change log gains a trailing Source column on both platforms — the CSV file name, or the feature that produced the value ("manual edit", "tag sync", …).
  • Two-library tag sync — pair files by relative path (case/separator-insensitive), choose which tags to copy plus an optional cover-art copy, and get a normal preview of the target library. A tag copies only when the source value is non-empty and differs; unpaired files are listed and never touched.
  • Fingerprint matching (desktop) — with the external fpcalc (Chromaprint) tool detected on PATH: sync can pair leftover files by identical fingerprint + duration, and the library report gains a "Same recordings" section with a unify action through the preview. AcoustID lookup is opt-in with your own free API key, rate-limited, fills only empty fields, as a preview. No key = no network. Android does not fingerprint — the reason is recorded in ROADMAP.md.
  • Tags-vs-path consistency report — read-only on both platforms: apply a {Tag} filename/path pattern to every file and list where the stored tags disagree with the path-implied values. The report has no write path at all.
  • Album-grouped preview + completeness — group preview rows by album, and get a per-album completeness report (Title, Lead Performer, Album, Year, Genre, Track Number, Cover Art) with a library-wide summary. Android's library report also covers duplicates and spelling variants now.
  • Saved jobs — a named bundle of folders, CSV layers + roles and filename-pattern layers, rerun in one step (desktop Files tab or jobs / job-save / job-run; Android "Jobs…", plus launcher shortcuts that open a job straight into its preview).
  • Small things — desktop drag & drop onto the Files tab when the optional tkinterdnd2 package is present ("Paste paths…" without it); "Open in player" / ▶ plays a preview row's file read-only; Android opens CSVs shared or opened from other apps (copied into app storage, layered from the copy).

Assets

  • MP3CsvTagger-v1.4.0-linux-x64.zip — standalone Linux build of the desktop program (PyInstaller onedir; the Windows build is produced from the same tree with build_windows.bat).
  • MP3CsvTagger-v1.2.0.apk — Android app, signed with the app's per-app release key (same signer as 1.0.0/1.1.0, so it installs as an update).

Verified: 119 desktop tests (1 headless-GUI skip; 120 under a virtual display) and 43 Android JVM tests pass; the frozen Linux binary was smoke-tested end to end (run → apply → change log → undo) and its GUI launches with drag & drop active; the APK passed badging (versionCode 3 / 1.2.0), signer and dex-inventory gates against the 1.1.0 APK (zero classes removed). Not device-verified — as with every release here, the phone is the proof gate.