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

That's fully intentional. I prefer it that way because I can have all my housey genres easily sortable within any music software.

But for your needs delete all the replace functions which are striked-through:
# GENRE
outputto "Genre"
findline "" 1 1
moveline 1
unspace
if "<genre "
joinuntil ""
replace "Deep House" "House Deep"
replace "Electro House" "House Electro"
replace "Minimal" "House Minimal"
replace "Progressive House" "House Prog"
replace "Tech House" "House Tech"
replace "Vocal House" "House Vocal"

findinline ""
sayuntil "</"
endif
say "|"

Oh, I see. Thanks for solution!

Hello Stevehero...

at first, big thanks for you and a huge praise for the script.

so far I have edited my collection with the discogsscript and changed it for my taste

i had merged the LABEL (First Information) and CATALOG (second information) in the column "CONTENTGROUP" with square brackets

Example: [Strictly Rhythms / STRV06D]

I had trying to change it but unfortunately without success

Please can you help me?

Sorry for my bad english...

Thank you for your kind words. I can understand your needs okay. Make sure you place the code below between the headings below in the script while keeping the existing lines of code.

#        .:: C U S T O M I Z A T I O N    S T A R T S ::.        #
# CONTENTGROUP
    outputto "Contentgroup"
    say "["
    sayoutput "publisher"
    say " / "
    sayoutput "catalog #"
    say "]"
#        .:: C U S T O M I Z A T I O N    E N D S ::.            #

You should find this section towards the bottom of the script.

Oh... Thank you, it works, thats perfekt :wink:

Great script!

I guess I found a little bug: On Beatport the Genre is "Tech House" - but with your script it becomes "House Tech" ... bug or feature?

Thanks. Feature. I find it much easier to group all the House Genres together. Thats why the House comes before the sub-genre. Makes sense to me anyway. But to change it open all the scripts and find where it says in the script. (Both Release and Single Track Scripts)

		<!--fonto:Courier New--><span style="font-family:Courier New"><!--/fonto-->joinuntil "</genre>"
replace "Deep House" "House Deep"
		replace "Electro House" "House Electro"
		replace "Minimal" "House Minimal"
		replace "Progressive House" "House Prog"
		replace "Tech House" "House Tech"
		replace "Vocal House" "House Vocal"</strike>
		findinline "<name>"
		sayuntil "</"
		endif
	say "|"<!--fontc--></span><!--/fontc-->

Remove the strikeout words from your scripts and your good to go to what beatport displays its genres as.

Never thought about this. Great feature! Thanks

I can't believe it took me this long to find this script. Its fan-freaking-tastic.

However, I'm noticing a little problem. I have edited the TRACK section because I like having "xxx featuring yyy" to be "xxx ft yyy", but I have noticed that it disregards this config and uses what it pulls from beatport

# TRACK
	outputto "title"
	gotoline 1
	findline "<name>"
	regexpreplace "Feat\s+" "Ft "								# FORMAT THE WAY YOU WANT feat. TO DISPLAY
	regexpreplace "Feat.\s+" "Ft "								# FORMAT THE WAY YOU WANT feat. TO DISPLAY
	findinline ">"
	sayuntil "</"

What can I do?

QUOTE (djSMIRK @ Aug 29 2012, 04:48) <{POST_SNAPBACK}>
I can't believe it took me this long to find this script. Its fan-freaking-tastic.

However, I'm noticing a little problem. I have edited the TRACK section because I like having "xxx featuring yyy" to be "xxx ft yyy", but I have noticed that it disregards this config and uses what it pulls from beatport

# TRACK
	outputto "title"
	gotoline 1
	findline "<name>"
	regexpreplace "Feat\s+" "Ft "								# FORMAT THE WAY YOU WANT feat. TO DISPLAY
	regexpreplace "Feat.\s+" "Ft "								# FORMAT THE WAY YOU WANT feat. TO DISPLAY
	findinline ">"
	sayuntil "</"

What can I do?

You have tampered with the workings of the script because the %title% should be outputted to "tracks". See the examples below of how the #RELEASE version of the script should look with a few small additions to it since my last update (have not uploaded this version yet) as regards the regexpreplaces. What you need to do is copy what is in bold to the script between the same text shown and it should work fine.
	<i>			set "albumartist", "VA"								# CHANGE "VA" TO YOUR LIKING
		outputto "compilation"								# COMPILATION "1" IF "VA"
		say "1"
	endif
	endif
replace "|" "/"</i>

# TRACKS
findline "<track"
do
outputto "tracks"
findline ""
regexpreplace "ft.\s+" "ft "
regexpreplace "Ft.\s+" "ft "
regexpreplace "Feat\s+" "ft "
regexpreplace "Feat.\s+" "ft "
regexpreplace "((feat.\s+.+))" "$1"
regexpreplace "(feat.\s+.+)\s+feat." "$1,"
findinline ">"
sayuntil "</"

# MIXNAME
findline ""

Hi stevehero, thanks for the reply. I don't want to be "that guy" but I didn't tamper with the code. What I posted is your original code. I only changed these lines

	regexpreplace "Feat\s+" "Ft "								# FORMAT THE WAY YOU WANT feat. TO DISPLAY
	regexpreplace "Feat.\s+" "Ft  "								# FORMAT THE WAY YOU WANT feat. TO DISPLAY

And just to make sure I'm not making an ass of myself, I just re-downloaded the v2.1 ZIP package and here is the section of code in its original form (this is in "Beatport by &stevehero#SINGLE TRACK Search by Title.src")

# TRACK
	gotoline 1
	outputto "title"
	findline "<name>"
	regexpreplace "Feat\s+" "feat. "								# FORMAT THE WAY YOU WANT feat. TO DISPLAY
	regexpreplace "Feat.\s+" "feat. "								# FORMAT THE WAY YOU WANT feat. TO DISPLAY
	findinline ">"
	sayuntil "</"

Either way, thank you for creating such an amazing addon to this amazing program.

So this didn't work :frowning:

I am using "single track search by title" and added your suggestion to the #TRACK section in the "album" section

I added a debug print and attached the output. I also attached my current "single track search by title.src" file

What am I doing wrong?

debug_album_beatport.txt (10.5 KB)

SINGLE_TRACK_Search_by_Title.src (10.7 KB)

You defiantly have changed something in the attached script.

Original #TRACK script (with only some minor additions to the regexpreplaces):

# ALBUM
                 outputto "album"
                 gotoline 1
                 findline "<release id"
                 moveline 1
                 findinline "<name>"
                 sayuntil "</"
     # TRACK
                 gotoline 1
                 outputto "title"
                 findline "<name>"
                 regexpreplace "ft.\s+" "feat. "                            # FORMAT THE WAY YOU WANT feat. TO DISPLAY
                 regexpreplace "Ft.\s+" "feat. "                            # FORMAT THE WAY YOU WANT feat. TO DISPLAY
                 regexpreplace "Feat\s+" "feat. "                        # FORMAT THE WAY YOU WANT feat. TO DISPLAY
                 regexpreplace "Feat.\s+" "feat. "                        # FORMAT THE WAY YOU WANT feat. TO DISPLAY
                 regexpreplace "\((feat\.\s+.+)\)" "$1"                # FIX 'Get Involved (feat. Timbaland)' TO 'Get Involved feat. Timbaland'
                 regexpreplace "(feat\.\s+.+)\s+feat\." "$1,"        # FIX 'Get Involved feat. Timbaland feat. Missy Elliot (Yves V Remix)' TO 'Get Involved feat. Timbaland, Missy Elliot (Yves V Remix)'
                 findinline ">"
                 sayuntil "</"
         # MIXNAME
       ...

Your modified (attached):

# ALBUM
outputto "album"
gotoline 1
findline "<release id"
moveline 1
findinline "<name>"
sayuntil "</"

TRACKS

findline "<track"
do
outputto "tracks"
findline "<name>"
regexpreplace "ft.\s+" "Ft "
regexpreplace "Ft.\s+" "Ft "
regexpreplace "Feat\s+" "Ft "
regexpreplace "Feat.\s+" "Ft "
regexpreplace "\((feat\.\s+.+)\)" "$1"
regexpreplace "(feat\.\s+.+)\s+feat\." "$1,"
findinline ">"
sayuntil "</"<!--fontc--></span><!--/fontc-->

You misunderstood me when I said about the previous 'example'. That was only for the release version of the script. Both scripts work differently from one another. And I'm sorry but yes you have changed something.

Go to line 1 is missing after # TRACK
There is no 'do' command in the singe track version of the scripts
outputto "tracks" is not correct either in the script.

To solve your problem copy my top code from:

ALBUM

....>>

MIXNAME

Over the existing wrong code and change all the "feat. " (like example below) to whatever you feel like. regexpreplace "Feat.\s+" "feat. "

making sure you keep the two "" between whatever text you want.

QUOTE (stevehero @ Aug 30 2012, 06:30) <{POST_SNAPBACK}>
You defiantly have changed something in the attached script.

Original #TRACK script (with only some minor additions to the regexpreplaces):

# ALBUM
                 outputto "album"
                 gotoline 1
                 findline "<release id"
                 moveline 1
                 findinline "<name>"
                 sayuntil "</"
     # TRACK
                 gotoline 1
                 outputto "title"
                 findline "<name>"
                 regexpreplace "ft.\s+" "feat. "                            # FORMAT THE WAY YOU WANT feat. TO DISPLAY
                 regexpreplace "Ft.\s+" "feat. "                            # FORMAT THE WAY YOU WANT feat. TO DISPLAY
                 regexpreplace "Feat\s+" "feat. "                        # FORMAT THE WAY YOU WANT feat. TO DISPLAY
                 regexpreplace "Feat.\s+" "feat. "                        # FORMAT THE WAY YOU WANT feat. TO DISPLAY
                 regexpreplace "\((feat\.\s+.+)\)" "$1"                # FIX 'Get Involved (feat. Timbaland)' TO 'Get Involved feat. Timbaland'
                 regexpreplace "(feat\.\s+.+)\s+feat\." "$1,"        # FIX 'Get Involved feat. Timbaland feat. Missy Elliot (Yves V Remix)' TO 'Get Involved feat. Timbaland, Missy Elliot (Yves V Remix)'
                 findinline ">"
                 sayuntil "</"
         # MIXNAME
       ...

Your modified (attached):

# ALBUM
outputto "album"
gotoline 1
findline "<release id"
moveline 1
findinline "<name>"
sayuntil "</"

TRACKS

findline "<track"
do
outputto "tracks"
findline "<name>"
regexpreplace "ft.\s+" "Ft "
regexpreplace "Ft.\s+" "Ft "
regexpreplace "Feat\s+" "Ft "
regexpreplace "Feat.\s+" "Ft "
regexpreplace "\((feat\.\s+.+)\)" "$1"
regexpreplace "(feat\.\s+.+)\s+feat\." "$1,"
findinline ">"
sayuntil "</"<!--fontc--></span><!--/fontc-->

You misunderstood me when I said about the previous 'example'. That was only for the release version of the script. Both scripts work differently from one another. And I'm sorry but yes you have changed something.

Go to line 1 is missing after # TRACK
There is no 'do' command in the singe track version of the scripts
outputto "tracks" is not correct either in the script.

To solve your problem copy my top code from:

ALBUM

....>>

MIXNAME

Over the existing wrong code and change all the "feat. " (like example below) to whatever you feel like. regexpreplace "Feat.\s+" "feat. "

making sure you keep the two "" between whatever text you want.

Thanks! It works like a charm now. I had to add this line as I noticed the word 'feat.' was not matching the regex

regexpreplace "feat.\s+" "Ft "

Also, is it possible to run this script against a selection of various singles (like a batch) or can it only process one single at a time?

No. One track, one API page at a time.

This is what this does actually bar a few changes to the genre!

No such thing as format DDDDYYYY. You have the option of YYYY-MM-DD and DD-MM-YYYY.

See:

    regexpreplace "(\d\d\d\d)-(\d\d)-(\d\d)" "$1-$2-$3"                # YEAR IN YYYY-MM-DD FORMAT
       #regexpreplace "(\d\d\d\d)-(\d\d)-(\d\d)" "$3-$2-$1"            # YEAR IN DD-MM-YYYY FORMAT

You will see that the original artist is 'Eastmen' and the remixers are 'Cassy, Chris Carrier' They are put into the tag MIXARTIST and also at the TITLE.

But to change this:

# ARTIST
findline "<performer"
unspace
joinuntil "</track>"
regexpreplace ">\s+<" "><"
regexpreplace "<performer ref=\"([^\"]+)\"[^>]+><name>([^\"]+)</name></performer>" "<$1>$2"
outputto "Artist"
sayregexp "(?<=<Artist>)[^<]+" ", " "</track>"
gotochar 1

MIXARTIST

outputto "Mixartist"
sayregexp "(?<=<Remixer>)[^<]+" ", " "</track>"
say "|"
moveline 1
unspace
# ARTIST, # MIXARTIST
outputto "Artist"
say ", "
sayoutput "Mixartist"<!--colorc--></span><!--/colorc--><!--fontc--></span><!--/fontc-->

Add the highlighted bit below where it states.

Why do this if you "want the same output as faithfully as possible"? Surely you want to fill as many tags as possible when doing your parsing of beatport?

It is not directly related to mp3tag but it is related to Beatport and I thought you would be interested. There is now a way to search tracks on beatport.com by key (including the camelot system), BPM, BPM range, genre and so on. Take a look at Advanced Beatport Search

hi stevehero,

first of all, big thank you and shoutout to you, perfect plugin and THANK YOU FOR SHARING!

i have a small, but annoying problem.

new releases are found in the search panel, but if you mark one, and click continue, you will be forwarded to something that looks like a default box.

it's always the BEATPORT_TRACK_ID 8360

12 Inch Thumpers
Don't Cross the Line

is this an known problem?
are there any fixes along with this issue?

Thanks for Helping me out!

Cheers
Bueller

Sorry I don't fully get what your problem is? have you a direct url link to the track/album that is the problem and can you explain what you see (by means of a screen-shot if needed) and is it a problem when you are using the SINGLE TRACK or RELEASE type script?

I have this problem too, but it seems to be a problem in Beatport API, not Steveheros script (or api urls have been changed)

Look:

Direct link http://www.beatport.com/track/what-are-you...i-remix/3003427
Id = 3003427 is Wally Lopez - What Are You Doing [Stefano Noferini Remix]

API: http://api.beatport.com/catalog/tracks?id=3003427 (same ID here)
Result: 12 Inch Thumpers - Don't Cross The Line (Id = 8360)

EDIT:
Ok, i found it. In fact, Beatport API Url have been changed (updated?). Now URL begins with "Login", ie. http://api.beatport.com/catalog/3/tracks?id=3003427, but it returns data in JSON format only (see: http://api.beatport.com/tracks.html)