[WS] Beatport · Traxsource · SoundCloud — Updated & Fixed Scripts 2026 (by Jordi & Claude)

Hi everyone,

I'm sharing three updated/fixed web source scripts for Mp3tag — one rewritten from scratch, one maintained from an existing base, and one with bug fixes applied. All verified against live site HTML/JSON as of April 2026.

All three require Mp3tag v3.26+ (Windows) or v1.8.4+ (Mac).


:musical_note: Beatport — v6.008

Based on the excellent original by @stevehero (v6.007). Full credit to him for the architecture — this is purely a maintenance update.

What changed from v6.007:

  • Hardcoded debug output paths (W:\Apps (Portable)\Music Apps\Mp3tag\...) replaced with portable %APPDATA%\Mp3tag\data\sources\ in all 5 .inc files — the original paths only worked on stevehero's machine; scripts now work out-of-the-box on any Windows installation without manual editing

  • Settings file (USER SETTINGS) fully restructured: three labeled sections (Format Options / Track Numbering / Disable Fields), description on every single entry explaining what it does and what the default means, corrected misleading defaults for COMMENT, RELEASETIME and ALBUM ARTIST, JSON encoding changed from UTF-8-BOM to clean UTF-8

  • German (de) localization block added to settings

Tags written: TITLE, ARTIST, ALBUMARTIST, ALBUM, PUBLISHER, GENRE + sub-genre, BPM, INITIALKEY (Camelot or Musical), ISRC, UPC, YEAR, RELEASETIME, COVERURL, CATALOG #, TRACK, TOTALTRACKS, DISCNUMBER, UNSYNCEDLYRICS, BEATPORT_TRACK_ID, BEATPORT_RELEASE_ID, BEATPORT_TRACK_URL, BEATPORT_ARTIST_URL, BEATPORT_LABEL_URL, WWW, MEDIATYPE, MEDIATYPE_ORIGINAL, STYLE, COMPILATION

:inbox_tray: Download: https://github.com/chuky80/mp3tag-web-sources/releases/download/v1.0.0/Beatport_by_Jordi_and_Claude_v6.008.zip


:musical_note: Traxsource — v3.0

Complete rewrite. The original scripts by Will Remainunknown (2021) stopped working after Traxsource redesigned their site in 2025. All selectors verified against live HTML on 2026-04-25.

Scripts included:

  • Track Search (by artist, title, or both)

  • Release Search (by album, artist, or both)

  • Track Direct by TRAXSOURCE_TRACKID

  • Release Direct by TRAXSOURCE_TITLEID

Key technical details:

  • Cover images fetched at full resolution from /files/images/ path (not the 52×52 search thumbnails)

  • TrackID extracted from <input id="tpTrid" value="..."> hidden field (most reliable source)

  • TitleID from data-cart="{title_id: NNN, ...}" as fallback

  • Pre-order dates handled: <span class="pre-ord-txt">Pre-order for YYYY-MM-DD</span>

  • Mix names normalized: trailing spaces stripped with non-greedy regex

  • Key/BPM from <div class="trk-cell key-bpm">Cmin<br>127</div> verified structure

User Settings panel (new — didn't exist before):

  • YEAR format: YYYY-MM-DD / YYYY / DD-MM-YYYY

  • RELEASETIME for Rekordbox in ISO 8601 format (opt-in, off by default)

  • Per-field toggles for every tag written

Tags written: TITLE (with mix name), ARTIST, ALBUMARTIST, MIXARTIST, ALBUM, PUBLISHER, GENRE, BPM, INITIALKEY, YEAR, LENGTH, RELEASETIME, COVERURL, WWW, CATALOG #, TRAXSOURCE_TRACKID, TRAXSOURCE_TITLEID, COMMENT

:inbox_tray: Download: https://github.com/chuky80/mp3tag-web-sources/releases/download/v1.0.0/Traxsource_by_Jordi_and_Claude_v3.0.zip


:musical_note: SoundCloud WS — v2.28

Based on LNDN's V2.28 (January 2026), which itself builds on Florian's fix (July 2024) and the original by Audioman2000. Full credit to all three.

Bugs fixed:

1. WWWARTIST was always empty — The script enters the user object via json_select_object "user" (line 251), then inside that block immediately calls json_select_object "user" again (line 269) before selecting permalink_url. This navigates to the non-existent path user.user.permalink_url instead of user.permalink_url, so WWWARTIST always came out blank. Fixed by removing the redundant inner json_select_object "user".

2. EndIf casing inconsistency — Multiple occurrences of endif, Endif, and Sayrest (vs EndIf/sayrest) normalized throughout for consistency.

3. Fragile array position documentedjson_select_array "" 9 is position-dependent on SoundCloud's hydration JSON structure. Added inline comment flagging this with debug instructions so future maintainers know where to look if SC updates their page structure.

Tags written: TITLE, ARTIST, MIXARTIST, ALBUMARTIST, GENRE, TAGS, PUBLISHER, COPYRIGHT, ORIGARTIST, YEAR, RELEASETIME, COVERURL, WWW, WWWARTIST, WWWPAYMENT, COMMENT, UNSYNCEDLYRICS

:inbox_tray: Download: https://github.com/chuky80/mp3tag-web-sources/releases/download/v1.0.0/SoundCloud_WS_V2.28_by_Jordi_and_Claude.zip


Installation (all three)

  1. Download the ZIP

  2. Extract all files into your Mp3tag sources folder:

    • Windows: %APPDATA%\Mp3tag\data\sources

    • Mac: ~/Library/Application Support/de.mp3tag.Mp3tag/Sources

  3. Restart Mp3tag — scripts appear under Tag Sources in the menu

Each ZIP includes a README.md with full documentation, configuration options, and debugging instructions.

GitHub repository: https://github.com/chuky80/mp3tag-web-sources


Feedback and bug reports welcome. These are actively maintained.

— Jordi & Claude (Anthropic)

2 Likes

@Jordi,

I’ve reviewed the v6.008 files and they are effectively the same as my original v6.007 scripts.

The only differences I see are:

  • %APPDATA% used in debug paths instead of local paths
  • branding/name changes (my name removed and replaced)
  • minor localisation updates in the settings file

There are no meaningful changes to the core logic or functionality.

My original files clearly stated:
“DO NOT COPY/MODIFY OR REDISTRIBUTE WITHOUT PERMISSION.”

You did not ask for permission to modify and redistribute this work.

Please remove these files from GitHub. I spent a significant amount of time developing them.

If you’d like to collaborate or propose changes, I’m open to that - but redistribution without permission isn’t acceptable.

3 Likes

sorry @stevehero, I've just removed.

Thank you. I hope you understand that you can't do such minor changes to a program and pass it off as your own.

Hi Everyone, i just installed the traxsource sources, i run mp3tag 3.30 on PC, but

I received a 403: forbidden Error..any suggestion?

Try the Beatport proxy refrenced in a different thread. We were getting the same 403 error with BP, because it's using Cloudflare. Could be the same thing here.

The Beatport Proxy By The_Zhu [WS] Beatport.com by stevehero [Release, Single Track & Artwork tagging] - #1256 by The_Zhu would be an elegant solution, but... it connects only to Beatport. I suppose one could politely ask The_Zhu to make a proxy for Traxsource (or even better a proxy that covers both beatport and Traxsource. I tried editing the source and lauching the python script but with little success :slight_smile:.

Edit: I Asked The zhu directly in the topic where he published his proxy [WS] Beatport.com by stevehero [Release, Single Track & Artwork tagging] - #1276 by RxB . We'll see if he replies

See my post here: [WS] Beatport.com by stevehero [Release, Single Track & Artwork tagging] - #1277 by The_Zhu

Fix for the 403 Forbidden error on Beatport/Traxsource — see my topic here:
:backhand_index_pointing_right: Mp3tag Proxy — fixes Cloudflare 403 for Beatport & Traxsource web sources (Windows)

Heads up: Traxsource recently added a small icon inside the track title link on search result pages. It breaks the title/URL regex in Track Search.inc, causing empty titles and mixed up artist names on some searches.

Fix, find this line:

regexpreplace "<!--DIV title--><a href=\"([^\"]+)\">([^<]+)</a>" "<TrackURL=$1><TrackName=$2>"

replace with:

regexpreplace "<!--DIV title--><a href=\"([^\"]+)\">(?:<img[^>]*>)?([^<]+)</a>" "<TrackURL=$1><TrackName=$2>"

Release Search is unaffected.

Is anyone else having an issue importing specifically album artwork, as well as the length of the track in the metadata section when using the Beatport Track URL or ID tag lookups? The other data looks to be importing. This just started happening yesterday.

Yes, and it is not just you. Beatport changed the data behind its track pages a few days ago, and those two fields moved. That is why the cover and the length come back empty while everything else still works.

If you are using stevehero's v6 scripts, and by the sound of your lookup names you are, there is a small tool that fixes both for you. It backs your files up first and is safe to run again later. It is in my Mp3tag Proxy thread, which I linked earlier in this topic.

If you turn out to be on a different set of Beatport scripts it will not touch them, but that thread also explains what changed, and that part applies to any script.

I noticed you uploaded your updated proxy executable with scripts and it's running just fine now. Thank you! It is very appreciated!