Mp3tag Proxy — fixes Cloudflare 403 for Beatport & Traxsource web sources (Windows)

Hi everyone,

If you've been getting 403 Forbidden when fetching tags from Beatport or Traxsource, that's Cloudflare's bot protection blocking Mp3tag. I built a small free tool that works around it: Mp3tag Proxy.

What it is
A tiny local helper for Windows 10/11. It runs quietly in the system tray and sits between Mp3tag and the site, so your existing tag-source scripts work again. Everything stays on your PC — no account, nothing sent anywhere.

What it fixes

  • 403 Forbidden on Beatport and Traxsource (Cloudflare)
  • Traxsource search, tags and full-size 600×600 covers

Setup (one-time)

  1. Download mp3tag_proxy.exe and put it in any folder.
  2. Install the tag-source scripts you want:
    Beatport — stevehero's v6 scripts: [WS] Beatport.com by stevehero [Release, Single Track & Artwork tagging]
    Traxsource[WS] Beatport · Traxsource · SoundCloud — Updated & Fixed Scripts 2026 (by Jordi & Claude)
  3. Apply a few small edits from MODIFICATIONS.md (documented step by step).
  4. Restart Mp3tag, then double-click the .exe. Done.

Full instructions + download:
:backhand_index_pointing_right: GitHub - Mr-The-Zhu/mp3tag-proxy: Cloudflare-bypass proxy for Mp3tag — Beatport and Traxsource (Windows) · GitHub
Direct download: https://github.com/Mr-The-Zhu/mp3tag-proxy/releases/latest/download/mp3tag_proxy.exe

Requirements: Windows 10 / 11, and a version of Mp3tag that your scripts require (stevehero's Beatport v6 needs v3.22+, the Traxsource scripts need v3.26+).

I'm not redistributing anyone's scripts — you apply the edits to your own installed copies, so you'll need the scripts already installed from the links above.

Feedback and bug reports welcome. :slightly_smiling_face:


Mp3tag Proxy is an independent, third-party tool and is not affiliated with or endorsed by Mp3tag. Mp3tag is a registered trademark and the exclusive property of its holder, as is its logo.


Odd. I've made all the changes suggested at Git, but still getting a 403. No VPN is on. I have MPT version 3.34.1 and the newest version of Steve's scripts.

=== 2026-07-02 12:47:10 ===========================
2026-07-02 12:47:10 Server listening on 127.0.0.1:8787 (impersonate=chrome131)
2026-07-02 12:47:22 REQ GET /search/releases?q=+BLZS+Oathbound
2026-07-02 12:47:22 [warmup] www.beatport.com cookies=0
2026-07-02 12:47:22 RESP 403 https://www.beatport.com/search/releases?q=+BLZS+Oathbound bytes=5990
2026-07-02 12:47:48 REQ GET /search/releases?q=+BLZS+Oathbound
2026-07-02 12:47:49 RESP 403 https://www.beatport.com/search/releases?q=+BLZS+Oathbound bytes=5969
2026-07-02 12:53:43 REQ GET /search/releases?q=+BLZS+Overgrowth
2026-07-02 12:53:44 RESP 403 https://www.beatport.com/search/releases?q=+BLZS+Overgrowth bytes=5972
2026-07-02 12:53:50 [exit] user quit

=== 2026-07-02 12:53:57 ===========================
2026-07-02 12:53:58 Server listening on 127.0.0.1:8787 (impersonate=chrome131)
2026-07-02 12:54:31 REQ GET /search/releases?q=+BLZS
2026-07-02 12:54:31 [warmup] www.beatport.com cookies=0
2026-07-02 12:54:31 RESP 403 https://www.beatport.com/search/releases?q=+BLZS bytes=5939

You're on the old build, your log says impersonate=chrome131. Beatport tightened its Cloudflare check, and v2.1.0 (linked at the top of this topic) handles it via Edge.

Just download the latest and restart. Your script edits are fine, nothing else to change.

@The_Zhu Awesome, highly appreciate your work!

That was it! You might want to include the version in the file name at the DL link; I didn't catch there was a newer version.

Any way to change the port number? I cannot use 8787 as it's restricted here. Thanks!

Nvm, I managed to patch the compiled python script and rebuilt it to use 9000. Anyone need help, just use AI. :wink:

Thanks for your work on this! Appreciate ya mate!

Mp3tag Proxy v2.3.0 is out :tada:

  • Works with Edge, Chrome, or Brave (no longer Edge-only)
  • No more sync-related timeouts on Beatport
  • Tray shows "solving challenge…" while it works
  • Custom port ( set port=<number> in proxy.cfg, no rebuild needed)

Thanks to everyone who reported issues, several of these came straight from your feedback. :folded_hands:

Bugfix v2.3.1 is out!

Fixes a case where running two copies of the proxy at once could hang it (Mp3tag error 12002). Only one instance runs now, a second launch just tells you it's already running.

Hi and thanks for your work. i follow every steps in the guide ( i us Traxsource tags ) but it seems not working for me..i receive for example Title 0 and artists Kylie Mingogue, and some others in every tag search i do. i dont understand..

Hi, thanks for reporting this. "Title 0" and a random artist name on every search sounds like a parsing issue rather than something with the proxy itself, but I'd need a bit more info to be sure:

  1. Which script exactly are you using (Search or Direct by URL)?
  2. What search term did you type?
  3. Is the proxy tray icon running when you search?
  4. Could you check proxy.log next to the exe, does it show a request to traxsource.com when you search, and what status code (200/403/etc)?

A screenshot of the search results panel would help too.

proxy says: === 2026-07-16 16:10:14 v2.3.1 ====================
2026-07-16 16:10:14 Server listening on 127.0.0.1:8787 (impersonate=chrome146)
2026-07-16 16:10:14 [browser] Edge found — Beatport challenge solving available
2026-07-16 16:10:14 [update] up to date (v2.3.1)

i use Track Search Artists + Title

YES the proxy tray runs

This Is a screen of what happen ps the only thing i changed in your tags is the comment, i have already done some edits in past so i know what i do :slight_smile:

Thanks, that's very helpful. Two things stand out:

  1. Your proxy.log only shows the startup lines, no REQ/RESP lines. That means this particular search never actually went through the proxy. Can you double check the [BasedOn] and [IndexUrl] lines in your "Track Search" .inc file were saved correctly, and that you did a full Mp3tag restart (File → Exit, then reopen) after editing? Then run the search again and send me the fresh log tail, it should show a line like REQ GET .../search/tracks....
  2. Separately, the empty title and every artist merged into one field looks like a parsing issue in how the search result list is built, not something the proxy causes. Once we confirm the proxy is actually in the loop, I'll dig into that part.

This is the entire line of my Track search.inc includes the modify made following the guide on github:

[Name]=Traxsource by Jordi & Claude (Track Search) [v3.0]
[BasedOn]=http://127.0.0.1:8787
[IndexUrl]=http://127.0.0.1:8787/https://www.traxsource.com/search/tracks?term=%s
[AlbumUrl]=
[WordSeparator]=+
[IndexFormat]=% ↓ RELEASED%|% ↓ GENRE%|% ↓ LENGTH%|% ↓ TRACK ID%|% ↓ TITLE (Mix)%|% ↓ ARTIST/S%|% ↓ REMIXER/S%|%_URL%
[Encoding]=url-utf-8
[MinAppVersionWin]=3.26
[MinAppVersionMac]=1.8.4
[Settings]=&Traxsource by Jordi & Claude#USER SETTIN&GS.settings

This is the Track direct by ID :

[Name]=Traxsource by Jordi & Claude (Track Direct) [v3.0]
[BasedOn]=http://127.0.0.1:8787
[AlbumUrl]=http://127.0.0.1:8787/https://www.traxsource.com/track/%s
[Encoding]=url-utf-8
[MinAppVersionWin]=3.26
[MinAppVersionMac]=1.8.4
[Settings]=&Traxsource by Jordi & Claude#USER SETTIN&GS.settings

this is the new file log after re-made a pair of restart:

=== 2026-07-16 16:09:43 v2.3.1 ====================
2026-07-16 16:09:43 Server listening on 127.0.0.1:8787 (impersonate=chrome146)
2026-07-16 16:09:43 [browser] Edge found — Beatport challenge solving available
2026-07-16 16:09:43 [update] up to date (v2.3.1)
2026-07-16 16:10:04 [exit] user quit

=== 2026-07-16 16:10:14 v2.3.1 ====================
2026-07-16 16:10:14 Server listening on 127.0.0.1:8787 (impersonate=chrome146)
2026-07-16 16:10:14 [browser] Edge found — Beatport challenge solving available
2026-07-16 16:10:14 [update] up to date (v2.3.1)
2026-07-16 16:11:49 REQ GET /https://www.traxsource.com/search/tracks?term=Alfio+Pienne+All+I+Do++++Mix
2026-07-16 16:11:50 [warmup] www.traxsource.com cookies=2
2026-07-16 16:11:50 RESP 200 https://www.traxsource.com/search/tracks?term=Alfio+Pienne+All+I+Do++++Mix bytes=34564
2026-07-16 16:11:51 REQ GET /https://www.traxsource.com
2026-07-16 16:11:51 RESP 200 https://www.traxsource.com bytes=175157
2026-07-16 16:20:22 REQ GET /https://www.traxsource.com/search/tracks?term=Groovy+Living+EP
2026-07-16 16:20:23 RESP 200 https://www.traxsource.com/search/tracks?term=Groovy+Living+EP bytes=31099
2026-07-16 16:50:29 [exit] idle 1807s > 1800s

=== 2026-07-16 18:50:52 v2.3.1 ====================
2026-07-16 18:50:52 Server listening on 127.0.0.1:8787 (impersonate=chrome146)
2026-07-16 18:50:52 [browser] Edge found — Beatport challenge solving available
2026-07-16 18:50:53 [update] up to date (v2.3.1)
2026-07-16 18:51:29 REQ GET /https://www.traxsource.com/search/tracks?term=Alfio+Pienne+All+I+Do++++Mix
2026-07-16 18:51:30 [warmup] www.traxsource.com cookies=2
2026-07-16 18:51:30 RESP 200 https://www.traxsource.com/search/tracks?term=Alfio+Pienne+All+I+Do++++Mix bytes=34564
2026-07-16 18:51:30 REQ GET /https://www.traxsource.com
2026-07-16 18:51:30 RESP 200 https://www.traxsource.com bytes=175028
2026-07-16 18:52:01 REQ GET /https://www.traxsource.com/search/tracks?term=Alfio+Pienne+All+I+Do
2026-07-16 18:52:01 RESP 200 https://www.traxsource.com/search/tracks?term=Alfio+Pienne+All+I+Do bytes=34529
2026-07-16 18:52:01 REQ GET /https://www.traxsource.com
2026-07-16 18:52:02 RESP 200 https://www.traxsource.com bytes=175028

Found it, thanks for the detailed logs, that really helped. It's a bug in the Track Search script itself, not the proxy. Traxsource recently added a small icon inside the track title link on search results pages, and it broke the regex that reads the track's URL for most rows. When that happens, Mp3tag ends up fetching the Traxsource homepage instead of the actual track page, which explains the empty title and the random mix of artist names (they're just names from the homepage).

Fix: open Traxsource by Jordi & Claude#TRACK Search.inc in a text editor and find this line:

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

Replace it with:

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

Save, restart Mp3tag (File → Exit, then reopen), and try again. I tested it here and it's working correctly now.

OH YES! Thanks a lot for your help and your nice work! seems it works ! i test a little and eventually i report to you my feedback! cheers!