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

Way to go stevehero you really are a hero !
cant wait keep up the good work fella :music:

Take all the time you need. Congrats on finding a fix for us all. Just curious if it's based on OAuth or something else?

Big up Stevehero! Your script was great. I hope there will be a comeback.

Writting the different beatport URLs into the mp3 tags could be a way to please Beatport for their demanded link back to Beatport for purchasing content.
You could support that idea with additional tools for Mp3tag which would be tillted something like "purchase album on beatport" or "buy more tracks by the artist on beatport" and open the beatport pages in the browser.
Unfortunatelly tools can't be packed with your script like web script or action files.

pff.. hate that..

I have send a mail to Beatport stating as a WAV file buyer I' m not happy with that...

I can can understand why they did that, site's like mix.dj used to download their whole catalog...
Hope you get this done Steve..

Just read the memo for the API doc.
It sounds like a MP3tag script will never be allowed.
For the simple reason that a script will contain the API key in a readable way.

The functionality will need to be build in to MP3tag (or an additional exe/dll) so the key is not readable.

Thanks Pone.. Close enough to getting it done for the release pages. And as you suggested with the URLs. There's the URL of the release, Beatport_Track_URL, Beatport_Artist_URL, Beatport_Label_URL. I think that is enough. :wink: As far as the tools you mentioned. The tools.ini inside the data folder can be packed with the script and people can then amend theirs which the code from mine.

Would you mind if I send you the script once I finish so you can help me Beta test it? I'm a little hesitant as to who I give the script to and I know I can trust you...

The API is dead to mp3tag. I've found a way around it now so look forward to the new script.

PS. The complicated VA or Various Artist fix I done in v3.1 is now redundant. If the album is a compilation then that's what you get.. No more fix just simple parsing with an if 'VA' say '1' to the compliation and 'VA' to 'ALBUMARTIST' fields.

PPS. Sorry for the late reply.

Of course you can do so, alway willing to help.

Cool, Script on its way.. I'm just having trouble with seperating the BEATPORT_ARTIST_URL in multivalue fields. It's working to some extent.

My code in the script in the tracks loop looks like:

Lets say I use the script and get my info. The extended tag shows 'http://www.beatport.com/artist/armin-van-buuren/2228\\\\http://www.beatport.com/artist/fiora/179192' I save the file. Nothing no seperation of fields. I delete a field and hit OK in the extended tag field. Then when I open the ext tag window again it works for some strange reason.

I've tried outputting to a temp field and rewritting it back at the end of the script into the right one but to no avail. Maybe I could output a DUMMY field and package a remove DUMMY field with the script and that might work **SCRAP THAT: Tried that and didn't work. Maybe option b on your comment here is the only way around it?

Everyone. Please see output of script as it is now. Sadly ISRC is no longer able to be parsed as it's not available (Everything as v3.1 is there). I've yet to do the description from beatport but it's nearly there. Just testing testing testing left to do. :slight_smile:



Yes, "option b" in my linked description is the only way I know to do that for multiple files with different values.
What you describe first with opening the extended tag window has the same effect as "option a" in my linked description. That works only if all files have the same values in tag fields which should become multivalue fields. So if you open a single file, it works, if you open the extended tag window for different files with different values, it won't work.

Web Scripts don't go smooth with multi value tagfields in MP3tag. That's a pitty, maybe Florian will do a fix on this at some point.

Way to go Steve.
Hope you'll get it sorted out for all of us who happely always used your script for tagging tracks.
It sure helped me a lot not only as music lover but also as DJ to get the info on tracks I needed.
It sure is a pain in the ... neck to do this all manualy. :rolleyes:
Hope you'll make all of us and me happy soon so I can continue working off the tracks who are still waiting to be tagged.

Regard,
Jeff Hax
https://www.facebook.com/JeffHaxDJ

Thanks Jeff, that's why I learnt scripting :wink:

I'm just about to start on the single track scripts. I've tested the release script with 150+ tracks and all seems fine.

Cool :music:
Do you think we could try out the release script already?
It might me save a lot of work and in case we find some errors we could give you feedback on it.

Just want to release it as a pack. Use a smart playlist in iTunes with date added from when it last worked. (If you use it of course).

Just finished creating my own beatport script. It's been a GREAT learning experience. I'm so happy. I just did it !!! :w00t:

I new nothing about the framework and started as soon as the API went down. I'm not planning on releasing it as stevehero is about to release his. There where a LOT of (regex) pitfalls down the road and I really learned by trial and error.

My script has a nice little feature that was not included in the original version and it prevents some custom actions afterwards. The TrackCounter code was completely rewritten and I made it much more efficient. Maybe I can share it later with stevehero if he's interested. For the fun of it I will look at creating a new version of the Juno script. A big thanks goes out to stevehero and pone for creating their scripts and documenting their findings on this forum.


Well done :slight_smile: It gets additive once you get the hang of it.

I'd be interested to see how you got it simplier than: :wink:

AT END OF SCRIPT

Yes its very addictive and fun! You have to be creative with the tools that are available. Regex is a VERY powerful tool. If you get to understand it its awesome. Still learning :slight_smile:

I just noticed i used a modified version of your (old) script (v2.1), sorry my bad. That version had a very long procedure for the trackcounter. I see you have a different approach now. Yours is about the same as mine.

# TRACK COUNTER
	gotoline 1
	findline "data-json" 1 1
	joinuntil "pageBottom clear"
	outputto "_tracknumber"
	regexpreplace "(?<=release_track_)(\d)(?=\")" "0$1"
	regexpreplace ".*?(?=release_track_01)" ""
	do
		findinline "release_track_" 1 1
		sayuntil "\""	
		say "/"
		sayoutput "totaltracks"
		say "|"
		findinline "tracks-grid-" 1 1
	while "release_track_" 200 1

I did a almost complete rewrite of the code. Just to see if i can pull it off myself. I also added code to my script to detect if an album release is single artist, multi-artist or various artist. It scans all track artists and filters out duplicate artists to generate a new list of unique artists. With the unique list of artists there's some logic to determine to which fields to output.

Criteria:

4 or more unique track artists detected:
  • If 4 or more unique artist are detected in any combination then output to ALBUMARTIST: "Various Artists". (I prefer 4 or more)
3 unique track artists detected:
  • If 3 artists worked on all tracks it outputs it to the ARTIST field in the form: artist1, artist2 & artist 3. Don't use ALBUMARTIST field.
  • If 3 artists worked on part of the tracks (in any combination), it leaves the ARTIST field alone, but outputs the 3 artists to the ALBUMARTIST field in format: artist1, artist2 & artist 3.

2 unique track artists detected:

  • If 2 artists worked on all of the tracks it outputs to ARTIST in format: artist1 & artist2
  • If 2 artists worked on individual or some shared tracks (any combination), it leaves the ARTIST field alone, but outputs the 2 artists to the ALBUMARTIST field in format: artist1 & artist2.
1 unique track artist detected:
  • Just use ARTIST field, do not use ALBUMARTIST field.

I had the trackcounter in a separate do .. while loop at the end of the script. I moved it to the tracks do.. while routine and need less code now. This is much better/cleaner, thanks for the tip!

	# TRACK COUNTER
		outputto "_tracknumber"
		regexpreplace "(?<=txt-grey\"> )(\d)(?!\d)" "0$1"
		sayregexp "(?<=txt-grey\"> )(\d*)"
		say "/"
		sayoutput "totaltracks"
		say "|"

Yeah it's been like that since v3.0 and the new script is no different. I can't see any simplier way to do it. Not until mp3tag can write directly to the TRACK tag.

The way my new one works is quite simple. If the album is a compilation of artists like:
http://www.beatport.com/release/soundtrack...r-summer/952296 where the artists had no collaboration whatsoever then it's VA (my script outputs COMPILATION to: 1 if so)

but then for:
http://www.beatport.com/release/we-are-friends-vol-2/1186469 where the artists are part of the same record label and have basically gotten together to put these songs on the album then I believe it's better to have all the contributing artists in the ALBUMARTIST field. All will become clear when I post my new sripts, which...

I've started and completed the single track scripts today. :slight_smile: Testing (I hope) tomorrow and will post them no later than in a couple of days.

Cool.... can't wait till it's there.
Work starts to pile up now :rolleyes:

Ladies and gentlemen your working script awaits at starting post here.

One more thing to note that you need to run the action attached with the scripts to separate the BEATPORT_ARTIST_URL fields. Apart from that give the attached readme file a whirl. :book: :book: :book:

Yours in music ~ stevehero