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


#1





New version with www.beatport.com URLs

v4.3 updated on 15.02.2018


Download steveheros Mp3tag WWS Language for Notpad++.zip (32.0 KB)
Beatport by &stevehero v4.3#&Classic URLs to new URL.mta (94 Bytes)
Beatport by &stevehero v4.3#&Seperate Fields Remove Time Check URLs.mta (124 Bytes)
Download beatport by stevehero v4.3 SCRIPTS.zip (92.8 KB)




INFO PANELS + TAG EXAMPLES:


HOW TO INSTALL THE SCRIPTS:


PLEASE READ CAREFULLY

1. Download the beatport by stevehero vx.x SCRIPTS.zip file at the top of this post & unzip it to the %appdata%\mp3tag\data\sources directory. See this post for more info.

2. (Optional) Save your old scripts for future reference in case you want to see a setting you had and want to implement it again in the new scripts.

3. Click ▼ to have the choice of parsing beatport.com:

Scripts available

  • ArtwOrk - by (Album)Artist + Release
  • ArtworK - by Release www(URL)
  • RELEASE Direct by BEATPORT RELEASE ID
  • RELEASE Direct by Www(URL)
  • RELEASE Direct by www(URL) - Genre Only
  • RELEASE Direct by www(URL) - Without Comment, Genre, Initial key Tags
  • RELEASE Search by Artist
  • RELEASE Search by Filename
  • RELEASE Search by (Album)Artist + Release
  • RELEASE Search by (Album)Artist + Title
  • RELEASE Search by ReleaSe
  • RELEASE Search by TitlE
  • SINGLE TRACK Direct by BEATPORT TRACK URL
  • SINGLE TRACK Direct by BEATPORT TRACK ID
  • SINGLE TRACK Direct by BEATPORT TRACK URL - Without Comment, Genre, Initial key Tags
  • SINGLE TRACK Search by (AlbuM)Artist + Title
  • SINGLE TRACK Search by FiLename
  • SINGLE TRACK Search by Title_

4. Click or Ctrl + I on your keyboard to use the same script as before.

ACTIONS:


PLEASE READ CAREFULLY

1. Download the Beatport by &stevehero vX.X#&Classic URLs to new URL file and install it in the %appdata%\mp3tag\data\sources directory.

  • This will change all TAGS to the new URL for beatport.

2. Download the Beatport by &stevehero vX.X#&Seperate Fields+Remove Time Check+URLs file and install it in the %appdata%\mp3tag\data\sources directory.

  • This will seperate the fields where applicable and remove the Time Check field,

USAGE & KEYBOARD SHORTCUTS:


Select your files, then hit ALT+S+, then the letter in BOLD below to use the script you want.

ARTWORK (CLICK EXAMPLE HERE) (500x500px only)

These are for ARTWORK only.

  • ArtwOrk - by (Album)Artist + Release.src
  • ArtworK - by Release www(URL).src

RELEASES: (CLICK EXAMPLE PAGE HERE)

These are for FULL RELEASES only. Albums, EP’s etc.

  • RELEASE Direct by BEATPORT RELEASE ID.src
  • RELEASE Direct by Www(URL).src
  • RELEASE Direct by www(URL) - Genre Only.src
  • RELEASE Direct by www(URL) - Without Comment, Genre, Initial key Tags.src
  • RELEASE Search by Artist.src
  • RELEASE Search by Filename.src
  • RELEASE Search by (Album)Artist + Release.src
  • RELEASE Search by (Album)Artist + Title.src
  • RELEASE Search by ReleaSe.src
  • RELEASE Search by TitlE.src

SINGLE TRACKS: (CLICK EXAMPLE PAGE HERE)

These are for SINGLE TRACKS only. Using these scripts to search a release will not work. To be used where you only download a song or a few songs from a particular release.

  • SINGLE TRACK Direct by BEATPORT TRACK URL.src
  • SINGLE TRACK Direct by BEATPORT TRACK ID.src
  • SINGLE TRACK Direct by BEATPORT TRACK URL - Without Comment, Genre, Initial key Tags.src
  • SINGLE TRACK Search by (AlbuM)Artist + Title.src
  • SINGLE TRACK Search by FiLename.src
  • SINGLE TRACK Search by Title.src

VERSION HISTORY:


	#    _                   _                        _
	#   | |                 | |                      | |
	#   | |__    ___   __ _ | |_  _ __    ___   _ __ | |_     ___  ___   _ __ ___
	#   | '_ \  / _ \ / _` || __|| '_ \  / _ \ | '__|| __|   / __|/ _ \ | '_ ` _ \
	#   | |_) ||  __/| (_| || |_ | |_) || (_) || |   | |_  _| (__| (_) || | | | | |
	#   |_.__/  \___| \__,_| \__|| .__/  \___/ |_|    \__|(_)\___|\___/ |_| |_| |_| _
	#                    (_)     | | |   | |                 | |                   | |
	#    ___   ___  _ __  _  _ __|_| |_  | |__   _   _   ___ | |_  ___ __   __ ___ | |__    ___  _ __  ___ TM
	#   / __| / __|| '__|| || '_ \ | __| | '_ \ | | | | / __|| __|/ _ \\ \ / // _ \| '_ \  / _ \| '__|/ _ \
	#   \__ \| (__ | |   | || |_) || |_  | |_) || |_| | \__ \| |_|  __/ \ V /|  __/| | | ||  __/| |  | (_) |
	#   |___/ \___||_|   |_|| .__/  \__| |_.__/  \__, | |___/ \__|\___|  \_/  \___||_| |_| \___||_|   \___/
	#                       | |                   __/ |
	#                       |_|                  |___/
	#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
	#                           .:: [v4.3 by stevehero™] [14.02.18] ::.                          #
	#                    .:: Please read the 'Version History + Readme' file ::.                 #
	#              .:: DO NOT COPY/MODIFY OR REDISTRIBUTE THIS WITHOUT PERMISSION ::.            #
	#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::#
	#
	# ---------------------------------------------------------------
	# HOW TO INSTALL
	place scripts in "%appdata%\mp3tag\data\sources" directory.
	# ---------------------------------------------------------------
	# UPDATE HISTORY
	# ---------------------------------------------------------------
	# v4.3		(Hack for https://www.beatport.com & bug fixes)
	CHANGE:		Now works with https://www.beatport.com (No more classic URLs).
	There's no differences to the output.
	Preview page will still open at the "http://classic.beatport.com" address and all URLs are changed to the new scheme.
	FIX:		Title (artist Remix feat. Remixer Remix) => Title feat. artist (Remixer) (http://btprt.dj/2cNnkvu)
	FIX:		Problem with parsing URL
	FIX:		Title (Rework) Remix & Title (Remix) Remix (http://classic.beatport.com/release/6-years-of-remixes-2009-2015/1629744)
	FIX:		Carriage return/Linefeed fix. Description was displayed wrong on output.
	REMOVED:	The 2 URL(WWW) SINGLE TRACK Scripts
	ADDED:		Custom Script: "Beatport by &stevehero v4.3#SINGLE TRACK Direct by BEATPORT_TRACK_URL  - Without Comment, Genre, Initial key Tags.scr"
	ADDED:		Genre only Script: "Beatport by &stevehero v4.3#RELEASE Direct by www(URL) - &Genre.scr"
	ADDED:		Artwork only Script: "Beatport by &stevehero v4.3#Artwor&K - by Release www(URL).scr"
	ADDED:		Artwork only Script: "Beatport by &stevehero v4.3#Artw&Ork - by (Album)Artist + Release.scr"
	# ---------------------------------------------------------------
	# v4.2
	FIX:		Problem with parsing the index URL (Thanks Florian: https://forums.mp3tag.de/index.php?s=&showtopic=14479&view=findpost&p=88315)
	FIX:		Problem ' Remix (Original Mix)'. http://btprt.dj/1HgeAs6
	FIX:		Problem on INITIALKEY on ( http://classic.beatport.com/release/treasured-soul-the-remixes/1520130 ) where name contained Amin.
	FIX:		WWW(URL) Scripts fix
	FIX:		When | (verticalbar) appeared in BPs listings
	FIX:		Minor fixes in formattings. EP,feat
	# ---------------------------------------------------------------
	# v4.1
	FIX:		BP Classic update: Various scripts that use the URL parsing method
	FIX:		BP Classic update: Camelot Key conversion wasn't working with the new beatport classic URL
	ADDED:		2 scripts with both Genre + Comment Tag not parsed from beatport, handy when retagging mp3's
	FIX:		Various other bugs: & to & | (( & )) to ( & )
	FIX:		Bug when COMPILATION was set
	FIX:		ALBUMARTIST field when they contain '-' (http://www.beatport.com/release/defjam/359225)
	FIX:		Small bug in index search UI when Remixer appeared 'Cedric Gervais ● x' is now just 'Cedric Gervais'
	FIX:		Small bug in index single track search when a "quote" appeared in the release
	FIX:		"(Original)" to "(OM)" bug fix when it appeared in a release
	# ---------------------------------------------------------------
	# v4.0
	CHANGE:		Completely rewritten code for beatports HTML pages.
	CHANGE:		Removed options for VA as beatports HTML pages now show whether this is so.
	CHANGE:		WWW is now the release page URL even when using the SINGLE TRACK scripts.
	ADDED:		Tags: BEATPORT_ARTIST_URL|BEATPORT_ITEM_TYPE
	ADDED:		Multi-fields for BEATPORT_ARTIST_URL (see action in post to separate fields)
	ADDED:		Script: SINGLE TRACK Direct by BEATPORT_TRACK_URL
	REMOVED:	Tags: COUNTRY | ISCR (Not in beatports HTML pages)
	FIX:		Missing BPM '0' to '[x]'. (see www.beatport.com/release/self/12239).
	FIX:		WWW on release (www.beatport.com/release/cult/1120189)
	# ---------------------------------------------------------------
	# v3.1
	FIX:		Ill-formatted ARTIST and MIXARTIST fixed on SINGLE TRACK scripts.
	# ---------------------------------------------------------------
	# V3.0
	CHANGE:		Completely rewritten code for beatports JSON API pages.
	ADDED:		COUNTRY, BEATPORT_LABEL_URL, BEATPORT_TRACK_ID, BEATPORT_TRACK_URL, ISRC (International Standard Recording Code) & RELEASETIME fields.
	ADDED:		All options you need are at the top of the script and not berried amongst it (please read the help notes inside the scripts).
	FIX:		Fixes cases where one or more tracks have missing keys on a release (see example http://www.beatport.com/release/slide/183282).
	---------------------------------------------------------------
	# V2.1
	FIX:		Releases with missing keys (see example www.beatport.com/release/you-know-what-its-like/892120).
	# ---------------------------------------------------------------
	# v2.1
	FIX:		Releases with missing genres (see example www.beatport.com/release/get-up!/855572).
	FIX:		Search by regexp (unwanted spaces and others).
	CHANGE:		COMMENT FIELD is no longer user defined. It outputs the INITIAL KEY output to it. e.g. '2A'.
	CHANGE:		Optimised cover parsing (makes sure to get either 500 x 500 or 60 x 60 px version of the release).
	ADDED:		SINGLE TRACK parsing (see example www.beatport.com/track/lick-it-extended/3426606).
	ADDED:		Description of releases at the list of search results... window.
	ADDED:		Shows if release has cover 500 x 500 or 60 x 60 at the list of search results... window.
	ADDED:		.:: R E M O V E    F I E L D S :. section at end of script to deactivate fields.
	# ---------------------------------------------------------------
	# V1.3
	FIX:		Missing BPM '0' to ''. (see www.beatport.com/release/self/12239).
	FIX:		Unwanted spaces in CATALOG # field.
	ADDED:		Camelot notation change to INITIAL KEY field. e.g. 'G♯ Minor' becomes '1A'.
	ADDED:		Ways to format the YEAR + DATE fields in the script. Delete the '#' where you want it formatted and place a '#' in the other regexpreplace.
	# ---------------------------------------------------------------
	# V1.2
	ADDED:		Search by Artist script.
	ADDED:		BPM field.
	ADDED:		INITIAL KEY field.
	ADDED:		TOTALDISKS field = 01.
	# ---------------------------------------------------------------
	# V1.1
	ADDED:		Search by title script.
	ADDED:		Leading zeros to TRACK and TOTALTRACKS.
	ADDED:		Output of TRACK/TOTALTRACKS.
	# ---------------------------------------------------------------

WHAT IS OUTPUTTED WITH THE SCRIPT:


PLEASE READ CAREFULLY

_TIME CHECK OUTPUTS length to this field as _LENGTH does not show when only one track in tag adjust window (See action in post)

ALBUM OUTPUTS release name.

ALBUMARTIST OUTPUTS VA if beatport says so, which is 60% of the Time, is right every time. (iTunes uses)

ALBUM ARTIST OUTPUTS ALBUMARTIST like above. (Extra field, album artist used in vlc, foobar 2000 and others please check your music player first).

ALBUM [CATALOG #] APPENDS album/release with catalog no. to ALBUM NAME HERE [CATALOG #].

ARTIST OUTPUTS artist or artists to each track.

BEATPORT_ARTIST_URL OUTPUTS beatports URL of artist/s (This is a multi-field).

BEATPORT_ITEM_TYPE OUTPUTS beatports type (Track mostly).

BEATPORT_LABEL_URL OUTPUTS beatports URL of label.

BEATPORT_RELEASE_ID OUTPUTS ID of release you see at the end of the beatports url e.g. “438196”.

BEATPORT_TRACK_ID OUTPUTS beatports track ID to each track.

BEATPORT_TRACK_URL OUTPUTS beatports track URL to each track.

BPM OUTPUTS bpm to each track. (Some may not be present on beatport).

CATALOG # OUTPUTS release catalog number.

COMMENT OUTPUTS INITIALKEY field to it.

COMPILATION OUTPUTS 1 if ALBUMARTIST is VA.

COVERURL OUTPUTS release cover art @ 500x500px (if 500px cannot be found, it gets 60px version).

DATE OUTPUTS year to DATE in MMDD format.

DISCNUMBER USER DEFINED FIELD.

GENRE OUTPUTS genre and changes Deep House to House Deep. (See options throughout scripts).

INITIALKEY OUTPUTS the musical key of each track. By default it’s set to use CAMELOT NOTATION which changes the values of INITIALKEY to camelot notation. e.g. D#min becomes 1A (If you want the musical key instead open scripts read through where it has that section “It’s easy to see” and delete between the headings).

MEDIATYPE USER DEFINED FIELD.

MEDIATYPE_ORIGINAL USER DEFINED FIELD.

MIXARTIST OUTPUTS mixartist/s.

PUBLISHER OUTPUTS record label.

RELEASETIME OUTPUTS year to RELEASETIME in same format as whatever year is.

TRACK OUTPUTS track name/s.

TOTALDISKS USER DEFINED FIELD.

TOTALTRACKS OUTPUTS total amount of tracks on release.

TRACK / TOTALTRACKS OUTPUTS TRACK/TOTALTRACKS to TRACK.

UNSYNCEDLYRICS OUTPUTS release info you may see under artwork.

WWW OUTPUTS url of release e.g. “https://www.beatport.com/release/the-triad-remixes/2044206”.

YEAR OUTPUTS year in YYYY-MM-DD format.

DISABLING OUTPUTS:


  • Open scripts and see the .:: R E M O V E F I E L D S ::. section at bottom of each.

NOTES:


  • Add these to your remove fields except action if you have one, to retain custom fields generated by this script: BEATPORT_LABEL_URL;BEATPORT_TRACK_ID;BEATPORT_TRACK_URL;BEATPORT_RELEASE_ID;BEAT PORT_ARTIST_URL;BEATPORT_ITEM_TYPE

  • Removed options for VA as beatports HTML pages now show whether this is so.

  • _LENGTH is now outputted to _LENGTH CHECK as _LENGTH does not appear when one track is being parsed (See action attached below to remove this field).

  • I’ve tried to have all the options at the top of the script to enable you to modify them easier as the code is not spread out throughout the script but they are clearly labelled with OPTION. Please download notepad++ here and use this stylesheet steveheros Mp3tag Web Sources Language for Notpad++.zip I’ve created to enable much easier viewing than in normal notepad.

  • The only other sections you should be concerned with are both the .:: C U S T O M I Z A T I O N S T A R T S ::. + .:: R E M O V E F I E L D S ::. sections.

      # .:: C U S T O M I Z A T I O N   S T A R T S ::.
      # • 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
    
      # .:: 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
    

DONATATIONS AND SPECIAL MENTIONS






ANY AMOUNT WILL BE APPRECIATED Also, please feel free to comment in the thread and I’ll be happy to help.

Think of donating as a thank you instead of buying me a Guinness in some bar.

A BIG THANK YOU.

To @pone for his invaluable help and guidance throughout version 1 and also for the TRACK/TOTALTRACKS fix and not to forget @jaimz for the original code which got me scripting and developing the code it to where it is now.

@stevehero :heart:

GAME OVER… :black_heart:


WIKI pages (Modify the title of the starting post is not sticking)
[REQUEST] Web Source Script for Monstercat
Script for ripping genre, year & record label from beatport.com
title in search with Beatport script
New html Beatport script
Batch heterogenous genres?
removing certain text from title and name
Publisher field not showing in main window but showing in side window
have a question about Taging some music
Beatport etc
Difference between copy/past and add coverart as jpg?
#2

Nice to see the final version.
Good work!


#3

Thanks pone. Means a lot to hear you say that. :]


#4

Thanks a lot. Very useful and seems to work flawlessly!


#5

hey,

i just registered to say thanks. great work! it blows my mind what can be done with the web sources scripts API.


#6

Any chance of this little beauty pulling the Key information of tracks? Is it offered in the api?


#7
EDIT
The script now offers BPM and INITIAL KEY parsing. See starting post.

#8

For some reason, when I try to tag by URL, it says the following:

“Error connecting to server: http://api.beatport.com”

This is the URL of one of the songs I am trying to tag.

http://www.beatport.com/track/so-much-love…lub-mix/2439233


#9

Your error relates to using the wrong URL to parse beatport.com. Instead of using the track url use the release one such as http://www.beatport.com/release/so-much-love/438196 whereas track is like the url you posted relates to the individual track itself.

The script is not intended for individual tracks. The way I use it if there I have only one track from a release But in is to parse the album it relates too.

But in your case the track you are parsing is the only one on your realease.


#10
UPDATE VERSION 1.1 OF 'BEATPORT.COM SCRIPTS BY STEVEHERO'
  1. added a search by title script.
  2. added leading zeros to track and totaltracks.
  3. added output of TRACK / TOTALTRACKS

See this post for update.


#11

Had the same problem and could fix it by applying the following changes to the source-files:

Change the line with

[AlbumUrl]=http://api.beatport.com/catalog/releases/detail?v=1.0&format=xml&id=

to

[AlbumUrl]=http://api.beatport.com

and then change

regexpreplace ">\s+<" "><"
findinline "<release"<!--fontc--></span><!--/fontc-->

to

regexpreplace ">\s+<" "><"
say "/catalog/releases/detail?v=1.0&format=xml&id="
findinline "<release"<!--fontc--></span><!--/fontc-->

Hope this helps

adrian


#12

Firstly thanks stevehero, dano and pone for these fantastics scripts. I only discovered the web sources forum yesterday and I’ve been tagging using the scripts since.

Ok the problem I’m having is that I’m happy with the existing ARTIST fields of the releases I’m tagging using the Steve’s beatport script so I’ve been trying to customise it slightly so that this field is skipped when it comes to tagging. Not having much look I’m afraid.

Firstly I tried commenting out, using #, the lines below but the script no longer works properly when I do this (attachment 1)

# ARTIST findline "<performer" unspace joinuntil "" regexpreplace ">\s+<" "><" regexpreplace "]+>([^\"]+)" "<$1>$2" outputto "Artist" sayregexp "(?<=)[^<]+" "\\\\" "" say "|" gotochar 1

I’ve also tried commenting out only the line that says…

outputto "Artist"

… but that doesn’t work correctly either (attachment 2). The GENRE field gets muddled up for want of a better word!

It’s as if the script requries the artist field to be written. Can anyone help me with this?

Cheers,
Pau.




#13

comment-out only the say… parts at the artist section:
#sayregexp “(?<=)[^<]+” “\\” “”
#say "|"
that should work.

or simply set artist to zero at the end of the script. or almost at the end, but before the “track fix” section, if you get a strange output at track and title.
set “artist”


#14
QUOTE (pone @ Dec 11 2011, 20:35) <{POST_SNAPBACK}>
comment-out only the say... parts at the artist section:
#sayregexp "(?<=<Artist>)[^<]+" "\\\\" "</track>"
#say "|"

that should work.

or simply set artist to zero at the end of the script. or almost at the end, but before the “track fix” section, if you get a strange output at track and title.
set “artist”

Thanks pone, that works great. I’ve also been playing around with the script and made some changes to prevent other fields being written and it’s working really well

set "albumartist"
set "album artist"

Maybe you can help me with the issue I’m having with the DATE field? It’s read in the script in the format MMDD whereas all my other previously tagged files are in DDMM format. Pone you helped me with this in this topic but I’m lost at how the regular expression you gave me would work otuside the main program and in a script.

Many thanks,
Paul


#15

put this line
regexpreplace “(\d\d\d\d)-(\d\d)-(\d\d)” "$1-$3-$2"
after
findline ""
at the DATE section.

or

change this
indinline "-"
sayuntil "-"
findinline "-"
sayuntil "</"
into this
findinline “-” 2
sayuntil "</"
findinline “-” -1
movechar -1
sayuntil "-"
at the DATE section

@ stevehero:
I hope you don’t mind me messing up your script :wink:


#16

To format the DATE in the format DDMM

Enter the following:
# DATE
outputto "date"
gotoline 1
findline ""
findinline ""
findinline "-"
findinline "-"
sayuntil "</"
gotochar 1
findline ""
findinline ""
findinline "-"
sayuntil "-"
Replacing:
# DATE
outputto "date"
gotoline 1
findline ""
findinline ""
findinline "-"
sayuntil "-"
findinline "-"
sayuntil “</”

EDIT
@pone, not one little bit :] Just seen you posted. Its a cleaner method but both things do the same @The Sheriff.


#17
QUOTE (pone @ Dec 11 2011, 23:26) <{POST_SNAPBACK}>
put this line
regexpreplace "(\d\d\d\d)-(\d\d)-(\d\d)" "$1-$3-$2"

after
findline ""
at the DATE section.

or

change this
indinline "-"
sayuntil "-"
findinline "-"
sayuntil "</"
into this
findinline “-” 2
sayuntil "</"
findinline “-” -1
movechar -1
sayuntil "-"
at the DATE section

@ stevehero:
I hope you don’t mind me messing up your script :wink:

pone, you are a genius. Thanks again.


#18

Beatport are now displaying the bpm and song Key info in the API…

Could you please add these tags into the next update of the script?

I’ve modified my .src files and I now get the bpm.
but I’m struggling with the song key info. (I’m new to this)

thanks


#19

I’ve taken a quick look on my phone there and its seems they do have it in the API :slight_smile:. This will be included in the next update of the script very soon as its the most requested feature from you guys.

Thanks for pointing that out garves.


#20

I’ve been very busy (my apologies) so those looking for a quick fix to the BPM and INITIALKEY info. Heres goes.

The INITIALKEY tag is formatted as follows:
C Minor
C♯ Major
A♭ Minor

I have tested the special character ‘♭’ in traktor and it shows up. Any problems for now just find where it says ‘replace “1” “♭”’ in the code below and change the ‘♭’ to a ‘b’.

BTW Any suggestions as to how you would like this formatted please let me know. OR maybe its fine the way it is :]

Just so I can update the next version to how you guys like it

Please place whats in italics between whats in bold in the script, like so:
# _LENGTH
outputto "_length"
findline ""
findinline ">"
sayuntil "</"
say “|”

# BPM
outputto "BPM"
findline ""
findinline ">"
sayuntil "</"
say “|”

KEY

outputto "InitialKey"
findline "<trackKey>"
# LETTER	
moveline 2
findinline ">"
sayuntil "</"
# SHARP
moveline 1
replace "1" "♯"
findinline ">"
sayuntil "</"
# FLAT
moveline 1
replace "1" "♭"
findinline ">"
sayuntil "</"
# CHORD
moveline 1
replace "minor" "Minor"
replace "major" "Major"
findinline ">"
Say " "
sayuntil "</"
say "|"</i>

# GENRE
outputto "Genre"
findline “<genre”