Beatport.com WSS by stevehero [Release, Single Track & Artwork tagging]

That last update is really great, thanks!

1 Like

Just stumbled across this script and I love it. :heart:
Am i being really stupid in that the Year or ReleaseTime doesn't write to the tag? :woozy_face:
Any help would be greatly appreciated.

1 Like

Fixed. Thanks for reporting and thanks for the appreciation.

New download in starting post.

v5.10 2021.03.23

  • FIX: TRACK script fix. BEATPORT_LABEL_URL, BEATPORT_RELEASE_ID, PUBLISHER, YEAR, DATE, UNSYNCEDLYRICS and WWW tags affected due to regression bug caused from earlier fix.
1 Like

Hi guys, for those who are finding the "(Extended Mix)" addition in the ALBUM name for many new releases rather annoying, you might consider adjusting

outputto "ALBUM"
json_select "name"
replace " (Extended Mix)" ""
sayrest

in the *.inc file(s) accordingly. Unlike Juno and other places, Beatport mostly releases only the extended mix and not the original + extended mixes (remember audiojelly :slight_smile: )

2 Likes

Hey, really sorry to annoy you with my problem. I didn’t use MP3Tag in the last year. I started up my work a few days ago and saw that u you have a new version of your script and I did a roll over to my, a bit to fast. Ending with lost of my old modified script.

I really fucked because I don’t remember what I had changed and how to do it again. Whit your new script I don’t find the info's to change it back too I needed.

I’m using only the:

Beatport by &stevehero v5.0#TRACK Direct by BEATPORT_TRACK_I&D.src

Beatport by &stevehero v5.0#TRACK Search by Artist + Title.src

First Problem:

On the search result page, I don’t see the Track Title Tab. The result is I don’t can use the easy way to search by title and track.

Second Problem:

The Key is not written in to the tag (comment or initalkey) before it writes both infos in the tag.

Last Problem:

The track title (Original Mix) is missing completely, with my old script it changed it to (OM). But now its only the title name without (Original Mix).

Again, a big SORRY! Hope U can help me or show me where I find the Info to do it by myself. I don’t find the answer in 10 Years! Hey, really THANK YOU for creating, sharing and giving support!!!

  1. I don't follow the first problem.

  2. Search the scripts for (Original Mix) and uncomment the lines by deleting the # for the relevant lines.

  3. At the bottom of the scripts add a # where it says set INITIALKEY.

1 Like

just modify your track search with those :

[IndexFormat]=% ↓ TYPE%|% ↓ EXCLUSIVE%|% ↓ ID (◣_◢)™%|% ↓ PRICE%|% ↓ LENGTH%|% ↓ RECORD LABEL%|% ↓ RELEASED%|% ↓ TITLE%|% ↓ RELEASE%|% ↓ ARTIST/S%|% ↓ REMIXER/S%|% ↓ GENRE/S%|%_URL%

in [ParserScriptIndex]=...

insert :

json_select "name" # TITLE
sayrest
json_select "mix"
ifnot ""
say " ("
sayrest
say ")"
endif
say "|"

just above:

json_select_object "release" # RELEASE
json_select "name"
sayrest
json_unselect_object
say "|"

1 Like

thank you so much! I believe i can solve the problem now. But today I'm too busy for that... giving you a feedback next days.

Can't believe I didn't add the title for the track search scripts. I rarely use them so that's my excuse. :innocent:

Update in the starting post.

UPDATE HISTORY

v5.11 2021.05.07

  • ADDED: TRACK script fix for the search by scripts. There was no title in the list of search results page.
2 Likes

Still a bit short with my time, but I want leave a short note on my trying’s.

I try to bring the search results in a new order that I have a better track finding for my purpose.

my first look:

[IndexFormat]=% ↓ ARTIST/S%|% ↓ TITLE%|% ↓ LENGTH%|% ↓ REMIXER/S%|% ↓ RELEASED%|% ↓ GENRE/S%|% ↓ RECORD LABEL%|% ↓ RELEASE%|% ↓ ID (◣_◢)™%|% ↓ PRICE%|%_URL%

But I have some trouble get it to the 100%.

‘’RELEASED’’ is not showing the blanked.

‘’ RELEASE’’ is showing me the artist’s name, not the title of record.

‘’ REMIXER/S’’ shows only a dash… but I tied it only on a few samples.

On the missing tags… I get it to work to write the keynote into the ‘’initalkey’’ field but not to copy that in the ‘’comment’’ field.

On the missing (Original Mix) I try out enable/disable the # on multiple positions. But that seems to be not the reason, so far I understand the text in the script. There is no point it says enable here for missing (Original Mix). It is maybe possible that Beatport has change something on their website? I see that (Original Mix) is separated from title field. That can maybe also the reason for the dashed ‘’REMIXER/S’’

I continue with my trying’s. Just want give u a update of my. Have a good time :wink:

Hi, folks!

found that it was my fault with the trying to change the order of the search result page. This leads to new faulty results. Steve on your script it works fine title + (Original Mix) and writing in to the tag by adding # in front of replace ""Original Mix"" """"

I tried to find my fault but everything looks correct for me. Maybe u like to take a look over it? If not I’m cool with it and take it like it is.

I have these faults in my moded script…

  • ‘’RELEASED’’ date is not showing, it is blanked.
  • ‘’ RELEASE’’ is showing me the artist’s name, not the title of record. (same on your TACK search and differently to your REALEASE search)
  • ‘’ REMIXER/S’’ shows only a dash. (on yours it works fine)

And don’t get it to work copy initalkey to the comment field.

I try to add this but it is not working :stuck_out_tongue:

COMMENT

outputto "COMMENT"

sayoutput "INITIALKEY"

INITIALKEY

outputto "INITIALKEY"

sayoutput "COMMENT"

THANK YOU!

Mod of Track Search

Temporary Upload for 15 Days only!

1 Like

Sorry, I don't really have time to check it.

Best redownload the scripts and try again the title has been added to the track search so that's one problem sorted for you.

Then follow the instructions I left here. Beatport.com WSS by stevehero [Release, Single Track & Artwork tagging] - #822 by stevehero

1 Like

Very nice script :kissing_heart:

Thank You !

I had tried to modify some small aspects of the script,
but I was having trouble to recreate my cosmetic needs.

I just have some small requests to modify the following:

  • Padding 'Track No.'
    I like to see 2-digit track numbers, ie. Track 01 but not Track 1
    Script only writes track numbers, without any "padding", ie. '0' at front.

  • 4-digit year
    I like to save into the tag: '2021' instead of '2021-05-04'

  • No catalogue / label in 'Album' field
    The script already saves the record label to the "Catalog No." field,
    but it also shows the record label, in the 'Album' field.
    I do not want it in the 'Album' field and I am fine with how it writes to the "Catalog No." field already.

  • Removing extra columns from:
    _Search results
    I want to remove columns such as "Exclusive", "Price", "ID", etc. to make for a cleaner result page.
    .
    _Adjust Tag Information
    I want to remove columns such as "Beatport Track ID", "Beatport Track URL"
    and/or re-arrange columns, so it's easier to read 'Length' or 'Track', when viewing side-by-side

  • Padding is not possible. This needs a feature added by mp3tag for counting when doing a json_foreach loop.
  • Year only, look in the scripts for:
# regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$2-$4-$3"   # YEAR in YYYY-DD-MM format
# regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$4-$3-$2"   # YEAR in DD-MM-YYYY format
# regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$2"         # YEAR in YYYY format

Change to:

# regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$2-$4-$3"   # YEAR in YYYY-DD-MM format
# regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$4-$3-$2"   # YEAR in DD-MM-YYYY format
regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$2"         # YEAR in YYYY format
  • For no Catalog in album change:
# ALBUM [CATOLOG #]
outputto "ALBUM"
say " ["
sayoutput "CATALOG #"
say "]"

To:

# ALBUM [CATOLOG #]
# outputto "ALBUM"
# say " ["
# sayoutput "CATALOG #"
# say "]"
  • For removing columns, Remove these two:
|% ↓ EXCLUSIVE%|% ↓ ID (◣_◢)™%|% ↓ PRICE%
json_select "exclusive" # EXCLUSIVE
sayrest
say "|"
json_select "id" # ID
sayrest
say "|"
json_select_object "price" # PRICE
json_select "display"
sayrest
json_unselect_object
say "|"
  • For removing tags, use set at the bottom of the scripts so:
# set "BEATPORT_TRACK_ID"
# set "BEATPORT_TRACK_URL"

Becomes:

set "BEATPORT_TRACK_ID"
set "BEATPORT_TRACK_URL"
1 Like

stevehero,
thank you so much for the detailed reply :blush:

the first 2 of your 'workarounds' are a success,
ie.

  • Year in "YYYY" format
  • No Catalog in Album name

However, when removing the columns from the results section,
ie. removing the 2 'sections' (which you pointed out), the entire web source scripts stop working.

Also, for 'removing tags', if I use "Set", wouldn't that omit those 2 x tags from the ID3,
ie. MP3Tag will just not write the BEATPORT_TRACK_ID and URL tags ?
All I wanted, was to remove the visibility of these columns, in the search results,
because it saves me from horizontally scrolling between first and last columns
(which contain track numbers/names and track lengths).

I don't need to see TRACK_ID and URL information , however, I do not mind if MP3Tag writes this information into the ID3 tags.

That should work if you delete what I have in them two sections.

You cannot hide the columns and write the tags. It's one or the other unfortunatly.

1 Like

Just noticed Beatport seem to have gone back and upres'd older artwork.

This release is from 2005 and the artwork is near perfect @1400x1400px.

1 Like

Removing the text in those 2 'sections', breaks the scripts completely and it does not work for me anymore.

OK. I understand.
Your suggestion works (ie. for 'removing tags' for TRACK ID & URLs )

No, it doesn't. I knew it would work.

Please see.

# Original IndexFormat
# New IndexFormat

And:

# THESE ARE THE ITEMS THAT ARE COMMENTED OUT BELOW
...
# THESE ARE THE ITEMS THAT ARE COMMENTED OUT ABOVE

Here's an example of the Beatport by &stevehero v5.0_Release Search.inc

#    _                   _                        _
#   | |                 | |                      | |
#   | |__    ___   __ _ | |_  _ __    ___   _ __ | |_     ___  ___   _ __ ___
#   | '_ \  / _ \ / _` || __|| '_ \  / _ \ | '__|| __|   / __|/ _ \ | '_ ` _ \
#   | |_) ||  __/| (_| || |_ | |_) || (_) || |   | |_  _| (__| (_) || | | | | |
#   |_.__/  \___| \__,_| \__|| .__/  \___/ |_|    \__|(_)\___|\___/ |_| |_| |_| _
#                    (_)     | | |   | |                 | |                   | |
#    ___   ___  _ __  _  _ __|_| |_  | |__   _   _   ___ | |_  ___ __   __ ___ | |__    ___  _ __  ___ TM
#   / __| / __|| '__|| || '_ \ | __| | '_ \ | | | | / __|| __|/ _ \\ \ / // _ \| '_ \  / _ \| '__|/ _ \
#   \__ \| (__ | |   | || |_) || |_  | |_) || |_| | \__ \| |_|  __/ \ V /|  __/| | | ||  __/| |  | (_) |
#   |___/ \___||_|   |_|| .__/  \__| |_.__/  \__, | |___/ \__|\___|  \_/  \___||_| |_| \___||_|   \___/
#                       | |                   __/ |
#                       |_|                  |___/
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                                 .:: [v5.11 by stevehero™] [2021.05.07] ::.                              #
# https://community.mp3tag.de/t/beatport-com-wss-by-stevehero-release-single-track-artwork-tagging/12568  #
#                          .:: Please read the 'Version History + Readme' file ::.                        #
#                    .:: DO NOT COPY/MODIFY OR REDISTRIBUTE THIS WITHOUT PERMISSION ::.                   #
#                 .:: This file should be stored in your tag sources sources directory ::.                #
#                                      %APPDATA%\Mp3tag\data\sources                                      #
#                                  and requires Mp3tag v3.03d or above.                                   #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                          .:: You can buy me a beer or an EP on beatport ::.                             #
#     https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=EZVJN8ZLEU8KC&source=url       #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# TO DO: (WSF Help: https://help.mp3tag.de/main_online.html)
# 1. Leading zero user option on track no.
# 2. TRACK/TOTALTRACKS to fix. e.g. 1/10, 2/10, 3/10 etc.
# 3. Once the json_select_many "artists" "name" " ● " "5" thing has been implemented. Change back to the Original IndexFormat and add that.

[Name]=beatport.com [v5.11 by stevehero™] (◣_◢)
[BasedOn]=https://www.beatport.com
[IndexUrl]=https://www.beatport.com/search/releases?q=
[AlbumUrl]=
[WordSeparator]=+

# Original IndexFormat
# [IndexFormat]=% ↓ TYPE%|% ↓ EXCLUSIVE%|% ↓ ID (◣_◢)™%|% ↓ PRICE%|% ↓ RECORD LABEL%|% ↓ RELEASED%|% ↓ CATALOG%|% ↓ RELEASE%|% ↓ ARTIST/S%|% ↓ REMIXER/S%|% ↓ GENRE/S%|%_URL%

# New IndexFormat
[IndexFormat]=% ↓ TYPE%|% ↓ RECORD LABEL%|% ↓ RELEASED%|% ↓ CATALOG%|% ↓ RELEASE%|% ↓ ARTIST/S%|% ↓ REMIXER/S%|% ↓ GENRE/S%|%_URL%
[Encoding]=url-utf-8

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

[ParserScriptIndex]=...

debug "on"  "W:\Apps (Portable)\Music Apps\Mp3tag\data\sources\BEATPORT debug index.html" 20 # Place before headings to want to debug
# debug "off" "W:\Apps (Portable)\Music Apps\Mp3tag\data\sources\BEATPORT debug index.html"    # Place after headings to want to debug (OPTIONAL)

findline "<!DOCTYPE html>"
findinline "<!DOCTYPE html>"
joinuntil "</html>"
replace "|" "$verticalBar()"
regexpreplace "(?i).*?window\.Playables\s*?=\s*?(\{.+);.*?window\.Sliders\s+=\s+\[.*" "$1"
regexpreplace "(\"exclusive\":\s+)(true\,)" "$1 "✓","
regexpreplace "(\"exclusive\":\s+)(false\,)" "$1 "╳","
regexpreplace "(\"type\":\s*\")([^\"]+)" "$1\u$2" # Upper case first letter for release type
regexpreplace "(\"artists\":\s+\[(?:{\"id\"[^\}]+\},\s){1,2}{\"id\"[^\}]+\},\s).+?(\])" "$1{\"id\": 0, \"name\": \" + others...\", \"slug\": \"no-mas\"}$2" # Limits the result of this array length to 3.
regexpreplace "(\"remixers\":\s+\[(?:{\"id\"[^\}]+\},\s){1,2}{\"id\"[^\}]+\},\s).+?(\])" "$1{\"id\": 0, \"name\": \" + others...\", \"slug\": \"no-mas\"}$2" # Limits the result of this array length to 3.
regexpreplace "(\"genres\":\s+\[(?:{\"id\"[^\}]+\},\s){1,2}{\"id\"[^\}]+\},\s).+?(\])" "$1{\"id\": 0, \"name\": \" + others...\", \"slug\": \"no-mas\"}$2" # Limits the result of this array length to 3.

json "ON" "current"

json_foreach "releases"
json_select "type" # TYPE
sayrest
say "|"

# THESE ARE THE ITEMS THAT ARE COMMENTED OUT BELOW
# THESE ARE THE ITEMS THAT ARE COMMENTED OUT BELOW
# THESE ARE THE ITEMS THAT ARE COMMENTED OUT BELOW
# THESE ARE THE ITEMS THAT ARE COMMENTED OUT BELOW

# json_select "exclusive" # EXCLUSIVE
# sayrest
# say "|"
# json_select "id" # ID
# sayrest
# say "|"
# json_select_object "price" # PRICE
# json_select "display"
# sayrest
# json_unselect_object
# say "|"

# THESE ARE THE ITEMS THAT ARE COMMENTED OUT ABOVE
# THESE ARE THE ITEMS THAT ARE COMMENTED OUT ABOVE
# THESE ARE THE ITEMS THAT ARE COMMENTED OUT ABOVE
# THESE ARE THE ITEMS THAT ARE COMMENTED OUT ABOVE

json_select_object "label" # LABEL
json_select "name"
sayrest
json_unselect_object
say "|"
json_select_object "date" # RELEASED
json_select "released"
sayrest
json_unselect_object
say "|"
json_select "catalog" # CATALOG
sayrest
say "|"
json_select "name" # RELEASES
sayrest
say "|"
# json_foreach "artists" # ARTIST COUNT
# sayrest
# json_foreach_end
# say "|"
json_select_many "artists" "name" " ● " # ARTIST/S
sayrest
say "|"
# json_foreach "remixers" # REMIXERS COUNT
# ifnot "0"
# sayrest
# else
# say "-"
# endif
# json_foreach_end
# say "|"
json_select_many "remixers" "name" " ● " # REMIXERS/S
ifnot ""
sayrest
else
say "-"
endif
say "|"
json_select_many "genres" "name" " ● " # GENRES/S
sayrest
say "|"
say "https://www.beatport.com/release/" # _URL
json_select "slug"
sayrest
json_select "id"
say "/"
sayrest
saynewline
json_foreach_end

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

[ParserScriptAlbum]=...

# debug "on"  "W:\Apps (Portable)\Music Apps\Mp3tag\data\sources\BEATPORT debug album.html" 20 # Place before headings to want to debug
# debug "off" "W:\Apps (Portable)\Music Apps\Mp3tag\data\sources\BEATPORT debug album.html"    # Place after headings to want to debug (OPTIONAL)

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                                   .:: P A R S I N G   S E T U P ::.                                     #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

gotoline 5
findline "<!DOCTYPE html>"
findinline "<!DOCTYPE html>"
joinuntil "</html>"
replace "|" "$verticalBar()"
regexpreplace "(\"exclusive\":\s+)(true\,)" "$1 "✓","
regexpreplace "(\"exclusive\":\s+)(false\,)" "$1 "╳","
regexpreplace "(\"type\":\s*\")([^\"]+)" "$1\u$2"                                            # Upper case first letter for release type
regexpreplace "(\"description\":\s*\")(\s*\")" "$1No description.$2"                         # Upper case first letter for release type
regexpreplace "\"tracks\": ?\[\s*\]\," ""                                                    # Remove empty track array, IMPORTANT, DO NOT REMOVE!
regexpreplace "(\"id\": (\d+), )(\"name\": \"[^\"]+\", )(\"slug\": \"([^\"]+)\")" "\"artist_url_stevehero_custom\": \"https://www.beatport.com/artist/$5/$2\", $1$3$4" # Fix #2 for BEATPORT_ARTIST_URL to add a new element for the url, IMPORTANT, DO NOT REMOVE!
regexpreplace "(\"released\": )(\"\d+-\d+-\d+\")" "$1$2, \"releaseddate\": $2"               # Create a new item to be parsed for the date field.

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# TAG FIXES + OPTIONS

# Old regexs brought over from classic beatport. To add should www.beatport.com have the same issues.
# regexpreplace "(,\"key\":)null,\"" "$1\"shortName\":\"╳\"},\""                               # Missing key
# regexpreplace "(?i)(\",\"title\":\".+?)(\s\[Bonus Track\])(.{1,75})(\",\"slug)" "$1$3$2$4"   # Title [Bonus Track] feat. artist (Remixer) => Title feat. artist (Remixer) [Bonus Track]
# regexpreplace "(?i)\(([^\"]{1,40})\s(feat[^\"]{1,40})Remix\s*\)" "$2($1)"                    # Title (artist Remix feat. Remixer Remix) => Title feat. artist (Remixer)
# regexpreplace ",\"name(\":\"[^\"]+\",\"slug.{1,50}artist\")" ",\"artistName$1"               # Artist/s
# regexpreplace ",\"name(\":\"[^\"]+\",\"slug.{1,50}remixer\")" ",\"remixerName$1"             # Remixer/s
# replace ",\"bpm\":0," ",\"bpm\":╳,"                                                          # Zero BPM fix

regexpreplace "(?i) \bep\b" " EP"                                                            # Fix Ep to EP
regexpreplace "(?i) Feat\. " " feat. "                                                       # Fix to lower case
regexpreplace "(?i)(\(|\[)(feat\.\s.+?)(\]|\))" "$2"                                         # Title (feat. artist) => Title feat. artist
regexpreplace "(?i)(\s*(Remix|Rework)\)\s*)\(Remix\)\s*" "$1"                                # Title (Rework) Remix & Title (Remix) Remix
regexpreplace "(?i)(\w)(\(|\[)feat\.\s+(.+?)(\]|\))" "$1 feat. $3"                           # Title(Feat. artist) => Title feat. artist
regexpreplace "(?i)(feat\.\s+[^\"]{1,40})\s+feat\." "$1,"                                    # Title feat. artist feat. artist' => 'Title feat. artist, artist
regexpreplace "(?i)\s+f(ea)?t\.*\s+" " feat. "                                               # 'ft. => feat.' 'Ft. => feat.' 'Feat. => feat.'
regexpreplace "\(+" "("
regexpreplace "\)+" ")"

regexpreplace "(?i)(\"mix\":) \"\s*\(Original Mix\)\s*\(Original Mix\)\s*\"" "$1 \"Original Mix\""  # Fix double '(Original Mix)'.
regexpreplace "(?i)(\"mix\":) \"\s*\(Original\)\s*\s*\"" "$1 \"Original Mix\""                      # Fix '(Original)'.
regexpreplace "(?i)(\"mix\":) \"\(([^\"]+?)\)\"" "$1 \"$2\""                                        # Fixed the extra ( and ) in the mix json
replace "\"Original Mix\"" "\"\""                                                                   # Replace "" to your liking, block this with # to keep the original setting
replace " feat. " " feat. "                                                                         # Here you can change the way you want 'feat.' formatted
replace " Remix) (Original Mix)" " Remix)"                                                          # Fix ' Remix (Original Mix)'
replace "\"type\":\"track\"" "\"type\":\"Track\""                                                   # Capital letter
replace "\/" "/"                                                                                    # URL fixes

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# TRACK OPTIONS
# regexpreplace "(txt-grey\">\s*)(\d)( <)" "$1 0$2$3"                                      # Add leading zeros to TRACK

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# INITIALKEY TO CAMELOT NOTATION
# Please DO NOT change values
# You can delete all these replace lines below to get 'Dmin' etc.

replace "\u266d" "♭"             # Fix
replace "\u266f" "#"             # Fix

replace "\"G# min\"" "\"01A\""
replace "\"A♭ min\"" "\"01A\""   # SAME KEY #
replace "\"D# min\"" "\"02A\""
replace "\"E♭ min\"" "\"02A\""   # SAME KEY #
replace "\"A# min\"" "\"03A\""
replace "\"B♭ min\"" "\"03A\""   # SAME KEY #
replace "\"F min\"" "\"04A\""
replace "\"C min\"" "\"05A\""
replace "\"G min\"" "\"06A\""
replace "\"D min\"" "\"07A\""
replace "\"A min\"" "\"08A\""
replace "\"E min\"" "\"09A\""
replace "\"B min\"" "\"10A\""
replace "\"F# min\"" "\"11A\""
replace "\"G♭ min\"" "\"11A\""
replace "\"C# min\"" "\"12A\""
replace "\"D♭ min\"" "\"12A\""   # SAME KEY #
replace "\"B maj\"" "\"01B\""
replace "\"F# maj\"" "\"02B\""
replace "\"G♭ maj\"" "\"02B\""   # SAME KEY #
replace "\"C# maj\"" "\"03B\""
replace "\"D♭ maj\"" "\"03B\""   # SAME KEY #
replace "\"G# maj\"" "\"04B\""
replace "\"A♭ maj\"" "\"04B\""   # SAME KEY #
replace "\"D# maj\"" "\"05B\""
replace "\"E♭ maj\"" "\"05B\""   # SAME KEY #
replace "\"A# maj\"" "\"06B\""
replace "\"B♭ maj\"" "\"06B\""   # SAME KEY #
replace "\"F maj\"" "\"07B\""
replace "\"C maj\"" "\"08B\""
replace "\"G maj\"" "\"09B\""
replace "\"D maj\"" "\"10B\""
replace "\"A maj\"" "\"11B\""
replace "\"E maj\"" "\"12B\""

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# GENRE
# regexpreplace ",\"genres\":\[.+?name\":\"([^\"]+)[^]]+\]" "trackGenre>>$1>"              # Fix
# regexpreplace "(trackGenre>>)(Dee|Ele|Min|Pro|Tec)(.+?)\s?(House)?.{0}>" "$1$4 $2$3>"    # 'Progressive House' to 'House Progressive'
# replace "trackGenre>>House Progressive>" "trackGenre>>House Prog>"                       # 'Progressive House' to 'House Prog'

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                                      .:: U S E R   O P T I O N S ::.                                    #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# DATE OPTION BELOW (Defaults to YYYY-MM-DD so leave this untouched for this output)
# Only leave one of these line below uncommented with no # preceding the line
regexpreplace "(releaseddate\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$3$4"     # DATE in MMDD format
# regexpreplace "(releaseddate\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$4$3"   # DATE in DDMM format

# YEAR OPTION BELOW (Defaults to YYYY-MM-DD so leave this untouched for this output)
# Only leave one of these line below uncommented with no # preceding the line
# regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$2-$4-$3"   # YEAR in YYYY-DD-MM format
# regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$4-$3-$2"   # YEAR in DD-MM-YYYY format
# regexpreplace "(released\":\s*\")(\d\d\d\d)-(\d\d)-(\d\d)" "$1$2"         # YEAR in YYYY format

# TOTALTRACKS OPTION BELOW
# regexpreplace "(ec-item track\" data-ec-position=\")(\d)(\")" "$1 0$2$3"    # Add leading zeros to TOTALTRACKS

# TRACK OPTION BELOW
# regexpreplace "(ec-item track\" data-ec-position=\")(\d)(\")" "$1 0$2$3"    # Add leading zeros to TRACK

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                                   .:: H T M L    P A R S I N G ::.                                      #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

outputto "_TIME_CHECK"  # shows track length when only single track available, convenient to check time comparison
findinline "<!-- END LOADING OVERLAY -->" 1 1
findinline "<li class=\"bucket-item ec-item track\" data-ec-position=\"" -1 1
findinline "position=" 1 1
if "\"1\""
gotochar 1
findinline "<p class=\"buk-track-length\">" 1 1
sayuntil "<"
endif

outputto "TOTALTRACKS"
gotochar 1
findinline "<!-- END LOADING OVERLAY -->" 1 1
findinline "<li class=\"bucket-item ec-item track\" data-ec-position=\"" -1 1
findinline "position=\"" 1 1
sayuntil "\""

outputto "ALBUMARTIST"
gotochar 1
findinline "<ul class=\"interior-release-chart-content-list\">" 1 1
findinline "<span class=\"value\">" 1 1
if "Various Artists"
say "VA"
outputto "COMPILATION"
say "1"
else
outputto "COMPILATION"
say "0"
endif

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                                   .:: J S O N    P A R S I N G ::.                                      #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# This will remove the last of the unwanted html code from being parsed, leave this before the start json parsing code
regexpreplace "(?i).*?window\.Playables\s*?=\s*?(\{.+);.*?window\.Sliders\s+=\s+\[.*" "$1"

json "ON" "current"
json_select_array "releases" 1
outputto "ALBUM"
json_select "name"
sayrest
outputto "ALBUMARTIST"
ifnotoutput "ALBUMARTIST"
json_select_many "artists" "name" ", "
sayrest
endif
outputto "BEATPORT_LABEL_URL"
say "https://www.beatport.com/label/"
json_select_object "label"
json_select "slug"
sayrest
json_select "id"
say "/"
json_unselect_object
sayrest
outputto "BEATPORT_RELEASE_ID"
json_select "id"
sayrest
outputto "CATALOG #"
json_select "catalog"
sayrest
outputto "COVERURL"
json_select_object "images"
json_select_object "large"
json_select "url"
regexpreplace "image_size\/\d+x\d+" "image"
json_unselect_object
json_unselect_object
sayrest
outputto "DATE"
json_select_object "date"
json_select "releaseddate"
json_unselect_object
sayrest
outputto "PUBLISHER"
json_select_object "label"
json_select "name"
json_unselect_object
sayrest
outputto "YEAR"
json_select_object "date"
json_select "released"
json_unselect_object
sayrest
outputto "UNSYNCEDLYRICS"
say "Release type:\\u0009\\u0009"
json_select "type"
sayrest
say "\\u000d\\u000a----------------------------------------------\\u000d\\u000a"
say "Exclusive to beatport:\\u0009"
json_select "exclusive"
sayrest
json_select "description"
say "\\u000d\\u000a----------------------------------------------\\u000d\\u000a"
sayrest
say "\\u000d\\u000a----------------------------------------------\\u000d\\u000a"
say "Tagged by:\\u0009\\u0009Mp3Tag w/ beatport.com scripts [v5.11 by stevehero™] (◣_◢) (http://bit.ly/2EmyidV)"
outputto "WWW"
json_select "slug"
say "https://www.beatport.com/release/"
sayrest
json_select "id"
say "/"
sayrest
json_unselect_object # Deselect releases array

json_foreach "tracks"
json_select "component"
if "Release Track Listing"

# outputto "TRACKTEMP" # TRACK/TOTALTRACK|TRACKTEMP
# # sayregexp "(?<=txt-grey\"> )[^<]+" "" "<<endTrack>>"
# sayrest
# # The bottom two lines control whether or not you have the TOTALTRACKS appended. e.g. 1/10, 2/10, 3/10 etc.
# # say "/"
# # sayoutput "TOTALTRACKS"
# say "|"

outputto "BEATPORT_ITEM_TYPE"
json_select "type"
sayrest
say "|"

outputto "BEATPORT_ARTIST_URL"
json_select_many "artists" "artist_url_stevehero_custom" "\\u005c\\u005c"
sayrest
say "|"

outputto "TITLE" # TITLE|TITLETEMP
json_select "name"
sayrest
json_select "mix"
ifnot ""
say " ("
sayrest
say ")"
endif
say "|"

outputto "ARTIST"
json_select_many "artists" "name" ", "
sayrest
say "|"

outputto "MIXARTIST"
json_select_many "remixers" "name" ", "
sayrest
say "|"

outputto "_LENGTH"
json_select_object "duration"
json_select "minutes"
sayrest
say "|"
json_unselect_object

outputto "BPM"
json_select "bpm"
sayrest
say "|"

outputto "INITIALKEY"
json_select "key"
sayrest
say "|"

outputto "GENRE"
json_select_many "genres" "name" ", "
sayrest
say "|"

outputto "BEATPORT_TRACK_ID"
json_select "id"
sayrest
say "|"

outputto "BEATPORT_TRACK_URL"
say "https://www.beatport.com/track/"
json_select "slug"
sayrest
say "/"
json_select "id"
sayrest
say "|"

# outputto "TRACKTEMP"
# say "|"

outputto "TRACKS"
say "|"

endif
json_foreach_end
json_unselect_object
json_unselect_object # Deselect tracks array

# TRACK COUNTER FIX ** DO NOT DELETE
# outputto "TITLE"
# sayoutput "TITLETEMP"
# set "TITLETEMP"
# outputto "TRACK"
# sayoutput "TRACKTEMP"
# set "TRACKTEMP"

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                            .:: T A G    C U S T O M I Z A T I O N ::.                                   #
# • You can add your own web source scripting here                                                        #
# • ONLY disable the ALBUM [CATALOG #] here                                                               #
# • Disable the other fields in the .:: R E M O V E    F I E L D S ::. section below                      #
# • To disable place a "#" in front of each line of code between the headings. e.g.                       #
# ALBUM [CATALOG #]                                                                                       #
  # outputto "ALBUM"                                                                                      #
  # say " ["                                                                                              #
  # sayoutput "CATALOG #"                                                                                 #
  # say "]"                                                                                               #
  # COMMENT                                                                                               #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# ALBUM ARTIST
outputto "ALBUM ARTIST"
sayoutput "ALBUMARTIST"
# ALBUM [CATOLOG #]
outputto "ALBUM"
say " ["
sayoutput "CATALOG #"
say "]"
# COMMENT
outputto "COMMENT"
sayoutput "INITIALKEY"
# DISCNUMBER
outputto "DISCNUMBER"
say "1"
# MEDIATYPE
outputto "MEDIATYPE"
say "BEATPORT STORE"
# RELEASETIME
outputto "RELEASETIME"
sayoutput "YEAR"
say "T00:00:00Z"
# DISCTOTAL
outputto "DISCTOTAL"
say "1"
# MEDIATYPE_ORIGINAL
outputto "MEDIATYPE_ORIGINAL"
say "WEB"
# STYLE
outputto "STYLE"
say "Electronic"

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                                .:: R E M O V E    F I E L D S ::.                                       #
# • To remove fields from parsing delete the # in front of 'set'                                          #
# • Only use this section to remove fields                                                                #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#

# set "_LENGTH"
# set "_TIME_CHECK"
# set "ALBUM"
# set "ALBUMARTIST"          # ITUNES USES
# set "ARTIST"
# set "BEATPORT_ARTIST_URL"
# set "BEATPORT_ITEM_TYPE"
# set "BEATPORT_LABEL_URL"
# set "BEATPORT_RELEASE_ID"
# set "BEATPORT_TRACK_ID"
# set "BEATPORT_TRACK_URL"
# set "BPM"
# set "CATALOG #"
# set "COMPILATION"
# set "COVERURL"
# set "DISCNUMBER"           # EXTRA FIELD
# set "DISCTOTAL"            # EXTRA FIELD
# set "GENRE"
# set "MEDIATYPE"            # EXTRA FIELD
# set "MEDIATYPE_ORIGINAL"   # EXTRA FIELD
# set "MIXARTIST"
# set "PUBLISHER"            # RECORD LABEL
# set "STYLE"
# set "TITLE"
# set "TOTALTRACKS"          # EXTRA FIELD
# set "TRACK"                # NO'S OF TRACKS E.G. 01/06 (if set goes back to default 1, 2, 3... etc)
# set "TRACKS"               # REMOVES TRACKs (USEFUL FOR WHEN ONLY REQUIRING COVERART SO NO TRACK NUMBERS APPEAR IN ADJUST TAG INFO DIALOG)
# set "UNSYNCEDLYRICS"       # DESCRIPTION ON BEATPORT
# set "WWW"
# set "YEAR"

# SET BY DEFAULT (My own personal preferences)
set "ALBUM ARTIST"           # EXTRA FIELD, ALBUM ARTIST USED IN VLC, FOOBAR 2000 AND OTHERS PLEASE CHECK YOUR MUSIC PLAYER FIRST
set "COMMENT"                # EXTRA FIELD
set "DATE"
set "INITIALKEY"
set "RELEASETIME"

#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#                                       .:: T H E E    E N D ::.                                          #
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
#    _                   _                        _
#   | |                 | |                      | |
#   | |__    ___   __ _ | |_  _ __    ___   _ __ | |_     ___  ___   _ __ ___
#   | '_ \  / _ \ / _` || __|| '_ \  / _ \ | '__|| __|   / __|/ _ \ | '_ ` _ \
#   | |_) ||  __/| (_| || |_ | |_) || (_) || |   | |_  _| (__| (_) || | | | | |
#   |_.__/  \___| \__,_| \__|| .__/  \___/ |_|    \__|(_)\___|\___/ |_| |_| |_| _
#                    (_)     | | |   | |                 | |                   | |
#    ___   ___  _ __  _  _ __|_| |_  | |__   _   _   ___ | |_  ___ __   __ ___ | |__    ___  _ __  ___ TM
#   / __| / __|| '__|| || '_ \ | __| | '_ \ | | | | / __|| __|/ _ \\ \ / // _ \| '_ \  / _ \| '__|/ _ \
#   \__ \| (__ | |   | || |_) || |_  | |_) || |_| | \__ \| |_|  __/ \ V /|  __/| | | ||  __/| |  | (_) |
#   |___/ \___||_|   |_|| .__/  \__| |_.__/  \__, | |___/ \__|\___|  \_/  \___||_| |_| \___||_|   \___/
#                       | |                   __/ |
#                       |_|                  |___/

1 Like

Yes, it does work now
:ok_hand:

I know now, why my previous "attempts" were not working
:rofl:

When you said 'remove', I was actually deleting those 2 x sections completely !
( I was not applying the "#" character to 'remove / escape' those lines )

When I saw that you were meticulous enough in giving me examples where you had entered the "#" already, but for the examples regarding those 2 x sections, the "#" was 'missing', so I went ahead and just removed several lines of the code.