aboutsummaryrefslogtreecommitdiff
path: root/system/scrapers/music
diff options
context:
space:
mode:
Diffstat (limited to 'system/scrapers/music')
-rw-r--r--system/scrapers/music/allmusic.gifbin0 -> 2623 bytes
-rw-r--r--system/scrapers/music/allmusic.xml84
-rw-r--r--system/scrapers/music/allmusic_merlin_lastfm.xml149
-rw-r--r--system/scrapers/music/common/allmusic.xml141
-rw-r--r--system/scrapers/music/common/htbackdrops.xml18
-rw-r--r--system/scrapers/music/common/lastfm.xml10
-rw-r--r--system/scrapers/music/discogs.gifbin0 -> 1423 bytes
-rw-r--r--system/scrapers/music/discogs.xml127
-rw-r--r--system/scrapers/music/freebase.pngbin0 -> 9930 bytes
-rw-r--r--system/scrapers/music/freebase.xml149
-rw-r--r--system/scrapers/music/israel-music.pngbin0 -> 2178 bytes
-rw-r--r--system/scrapers/music/israel-music.xml53
-rw-r--r--system/scrapers/music/lastfm.xml121
13 files changed, 852 insertions, 0 deletions
diff --git a/system/scrapers/music/allmusic.gif b/system/scrapers/music/allmusic.gif
new file mode 100644
index 0000000000..30c40ef318
--- /dev/null
+++ b/system/scrapers/music/allmusic.gif
Binary files differ
diff --git a/system/scrapers/music/allmusic.xml b/system/scrapers/music/allmusic.xml
new file mode 100644
index 0000000000..9a3a9019f6
--- /dev/null
+++ b/system/scrapers/music/allmusic.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scraper framework="1.1" date="2009-09-20" name="Allmusic" content="albums" thumb="allmusic.gif" language="en">
+ <include>common/htbackdrops.xml</include>
+ <include>common/allmusic.xml</include>
+ <GetSettings dest="3">
+ <RegExp input="$$5" output="&lt;settings&gt;\1&lt;/settings&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;setting label=&quot;Enable Fanart&quot; type=&quot;bool&quot; id=&quot;htbfanart&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;setting label=&quot;Grab thumbs from HTBackdrops&quot; type=&quot;bool&quot; id=&quot;htbthumbs&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetSettings>
+ <NfoUrl dest="3">
+ <RegExp input="$$1" output="\1" dest="3">
+ <expression>(http://www.allmusic.com/cg/.*)</expression>
+ </RegExp>
+ </NfoUrl>
+ <CreateAlbumSearchUrl dest="3">
+ <RegExp input="$$1" output="&lt;url post=&quot;yes&quot;&gt;http://www.allmusic.com/cg/amg.dll?P=amg&amp;amp;SQL=\1&amp;amp;OPT1=2&lt;/url&gt;" dest="3">
+ <expression></expression>
+ </RegExp>
+ </CreateAlbumSearchUrl>
+ <GetAlbumSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\1&lt;/title&gt;&lt;/entity&gt;" dest="5">
+ <expression repeat="yes" noclean="1">&lt;TITLE&gt;allmusic[ (]+ ([^&gt;]*) &gt; Overview</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;year&gt;\1&lt;/year&gt;&lt;artist&gt;\2&lt;/artist&gt;&lt;title&gt;\4&lt;/title&gt;&lt;url cache=&quot;am-\2-\4-album.html&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;SQL=\3&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes" noclean="1,2,3">&gt;([0-9]+)&lt;/.*?&gt;([a-zA-Z0-9].*?)&lt;.*?sql=([0-9:a-z]*)&quot;&gt;(.*?)&lt;.</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumSearchResults>
+ <GetAlbumDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;url cache=&quot;am-$$2-album.html&quot; function=&quot;ParseAMGAlbum&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=\1&lt;/url&gt;" dest="5+">
+ <expression noclean="1">sql=([^&quot;]*)&quot;&gt;Overview</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url cache=&quot;am-$$2-album.html&quot; function=&quot;GetAMGReview&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=\1&lt;/url&gt;" dest="5+">
+ <expression noclean="1">sql=([^&quot;]*)&quot;&gt;Review</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumDetails>
+ <CreateArtistSearchUrl dest="3">
+ <RegExp input="$$1" output="&lt;url post=&quot;yes&quot;&gt;http://www.allmusic.com/cg/amg.dll?P=amg&amp;amp;SQL=\1&amp;amp;OPT1=1&lt;/url&gt;" dest="3">
+ <expression></expression>
+ </RegExp>
+ </CreateArtistSearchUrl>
+ <GetArtistSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\1&lt;/title&gt;&lt;/entity&gt;" dest="5">
+ <expression repeat="yes" noclean="1">&lt;TITLE&gt;allmusic[ (]+ ([^&gt;]*) &gt; Overview</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\2&lt;/title&gt;&lt;genre&gt;\3&lt;/genre&gt;&lt;year&gt;\5&lt;/year&gt;&lt;url cache=&quot;am-\2-artist.html&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;SQL=\1&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes" noclean="1,2">style=&quot;[^=]*&lt;a href=&quot;[^&quot;]*sql=([^&quot;]*)&quot;&gt;([^&lt;]*)&lt;/a&gt;[^-]*[^&gt;]*&gt;([^&lt;]*)&lt;/TD&gt;[^&gt;]*&gt;(&amp;nbsp;)?([^&lt;]*)&lt;/td&gt;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetArtistSearchResults>
+ <GetArtistDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;url cache=&quot;am-$$2-artist.html&quot; function=&quot;ParseAMGArtist&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=\1&lt;/url&gt;" dest="5">
+ <expression noclean="1">sql=([^&quot;]*)&quot;&gt;Biography</expression>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbthumbs" output="&lt;url function=&quot;GetHTBThumbs&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=5&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbfanart" output="&lt;url function=&quot;GetHTBFanart&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=1&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url cache=&quot;am-$$2-artist.html&quot; function=&quot;GetAMGBiography&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=\1&lt;/url&gt;" dest="5+">
+ <expression noclean="1">sql=([^&quot;]*)&quot;&gt;Biography</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url cache=&quot;am-$$2-discog.html&quot; function=&quot;GetAMGDiscography&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=\1&lt;/url&gt;" dest="5+">
+ <expression noclean="1">sql=([^&quot;]*)&quot;&gt;Discography</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetArtistDetails>
+</scraper>
diff --git a/system/scrapers/music/allmusic_merlin_lastfm.xml b/system/scrapers/music/allmusic_merlin_lastfm.xml
new file mode 100644
index 0000000000..a7b30d7b85
--- /dev/null
+++ b/system/scrapers/music/allmusic_merlin_lastfm.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scraper framework="1.1" date="2009-09-16" name="allmusic &amp; merlin.pl &amp; lastfm.pl" content="albums" thumb="allmusic.gif">
+ <include>common/htbackdrops.xml</include>
+ <include>common/allmusic.xml</include>
+ <GetSettings dest="3">
+ <RegExp input="$$5" output="&lt;settings&gt;\1&lt;/settings&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;setting label=&quot;Enable Fanart&quot; type=&quot;bool&quot; id=&quot;htbfanart&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;setting label=&quot;Grab thumbs from HTBackdrops&quot; type=&quot;bool&quot; id=&quot;htbthumbs&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetSettings>
+ <NfoUrl dest="3">
+ <RegExp input="$$1" output="\1" dest="3">
+ <expression>(http://www.allmusic.com/cg/.*)</expression>
+ </RegExp>
+ </NfoUrl>
+ <CreateAlbumSearchUrl dest="3">
+ <RegExp input="$$1" output="&lt;url post=&quot;yes&quot;&gt;http://www.allmusic.com/cg/amg.dll?P=amg&amp;amp;SQL=\1&amp;amp;OPT1=2&lt;/url&gt;" dest="3">
+ <expression></expression>
+ </RegExp>
+ </CreateAlbumSearchUrl>
+ <GetAlbumSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\1&lt;/title&gt;&lt;/entity&gt;" dest="5">
+ <expression repeat="yes" noclean="1">&lt;TITLE&gt;allmusic[ (]+ ([^&gt;]*) &gt; Overview</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;year&gt;\1&lt;/year&gt;&lt;artist&gt;\2&lt;/artist&gt;&lt;title&gt;\4&lt;/title&gt;&lt;url cache=&quot;allmusic-album.html&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;SQL=\3&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes" noclean="1,2,3">&gt;([0-9]+)&lt;/.*?&gt;([a-zA-Z0-9].*?)&lt;.*?sql=([0-9:a-z]*)&quot;&gt;(.*?)&lt;.</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumSearchResults>
+ <GetAlbumDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;url cache=&quot;allmusic-album.html&quot; function=&quot;ParseAMGAlbum&quot;&gt;placeholder&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="8">
+ <expression noclean="1">&lt;TITLE&gt;allmusic[ (]+ ([^&gt;]*) &gt; Overview</expression>
+ </RegExp>
+ <RegExp input="$$9" output="\1" dest="6">
+ <RegExp input="$$8" output="+\1" dest="9">
+ <expression repeat="yes">([^ ]+)</expression>
+ </RegExp>
+ <expression>\+(.*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="8">
+ <expression noclean="1">&lt;span&gt;Artist&lt;/span&gt;[^;]*[^&gt;]*&gt;[^&gt;]*&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$9" output="\1" dest="7">
+ <RegExp input="$$8" output="+\1" dest="9">
+ <expression repeat="yes">([^ ]+)</expression>
+ </RegExp>
+ <expression>\+(.*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;MerlinLink&quot;&gt;http://merlin.pl/xbmc/browse/search/4,,1.html?phrase=&amp;amp;place=4+simple&amp;amp;carrier=3&amp;amp;offer=O&amp;amp;category=&amp;amp;title=$$6&amp;amp;person=$$7&amp;amp;firm=&amp;amp;date=&amp;amp;isbn=&amp;amp;sort=rank&amp;amp;x=40&amp;amp;y=12&lt;/url&gt;" dest="5+">
+ <expression noclean="1"></expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumDetails>
+ <MerlinLink dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;url function=&quot;GetReview&quot;&gt;http://merlin.pl\1&lt;/url&gt;" dest="2">
+ <expression>Liczba towar[^f]+f=&quot;([^&quot;]+)</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </MerlinLink>
+ <GetReview dest="5">
+ <RegExp input="$$2" output="&lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-2&quot; standalone=&quot;yes&quot;?&gt;&lt;details&gt;&lt;review&gt;\1&lt;/review&gt;&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="\1" dest="2">
+ <expression>class=&quot;productDesc&quot;&gt;(.*?)&lt;/div&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="2+">
+ <expression>piorka_merlina.*?contents&quot;&gt;([^&lt;]*)&lt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="2+">
+ <expression>contents&quot;&gt;([^&lt;]*)&lt;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetReview>
+ <CreateArtistSearchUrl dest="3">
+ <RegExp input="$$1" output="&lt;url post=&quot;yes&quot;&gt;http://www.allmusic.com/cg/amg.dll?P=amg&amp;amp;SQL=\1&amp;amp;OPT1=1&lt;/url&gt;" dest="3">
+ <expression></expression>
+ </RegExp>
+ </CreateArtistSearchUrl>
+ <GetArtistSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\1&lt;/title&gt;&lt;/entity&gt;" dest="5">
+ <expression repeat="yes" noclean="1">&lt;TITLE&gt;allmusic[ (]+ ([^&gt;]*) &gt; Overview</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\2&lt;/title&gt;&lt;genre&gt;\3&lt;/genre&gt;&lt;year&gt;\5&lt;/year&gt;&lt;url cache=&quot;allmusic-artist.html&quot; &gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;SQL=\1&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes" noclean="1,2">style=&quot;[^=]*&lt;a href=&quot;[^&quot;]*sql=([^&quot;]*)&quot;&gt;([^&lt;]*)&lt;/a&gt;[^-]*[^&gt;]*&gt;([^&lt;]*)&lt;/TD&gt;[^&gt;]*&gt;(&amp;nbsp;)?([^&lt;]*)&lt;/td&gt;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetArtistSearchResults>
+ <GetArtistDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;url cache=&quot;allmusic-artist.html&quot; function=&quot;ParseAMGArtist&quot;&gt;placeholder&lt;/url&gt;" dest="5">
+ <expression />
+ </RegExp>
+ <RegExp input="$$2" conditional="htbthumbs" output="&lt;url function=&quot;GetHTBThumbs&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=5&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbfanart" output="&lt;url function=&quot;GetHTBFanart&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=1&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="8">
+ <expression noclean="1">&lt;TITLE&gt;allmusic[ (]+ ([^&gt;]*) &gt; Overview</expression>
+ </RegExp>
+ <RegExp input="$$9" output="\1" dest="6">
+ <RegExp input="$$8" output="+\1" dest="9">
+ <expression repeat="yes">([^ ]+)</expression>
+ </RegExp>
+ <expression>\+(.*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;LastfmLink&quot;&gt;http://ws.audioscrobbler.com/2.0/?method=artist.search&amp;amp;artist=$$6&amp;amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lt;/url&gt;" dest="5+">
+ <expression noclean="1"></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;GetAMGDiscography&quot;&gt;http://www.allmusic.com/cg/amg.dll?p=amg&amp;amp;sql=\1&lt;/url&gt;" dest="5+">
+ <expression noclean="1">sql=([^&quot;]*)&quot;&gt;Discography</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetArtistDetails>
+ <LastfmLink dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;url function=&quot;GetBiography&quot;&gt;http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&amp;amp;mbid=\2&amp;amp;lang=pl&amp;amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lt;/url&gt;" dest="2">
+ <expression noclean="1">&lt;artist&gt;.*?&lt;name&gt;([^&lt;]*)&lt;/name&gt;.*?&lt;mbid&gt;([^&lt;]*)&lt;/mbid&gt;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </LastfmLink>
+ <GetBiography dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;biography&gt;\1&lt;/biography&gt;" dest="2">
+ <expression clear="yes">&lt;content&gt;&lt;!\[CDATA\[(.*?)\]</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetBiography>
+</scraper>
diff --git a/system/scrapers/music/common/allmusic.xml b/system/scrapers/music/common/allmusic.xml
new file mode 100644
index 0000000000..89994e4253
--- /dev/null
+++ b/system/scrapers/music/common/allmusic.xml
@@ -0,0 +1,141 @@
+<scraperfunctions>
+ <GetAMGDiscography dest="5">
+ <RegExp input="$$2$$3" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;album&gt;&lt;year&gt;\1&lt;/year&gt;&lt;title&gt;\3&lt;/title&gt;&lt;label&gt;\4&lt;/label&gt;&lt;/album&gt;" dest="2">
+ <expression repeat="yes" clear="yes" noclean="1,3,4">sorted-cell&quot;&gt;([0-9]+)&lt;/td&gt;&lt;td[^&gt;]*&gt;(&lt;a href=[^&gt;]*&gt;&lt;img [^&gt;]*/&gt;&lt;/a&gt;|[^&lt;]*)?&lt;/td&gt;&lt;td[^&gt;]*&gt;&lt;a href=[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/td&gt;&lt;td[^&lt;]*&lt;/td&gt;&lt;td[^&gt;]*&gt;([^&lt;]+)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$2" output="\1&amp;amp;\2" dest="3">
+ <expression noclean="1,2" repeat="yes">(.*?)&amp;(.+)</expression>
+ </RegExp>
+ <RegExp input="$$3" output="" dest="2">
+ <expression>(.+)</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAMGDiscography>
+ <GetAMGBiography dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;biography&gt;\1&lt;/biography&gt;" dest="2">
+ <expression clear="yes">Biography&lt;/td&gt;.*?&lt;p&gt;(.*?)&lt;/p&gt;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAMGBiography>
+ <GetAMGReview dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;review&gt;\1&lt;/review&gt;" dest="2">
+ <expression>Review&lt;/td&gt;.*?&lt;p&gt;(.*?)&lt;/p&gt;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAMGReview>
+ <ParseAMGArtist dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;name&gt;\1&lt;/name&gt;" dest="5">
+ <expression noclean="1">&lt;TITLE&gt;allmusic[ (]+ ([^&gt;]*) &gt; Overview</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;born&gt;\1&lt;/born&gt;" dest="5+">
+ <expression>&lt;span&gt;Born.*?;&quot;&gt;(.*?)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;died&gt;\1&lt;/died&gt;" dest="5+">
+ <expression>&lt;span&gt;Died.*?;&quot;&gt;(.*?)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;formed&gt;\1&lt;/formed&gt;" dest="5+">
+ <expression>&lt;span&gt;Formed.*?;&quot;&gt;(.*?)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;disbanded&gt;\1&lt;/disbanded&gt;" dest="5+">
+ <expression>&lt;span&gt;Disbanded.*?;&quot;&gt;(.*?)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;yearsactive&gt;\1&lt;/yearsactive&gt;" dest="5+">
+ <expression>&lt;span&gt;Years Active.*?sub&quot;&gt;(.*?)&lt;/div&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression noclean="1">Genre Listing--&gt;([^!]*)&lt;!--Genre Listing</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="7">
+ <expression noclean="1">Style Listing--&gt;([^!]*)&lt;!--Style Listing</expression>
+ </RegExp>
+ <RegExp input="$$7" output="&lt;style&gt;\1&lt;/style&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="8">
+ <expression noclean="1">Moods Listing--&gt;([^!]*)&lt;!--Moods Listing</expression>
+ </RegExp>
+ <RegExp input="$$8" output="&lt;mood&gt;\1&lt;/mood&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="9">
+ <expression noclean="1">Instruments Listing--&gt;([^!]*)&lt;!--Instruments Listing</expression>
+ </RegExp>
+ <RegExp input="$$9" output="&lt;instruments&gt;\1&lt;/instruments&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;thumb&gt;\1&lt;/thumb&gt;" dest="5+">
+ <expression noclean="1">&lt;img src=&quot;([^&quot;]*)&quot; id=&quot;Picture&quot;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;thumb&gt;http://image.allmusic.com/00/amg/pic200/dr\1\200/\1\2\3\4/\1\2\3\4\5.jpg&lt;/thumb&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&quot;([A-Z^])([0-9^])([0-9^])([0-9^])([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </ParseAMGArtist>
+ <ParseAMGAlbum dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;title&gt;\1&lt;/title&gt;" dest="5">
+ <expression noclean="1">&lt;TITLE&gt;allmusic[ (]+ ([^&gt;]*) &gt; Overview</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;artist&gt;\1&lt;/artist&gt;" dest="5+">
+ <expression noclean="1">&lt;span&gt;Artist&lt;/span&gt;[^;]*[^&gt;]*&gt;[^&gt;]*&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;rating&gt;\1&lt;/rating&gt;" dest="5+">
+ <expression noclean="1">&lt;span&gt;Rating&lt;/span&gt;[^_]*_r([0-9^]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;label&gt;\1&lt;/label&gt;" dest="5+">
+ <expression noclean="1">&lt;span&gt;Label&lt;/span&gt;[^;]*[^&gt;]*&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;type&gt;\1&lt;/type&gt;" dest="5+">
+ <expression noclean="1">&lt;span&gt;Type&lt;/span&gt;[^;]*[^&gt;]*&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;releasedate&gt;\1&lt;/releasedate&gt;" dest="5+">
+ <expression noclean="1">&lt;span&gt;Release Date&lt;/span&gt;[^;]*[^&gt;]*&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;year&gt;\1&lt;/year&gt;" dest="5+">
+ <expression noclean="1">&lt;span&gt;Release Date.*?([0-9]+)&lt;/</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression noclean="1">Genre[s]* Listing--&gt;([^!]*)&lt;!--Genre[s]* Listing</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="7">
+ <expression noclean="1">Style[s]* Listing--&gt;([^!]*)&lt;!--Style[s]* Listing</expression>
+ </RegExp>
+ <RegExp input="$$7" output="&lt;style&gt;\1&lt;/style&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="8">
+ <expression noclean="1">Mood[s]* Listing--&gt;([^!]*)&lt;!--Mood[s]* Listing</expression>
+ </RegExp>
+ <RegExp input="$$8" output="&lt;mood&gt;\1&lt;/mood&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="9">
+ <expression noclean="1">Theme[s]* Listing--&gt;([^!]*)&lt;!--Theme[s]* Listing</expression>
+ </RegExp>
+ <RegExp input="$$9" output="&lt;theme&gt;\1&lt;/theme&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&lt;li&gt;[^&gt;]*&gt;([^&lt;]*)&lt;/a&gt;&lt;/li&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;track&gt;&lt;position&gt;\1&lt;/position&gt;&lt;title&gt;\3&lt;/title&gt;&lt;duration&gt;\4&lt;/duration&gt;&lt;/track&gt;" dest="5+">
+ <expression noclean="1,2,3" repeat="yes">&quot;cell&quot;&gt;([0-9]+)&lt;/.*?sql=([0-9:a-z]*)&quot;&gt;(.*?)&lt;/a&gt;.*?&quot;right&quot;.*?&gt;(.*?)&lt;/</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;thumb&gt;http://image.allmusic.com/\1&lt;/thumb&gt;" dest="5+">
+ <expression noclean="1">http://image.allmusic.com/([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </ParseAMGAlbum>
+</scraperfunctions>
diff --git a/system/scrapers/music/common/htbackdrops.xml b/system/scrapers/music/common/htbackdrops.xml
new file mode 100644
index 0000000000..9872e4717f
--- /dev/null
+++ b/system/scrapers/music/common/htbackdrops.xml
@@ -0,0 +1,18 @@
+<scraperfunctions>
+ <GetHTBThumbs dest="5">
+ <RegExp input="$$13" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;thumb preview=&quot;http://www.htbackdrops.com/data/thumbnails/\2&quot;&gt;http://www.htbackdrops.com/data/media/\2&lt;/thumb&gt;" dest="13">
+ <expression noclean="1" repeat="yes">mode=search(&amp;amp;sessionid=[^&quot;]*)?&quot;&gt;&lt;img src=&quot;./data/thumbnails/([^&quot;]+)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetHTBThumbs>
+ <GetHTBFanart dest="5">
+ <RegExp input="$$13" output="&lt;details&gt;&lt;fanart url=&quot;http://www.htbackdrops.com/&quot;&gt;\1&lt;/fanart&gt;&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;thumb preview=&quot;data/thumbnails/\2&quot;&gt;data/media/\2&lt;/thumb&gt;" dest="13">
+ <expression noclean="1" repeat="yes">mode=search(&amp;amp;sessionid=[^&quot;]*)?&quot;&gt;&lt;img src=&quot;./data/thumbnails/([^&quot;]+)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetHTBFanart>
+</scraperfunctions>
diff --git a/system/scrapers/music/common/lastfm.xml b/system/scrapers/music/common/lastfm.xml
new file mode 100644
index 0000000000..307c9a9c45
--- /dev/null
+++ b/system/scrapers/music/common/lastfm.xml
@@ -0,0 +1,10 @@
+<scraperfunctions>
+ <GetLastFMDiscography dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;album&gt;&lt;title&gt;\1&lt;/title&gt;&lt;/album&gt;" dest="2+">
+ <expression repeat="yes">&lt;album[^&gt;]*&gt;[^&lt;]*&lt;name&gt;([^&lt;]*?)&lt;/name&gt;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetLastFMDiscography>
+</scraperfunctions>
diff --git a/system/scrapers/music/discogs.gif b/system/scrapers/music/discogs.gif
new file mode 100644
index 0000000000..2aba929794
--- /dev/null
+++ b/system/scrapers/music/discogs.gif
Binary files differ
diff --git a/system/scrapers/music/discogs.xml b/system/scrapers/music/discogs.xml
new file mode 100644
index 0000000000..d727e9fa93
--- /dev/null
+++ b/system/scrapers/music/discogs.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scraper framework="1.1" date="2009-09-16" name="Discogs" content="albums" thumb="discogs.gif" language="en">
+ <include>common/htbackdrops.xml</include>
+ <GetSettings dest="3">
+ <RegExp input="$$5" output="&lt;settings&gt;\1&lt;/settings&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;setting label=&quot;Enable Fanart&quot; type=&quot;bool&quot; id=&quot;htbfanart&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;setting label=&quot;Grab thumbs from HTBackdrops&quot; type=&quot;bool&quot; id=&quot;htbthumbs&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetSettings>
+ <NfoUrl dest="3">
+ <RegExp input="$$1" output="\1" dest="3">
+ <expression>(http://www.discogs.com/.*)</expression>
+ </RegExp>
+ </NfoUrl>
+ <CreateAlbumSearchUrl dest="3">
+ <RegExp input="$$1" output="http://www.discogs.com/advanced_search?artist=$$2&amp;release_title=\1&amp;btn=Search+Releases" dest="3">
+ <expression/>
+ </RegExp>
+ </CreateAlbumSearchUrl>
+ <GetAlbumSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;artist&gt;\2&lt;/artist&gt;&lt;title&gt;\3&lt;/title&gt;&lt;url&gt;http://www.discogs.com\1&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes">&lt;a href=&quot;([^&quot;]*/release/[^&quot;]*)&quot;.*?&gt;(.*?) - (.*?)&lt;/a&gt;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAlbumSearchResults>
+ <GetAlbumDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;artist&gt;\1&lt;/artist&gt;" dest="5">
+ <expression noclean="1">&lt;a href=&quot;/artist/[^&quot;]+&quot;&gt;(.*?)&lt;/a&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;title&gt;\1&lt;/title&gt;" dest="5+">
+ <expression noclean="1">Add .*? - (.*?) to your collection</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;rating&gt;\1&lt;/rating&gt;" dest="5+">
+ <expression noclean="1">Rating:&lt;/td&gt;.*?&lt;b&gt;([0-9]+).[0-9]&lt;/b&gt;/[0-9]+</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;label&gt;\1&lt;/label&gt;" dest="5+">
+ <expression noclean="1">Label:&lt;/td&gt;.*?&gt;([^&lt;]+)&lt;/a&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;releasedate&gt;\1&lt;/releasedate&gt;" dest="5+">
+ <expression noclean="1">Released:.*?&lt;td&gt;(.*?)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;year&gt;\1&lt;/year&gt;" dest="5+">
+ <expression noclean="1">Released:.*?&lt;td&gt;.*?([0-9]+)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression trim="1">Genre:&lt;/td&gt;&lt;td&gt;(.*?)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="5+">
+ <expression repeat="yes">([^,]+),?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression trim="1">Style:&lt;/td&gt;&lt;td&gt;(.*?)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;style&gt;\1&lt;/style&gt;" dest="5+">
+ <expression repeat="yes">([^,]+),?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression noclean="1">Tracklisting:(.*?)&lt;/table&gt;</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;track&gt;&lt;position&gt;\1&lt;/position&gt;&lt;title&gt;\2&lt;/title&gt;&lt;duration&gt;\3&lt;/duration&gt;&lt;/track&gt;" dest="5+">
+ <expression repeat="yes">&quot;left&quot;&gt;[^&lt;0-9]*([0-9]+)&lt;/td&gt;[^:]*&lt;td&gt;([^&lt;]+) \(([:0-9]+)\)&lt;/td&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;review&gt;\1&lt;/review&gt;" dest="5+">
+ <expression>User Reviews:&lt;/b&gt;[^&lt;]*&lt;blockquote&gt;[^&lt;]*(&lt;div id=.+?)&lt;div id=</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;GetImages&quot;&gt;http://www.discogs.com\1&lt;/url&gt;" dest="5+">
+ <expression>&lt;a href=&quot;(/viewimages\?release=[^&quot;]*)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumDetails>
+ <GetImages dest="5">
+ <RegExp input="$$4" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;thumb&gt;\1&lt;/thumb&gt;" dest="4+">
+ <expression noclean="1" repeat="yes">img src=&quot;(http://www.discogs.com/image/[^&quot;]*)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetImages>
+ <CreateArtistSearchUrl dest="3">
+ <RegExp input="$$2" output="http://www.discogs.com/search?type=artists&amp;q=&quot;\1&quot;&amp;btn=Search" dest="3">
+ <RegExp input="$$2" output="\1,%20The" dest="2">
+ <RegExp input="$$1" output="\1" dest="2">
+ <expression noclean="1"/>
+ </RegExp>
+ <expression noclean="1" clear="no" repeat="no" trim="1">[Tt]he%20(.+)</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </CreateArtistSearchUrl>
+ <GetArtistSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\2&lt;/title&gt;&lt;url&gt;http://www.discogs.com/artist/\1&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes">&lt;a href=&quot;/artist/([^&quot;]*)&quot; class=&quot;rollover_link&quot;&gt;(.+?)&lt;/a&gt;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetArtistSearchResults>
+ <GetArtistDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;name&gt;\1&lt;/name&gt;" dest="5">
+ <expression noclean="1">Manage your (.*?) collection</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;biography&gt;\1&lt;/biography&gt;" dest="5+">
+ <expression>Profile:(.*?)URLs:</expression>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbthumbs" output="&lt;url function=&quot;GetHTBThumbs&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=5&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;GetImages&quot;&gt;http://www.discogs.com\1&lt;/url&gt;" dest="5+">
+ <expression>a href=&quot;(/viewimages\?artist=[^&quot;]*)&quot;</expression>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbfanart" output="&lt;url function=&quot;GetHTBFanart&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=1&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetArtistDetails>
+</scraper>
diff --git a/system/scrapers/music/freebase.png b/system/scrapers/music/freebase.png
new file mode 100644
index 0000000000..7b14e32b7b
--- /dev/null
+++ b/system/scrapers/music/freebase.png
Binary files differ
diff --git a/system/scrapers/music/freebase.xml b/system/scrapers/music/freebase.xml
new file mode 100644
index 0000000000..4399e47a5a
--- /dev/null
+++ b/system/scrapers/music/freebase.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scraper framework="1.1" date="2009-09-16" name="Freebase" content="albums" thumb="freebase.png">
+ <include>common/htbackdrops.xml</include>
+ <GetSettings dest="3">
+ <RegExp input="$$5" output="&lt;settings&gt;\1&lt;/settings&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;setting label=&quot;Enable Fanart&quot; type=&quot;bool&quot; id=&quot;htbfanart&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;setting label=&quot;Grab thumbs from HTBackdrops&quot; type=&quot;bool&quot; id=&quot;htbthumbs&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetSettings>
+ <NfoUrl dest="3">
+ <RegExp input="$$1" output="&lt;url&gt;http://api.freebase.com/api/service/mqlread?query={%22query%22:{%22type%22:%22/music/artist%22,%22name%22:null,%22genre%22:[],%22album%22:[{%22id%22:%22/\2%22,%22/common/topic/article%22:[{%22guid%22:null,%22optional%22:true,%22limit%22:1}],%22/common/topic/image%22:[{%22guid%22:null,%22optional%22:true,%22limit%22:1}],%22label%22:[],%22engineer%22:[],%22producer%22:[],%22release_type%22:null,%22artist%22:null,%22name%22:null,%22release_date%22:null,%22track%22:[{%22name%22:null,%22length%22:null,%22index%22:null,%22sort%22:%22index%22,%22optional%22:true}],%22sort%22:%22release_date%22}]}}&lt;/url&gt;" dest="3+">
+ <expression>(http://www.freebase.com/view/)(.*)</expression>
+ </RegExp>
+ </NfoUrl>
+
+ <CreateAlbumSearchUrl dest="3">
+ <RegExp input="$$1" output="http://api.freebase.com/api/service/mqlread?query={%22query%22:{%22type%22:%22/music/artist%22,%22name~=%22:%22$$2%22,%22album%22:[{%22guid%22:null,%22artist%22:null,%22name%22:null,%22name~=%22:%22\1%22}]}}" dest="3">
+ <expression/>
+ </RegExp>
+ </CreateAlbumSearchUrl>
+
+ <GetAlbumSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;artist&gt;\1&lt;/artist&gt;&lt;title&gt;\3&lt;/title&gt;&lt;url&gt;http://api.freebase.com/api/service/mqlread?query={%22query%22:{%22type%22:%22/music/artist%22,%22name%22:null,%22genre%22:[],%22album%22:[{%22id%22:%22/guid/\2%22,%22/common/topic/article%22:[{%22guid%22:null,%22optional%22:true,%22limit%22:1}],%22/common/topic/image%22:[{%22guid%22:null,%22optional%22:true,%22limit%22:1}],%22label%22:[],%22engineer%22:[],%22producer%22:[],%22release_type%22:null,%22artist%22:null,%22name%22:null,%22release_date%22:null,%22track%22:[{%22name%22:null,%22length%22:null,%22index%22:null,%22sort%22:%22index%22,%22optional%22:true}],%22sort%22:%22release_date%22}]}}&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes">&quot;artist&quot;: &quot;([^&quot;]*)&quot;.*?&quot;guid&quot;: &quot;#([^&quot;]*)&quot;.*?&quot;name&quot;: &quot;([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAlbumSearchResults>
+
+ <GetAlbumDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;artist&gt;\1&lt;/artist&gt;" dest="5">
+ <expression noclean="1">&quot;artist&quot;: &quot;([^&quot;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;title&gt;\1&lt;/title&gt;" dest="5+">
+ <expression noclean="1">&quot;name&quot;: &quot;([^&quot;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression trim="1">&quot;label&quot;: (.*?)\]</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;label&gt;\1&lt;/label&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&quot;([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;type&gt;\1&lt;/type&gt;" dest="5+">
+ <expression noclean="1">&quot;release_type&quot;: &quot;([^&quot;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;releasedate&gt;\1&lt;/releasedate&gt;" dest="5+">
+ <expression noclean="1">&quot;release_date&quot;: &quot;([^&quot;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;year&gt;\1&lt;/year&gt;" dest="5+">
+ <expression noclean="1">&quot;release_date&quot;: &quot;([0-9]+)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6+">
+ <expression trim="1">&quot;genre&quot;: (.*?)\]</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&quot;([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;track&gt;&lt;position&gt;\1&lt;/position&gt;&lt;title&gt;\3&lt;/title&gt;&lt;duration&gt;\2&lt;/duration&gt;&lt;/track&gt;" dest="5+">
+ <expression repeat="yes">&quot;index&quot;: ([0-9]+).*?&quot;length&quot;: ([0-9]+).*?&quot;name&quot;: &quot;([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;thumb&gt;http://www.freebase.com/api/trans/raw/guid/\1&lt;/thumb&gt;" dest="5+">
+ <expression noclean="1">image&quot;:.*?&quot;guid&quot;: &quot;#([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;GetAlbumReview&quot;&gt;http://www.freebase.com/api/trans/raw/guid/\1&lt;/url&gt;" dest="5+">
+ <expression noclean="1">article&quot;:.*?&quot;guid&quot;: &quot;#([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumDetails>
+
+ <GetAlbumReview dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;review&gt;\1&lt;/review&gt;" dest="2">
+ <expression noclean="1">&lt;p&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumReview>
+
+ <CreateArtistSearchUrl dest="3">
+ <RegExp input="$$1" output="http://www.freebase.com/api/service/search?query=\1&type=/music/artist&indent=1" dest="3">
+ <expression/>
+ </RegExp>
+ </CreateArtistSearchUrl>
+
+ <GetArtistSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\2&lt;/title&gt;&lt;url&gt;http://api.freebase.com/api/service/mqlread?query={%22query%22:{%22type%22:%22/music/artist%22,%22id%22:%22/guid/\1%22,%22/common/topic/article%22:[{%22guid%22:null,%22optional%22:true,%22limit%22:1}],%22/common/topic/image%22:[{%22guid%22:null,%22optional%22:true,%22limit%22:1}],%22name%22:null,%22genre%22:[],%22album%22:[],%22active_start%22:null,%22active_end%22:null,%22instruments_played%22:[]}}&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes">&quot;guid&quot;: &quot;#([^&quot;]*)&quot;.*?&quot;name&quot;: &quot;([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetArtistSearchResults>
+
+ <GetArtistDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;name&gt;\1&lt;/name&gt;" dest="5">
+ <expression noclean="1">&quot;name&quot;: &quot;([^&quot;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;formed&gt;\1&lt;/formed&gt;" dest="5+">
+ <expression noclean="1">&quot;active_start&quot;: &quot;([^&quot;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;disbanded&gt;\1&lt;/disbanded&gt;" dest="5+">
+ <expression noclean="1">&quot;active_end&quot;: &quot;([^&quot;]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression trim="1">&quot;genre&quot;: (.*?)\]</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="5+">
+ <expression repeat="yes">&quot;([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression trim="1">&quot;album&quot;: (.*?)\]</expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;album&gt;&lt;title&gt;\1&lt;/title&gt;&lt;/album&gt;" dest="5+">
+ <expression noclean="1" repeat="yes">&quot;([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;thumb&gt;http://www.freebase.com/api/trans/raw/guid/\1&lt;/thumb&gt;" dest="5+">
+ <expression noclean="1">image&quot;:.*?&quot;guid&quot;: &quot;#([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbthumbs" output="&lt;url function=&quot;GetHTBThumbs&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=5&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbfanart" output="&lt;url function=&quot;GetHTBFanart&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=1&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;GetBiography&quot;&gt;http://www.freebase.com/api/trans/raw/guid/\1&lt;/url&gt;" dest="5+">
+ <expression noclean="1">article&quot;:.*?&quot;guid&quot;: &quot;#([^&quot;]*)&quot;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetArtistDetails>
+
+ <GetBiography dest="5">
+ <RegExp input="$$2" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;biography&gt;\1&lt;/biography&gt;" dest="2">
+ <expression noclean="1">&lt;p&gt;([^&lt;]*)</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetBiography>
+</scraper>
diff --git a/system/scrapers/music/israel-music.png b/system/scrapers/music/israel-music.png
new file mode 100644
index 0000000000..932c3abf75
--- /dev/null
+++ b/system/scrapers/music/israel-music.png
Binary files differ
diff --git a/system/scrapers/music/israel-music.xml b/system/scrapers/music/israel-music.xml
new file mode 100644
index 0000000000..62010304ee
--- /dev/null
+++ b/system/scrapers/music/israel-music.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scraper framework="1.0" date="2009-05-22" name="IsraelMusic" content="albums" thumb="israel-music.png">
+ <NfoUrl dest="3">
+ <RegExp input="$$1" output="\1/" dest="3">
+ <expression>(http://he.israel-music.com.*)</expression>
+ </RegExp>
+ </NfoUrl>
+ <CreateAlbumSearchUrl dest="3">
+ <RegExp input="$$1" output='http://he.israel-music.com/search/\1/' dest="3">
+ <expression></expression>
+ </RegExp>
+ <RegExp input="$$2%20$$1" output='http://he.israel-music.com/search/\1/' dest="3">
+ <expression></expression>
+ </RegExp>
+ </CreateAlbumSearchUrl>
+ <GetAlbumSearchResults dest="8">
+ <RegExp input="$$5" output='&lt;?xml version="1.0" encoding="utf-8" standalone="yes"?&gt;&lt;results&gt;\1&lt;/results&gt;' dest="8">
+ <RegExp input="$$1" output='&lt;entity&gt;&lt;url&gt;http://he.israel-music.com\1&lt;/url&gt;&lt;title&gt;\2&lt;/title&gt;&lt;/entity&gt;' dest="5+">
+ <expression repeat="yes" noclean='1,2'><![CDATA[<strong><a dir="rtl" href="(.[^"]*)">(.[^<]*)</a>]]></expression>
+ </RegExp>
+ <RegExp input="$$1" output='&lt;entity&gt;&lt;url&gt;http://he.israel-music.com\1&lt;/url&gt;&lt;title&gt;\2&lt;/title&gt;&lt;artist&gt;\4&lt;/artist&gt;&lt;year&gt;\5&lt;/year&gt;&lt;/entity&gt;' dest="5+">
+ <expression repeat="yes" noclean='1,3,4,5'><![CDATA[<strong><a dir="rtl" href="(.[^"]*)">(.*?)</a> - <a dir="rtl" href="(.[^"]*)">(.[^<]*)</a> <span>([0-9]*)</span></strong>]]></expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumSearchResults>
+ <GetAlbumDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;title&gt;\1&lt;/title&gt;" dest="5">
+ <expression noclean="1"><![CDATA[<h1>(.[^<]*)</h1>]]></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;artist&gt;\1&lt;/artist&gt;" dest="5+">
+ <expression noclean="1"><![CDATA[</span><a.[^>]*>(.[^<]*)</a>]]></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;review&gt;\1&lt;/review&gt;" dest="5+">
+ <expression><![CDATA[<ul id="details".[^>]*>(.*)</ul>.[^<]*<p style="clear:both">]]></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;thumb&gt;\1&lt;/thumb&gt;" dest="5+">
+ <expression noclean="1"><![CDATA[id="imagef" src="(.[^"]*)"]]></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;year&gt;\1&lt;/year&gt;" dest="5+">
+ <expression noclean="1"><![CDATA[<li><b>שנה: </b> ([0-9]+)</li>]]></expression>
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="6">
+ <expression noclean="1"><![CDATA[<li><b>ז'אנר:</b>(.*)</li>]]></expression>
+ </RegExp>
+ <RegExp input="$$6" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="5+">
+ <expression noclean="1" repeat="yes"><![CDATA[<a.[^>]*">(.[^<]*)</a>]]></expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumDetails>
+</scraper>
diff --git a/system/scrapers/music/lastfm.xml b/system/scrapers/music/lastfm.xml
new file mode 100644
index 0000000000..494b3a5b58
--- /dev/null
+++ b/system/scrapers/music/lastfm.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scraper framework="1.1" date="2009-09-16" name="Last.FM" content="albums" thumb="lastfm.gif">
+ <include>common/htbackdrops.xml</include>
+ <include>common/lastfm.xml</include>
+ <GetSettings dest="3">
+ <RegExp input="$$5" output="&lt;settings&gt;\1&lt;/settings&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;setting label=&quot;Enable Fanart&quot; type=&quot;bool&quot; id=&quot;htbfanart&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;setting label=&quot;Grab thumbs from HTBackdrops&quot; type=&quot;bool&quot; id=&quot;htbthumbs&quot; default=&quot;true&quot;&gt;&lt;/setting&gt;" dest="5+">
+ <expression></expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetSettings>
+ <NfoUrl dest="3">
+ <RegExp input="$$1" output="http://ws.audioscrobbler.com/2.0/?method=album.getinfo&amp;album=\2&amp;artist=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b" dest="3">
+ <expression>(http://www.last.fm/music/([^/]*)/(.*))</expression>
+ </RegExp>
+ <RegExp input="$$1" output="http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&amp;artist=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b" dest="3">
+ <expression>(http://www.last.fm/music/([^/]*))$</expression>
+ </RegExp>
+ </NfoUrl>
+ <CreateAlbumSearchUrl dest="3">
+ <RegExp input="$$1" output="http://ws.audioscrobbler.com/2.0/?method=album.search&amp;album=\1&amp;artist=$$2&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b" dest="3">
+ <expression/>
+ </RegExp>
+ </CreateAlbumSearchUrl>
+ <GetAlbumSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;artist&gt;\2&lt;/artist&gt;&lt;title&gt;\1&lt;/title&gt;&lt;url&gt;http://ws.audioscrobbler.com/2.0/?method=album.getinfo&amp;amp;album=\4&amp;amp;artist=\3&amp;amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes">&lt;album&gt;.*?&lt;name&gt;([^&lt;]*)&lt;/name&gt;.*?&lt;artist&gt;([^&lt;]*)&lt;/artist&gt;.*?&lt;url&gt;http://www.last.fm/music/([^/]+)/(.*?)&lt;/url&gt;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAlbumSearchResults>
+ <GetAlbumDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;artist&gt;\1&lt;/artist&gt;" dest="5">
+ <expression noclean="1">&lt;artist&gt;(.*?)&lt;/artist&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;title&gt;\1&lt;/title&gt;" dest="5+">
+ <expression noclean="1">&lt;name&gt;(.*?)&lt;/name&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;releasedate&gt;\1&lt;/releasedate&gt;" dest="5+">
+ <expression trim="1">&lt;releasedate&gt;:(.*?)&lt;/releasedate&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;year&gt;\1&lt;/year&gt;" dest="5+">
+ <expression trim="1">&lt;releasedate&gt;[^,]*([0-9]+),&lt;/releasedate&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;review&gt;\1&lt;/review&gt;" dest="5+">
+ <expression>&lt;content&gt;&lt;!\[CDATA\[(.*)\]\]&gt;&lt;/content&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;thumb&gt;\2&lt;/thumb&gt;" dest="5+">
+ <expression noclean="1">&lt;image size=&quot;(extra)?large&quot;&gt;([^&lt;]*)&lt;/image&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;GetTracks&quot;&gt;http://ws.audioscrobbler.com/2.0/?method=playlist.fetch&amp;amp;playlistURL=lastfm://playlist/album/\1&amp;amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lt;/url&gt;" dest="5+">
+ <expression noclean="1">&lt;id&gt;(.*?)&lt;/id&gt;</expression>
+ </RegExp>
+ <expression noclean="1"></expression>
+ </RegExp>
+ </GetAlbumDetails>
+ <GetTracks dest="5">
+ <RegExp input="$$4" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;track&gt;&lt;title&gt;\1&lt;/title&gt;&lt;/track&gt;" dest="4+">
+ <expression noclean="1" repeat="yes">&lt;track&gt;.*?&lt;title&gt;(.*?)&lt;/title&gt;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetTracks>
+ <CreateArtistSearchUrl dest="3">
+ <RegExp input="$$1" output="http://ws.audioscrobbler.com/2.0/?method=artist.search&amp;artist=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b" dest="3">
+ <expression/>
+ </RegExp>
+ </CreateArtistSearchUrl>
+ <GetArtistSearchResults dest="8">
+ <RegExp input="$$5" output="&lt;results&gt;\1&lt;/results&gt;" dest="8">
+ <RegExp input="$$1" output="&lt;entity&gt;&lt;title&gt;\1&lt;/title&gt;&lt;url&gt;http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&amp;amp;mbid=\2&amp;amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lt;/url&gt;&lt;/entity&gt;" dest="5+">
+ <expression repeat="yes">&lt;artist&gt;.*?&lt;name&gt;([^&lt;]*)&lt;/name&gt;.*?&lt;mbid&gt;([^&lt;]*)&lt;/mbid&gt;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetArtistSearchResults>
+ <GetArtistDetails dest="3">
+ <RegExp input="$$5" output="&lt;details&gt;\1&lt;/details&gt;" dest="3">
+ <RegExp input="$$1" output="&lt;name&gt;\1&lt;/name&gt;" dest="5">
+ <expression noclean="1">&lt;name&gt;([^&lt;]*)&lt;/name&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;biography&gt;\1&lt;/biography&gt;" dest="5+">
+ <expression>&lt;content&gt;&lt;!\[CDATA\[(.*?)\]</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;thumb&gt;\2&lt;/thumb&gt;" dest="5+">
+ <expression noclean="1">&lt;image size=&quot;(extra)?large&quot;&gt;([^&lt;]*)&lt;/image&gt;</expression>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbthumbs" output="&lt;url function=&quot;GetHTBThumbs&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=5&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$2" conditional="htbfanart" output="&lt;url function=&quot;GetHTBFanart&quot; post=&quot;yes&quot;&gt;http://www.htbackdrops.com/search.php?search_terms=all&amp;amp;cat_id=1&amp;amp;search_keywords=\1&lt;/url&gt;" dest="5+">
+ <expression/>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;GetGenres&quot;&gt;http://ws.audioscrobbler.com/2.0/?method=artist.gettoptags&amp;amp;artist=\1&amp;amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lt;/url&gt;" dest="5+">
+ <expression noclean="1">&lt;url&gt;http://www.last.fm/music/(.*?)&lt;/url&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;url function=&quot;GetLastFMDiscography&quot;&gt;http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&amp;amp;artist=\1&amp;amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lt;/url&gt;" dest="5+">
+ <expression noclean="1">&lt;url&gt;http://www.last.fm/music/(.*?)&lt;/url&gt;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetArtistDetails>
+ <GetGenres dest="5">
+ <RegExp input="$$4" output="&lt;details&gt;\1&lt;/details&gt;" dest="5">
+ <RegExp input="$$1" output="&lt;genre&gt;\1&lt;/genre&gt;" dest="4">
+ <expression noclean="1">&lt;tag&gt;.*?&lt;name&gt;([^/lt;]*)&lt;/name&gt;</expression>
+ </RegExp>
+ <RegExp input="$$1" output="&lt;style&gt;\1&lt;/style&gt;" dest="4+">
+ <expression repeat="yes" noclean="1">&lt;tag&gt;.*?&lt;name&gt;([^/lt;]*)&lt;/name&gt;</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </GetGenres>
+</scraper>