Export configuration template with the ability to sort, filter, display cover art, and play local songs in your browser

The script version 1.2 works fine for a typical album with 10-20 tracks. It also holds up reasonably well for something like the "UK Top 40" or "UK Top 100" lists. But it becomes too slow once you export thousands of rows.

This is a speed-optimized version v2.0 of the script:

MyColumnsExport (with Filter, Sort, Player, Cover, speed checked) v2.0.mte (43,6 KB)

Changelog:

Performance overhaul
The old version re-searched for cover images and re-scanned all table cells on every sort, filter keystroke, and click - fine for small amount of tracks, but slow at scale. v2.0 caches everything once on page load (row search text, cover paths, sort keys) and reuses that cache everywhere. Sorting now uses a "decorate-sort-undecorate" approach instead of recalculating sort keys during every comparison, and DOM updates are batched via a document fragment instead of moving rows one-by-one. Filtering also got a "debounce" (150ms) so it doesn't re-run on every single keystroke.

Cover detection: guesswork → exact match
v1.2 guessed at cover filenames by brute-force testing 16 filename/extension combinations per track (with/without album folder, raw/cleaned title, four extensions) - slow and unreliable. v2.0 drops the guessing entirely: it now reads the exact cover path and MIME type that Mp3tag already exported per track, so each track needs exactly one lookup instead of up to sixteen.

Hint:
You should export your covers - if you want to see them - with the new Format string in Export Cover to file:
.\Covers\$num(%track%,2) - $trim($regexp($validate(%title%,' '), +,' '))

This should solve some problems with special invalid characters for filenames like * or ? or < > or : and some more.

New: track/filter counters
v2.0 adds a live "Showing X of Y tracks" indicator and cleans up the "missing covers" counter placement, giving better feedback when filtering large libraries.

Minor layout/UX polish
Column header text no longer wraps awkwardly around the sort arrow (reserved space added), some spacing/margins around the filter row were tightened, and sorting now also handles the Year column numerically.

This v2.0 is built to comfortably handle ~20'000 tracks, whereas v1.2 was really only comfortable with much smaller amount of exported rows.

Still, I'd like to remind you: