<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="metadata.common.allmusic.com"
name="AllMusic"
- version="1.9.0"
+ version="2.4.3"
provider-name="Team XBMC">
<requires>
<import addon="xbmc.metadata" version="1.0"/>
<scraperfunctions>
- <GetAMGDiscography dest="5">
- <RegExp input="$$2$$3" output="<details>\1</details>" dest="5">
- <RegExp input="$$1" output="<album><year>\1</year><title>\2</title><label>\3</label></album>" dest="2">
- <expression repeat="yes" clear="yes" noclean="1,3,4"><td class="sorted cell">([^<]*)</td>.*?<td class="cell"><a href="[^>]*>([^<]*)<.*?<td class="cell">([^<]*)<</expression>
+ <GetAMGDiscographyByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGDiscography">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression clear="yes" noclean="1"/>
+ </RegExp>
+ </GetAMGDiscographyByAMGID>
+ <ParseAMGDiscography dest="5" clearbuffers="no">
+ <RegExp input="$$3" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="3">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<album><year>\1</year><title>\2</title><label>\3</label></album>" dest="3">
+ <expression repeat="yes" clear="yes" trim="1"><td class="year[^"]*"(?:\stitle="[^"]*")*\s*data-sort-value="[^>]*>([^<]*)</td>[^<]*<td class=".*?title="([^"]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGDiscography>
+
+ <GetAMGBiographyByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGBiography">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGBiographyByAMGID>
+ <ParseAMGBiography dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
</RegExp>
- <RegExp input="$$2" output="\1&amp;\2" dest="3">
- <expression repeat="yes" noclean="1,2">(.*?)&(.+)</expression>
+ <RegExp input="$$1" output="\1" dest="11">
+ <expression clear="yes">" itemprop="description">(.*?)div class="advertisement leaderboard"></expression>
</RegExp>
- <RegExp input="$$3" output="" dest="2">
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[biogfbsource]" output="<chain function="GetLastFMFallbackBiographyByMBID">$$8</chain>" dest="12">
+ <expression>last.fm</expression>
+ </RegExp>
+ <expression>^$</expression>
+ </RegExp>
+ <RegExp input="$$11" output="<biography>\1</biography>" dest="2">
<expression>(.+)</expression>
</RegExp>
- <expression noclean="1" />
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseAMGBiography>
+
+ <GetAMGFallbackBiographyByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackBiography">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
</RegExp>
- </GetAMGDiscography>
- <GetAMGBiography dest="5">
+ </GetAMGFallbackBiographyByAMGID>
+ <ParseAMGFallbackBiography dest="5" clearbuffers="no">
<RegExp input="$$2" output="<details>\1</details>" dest="5">
- <RegExp input="$$1" output="<biography>Fetching artist biography from allmusic.com is not possible due to copyright reasons.</biography>" dest="2">
- <expression clear="yes">Biography</h2>.*?</p>(.*?)</p></expression>
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="2">
+ <expression clear="yes">" itemprop="description">(.*?)div class="advertisement leaderboard"></expression>
</RegExp>
<expression noclean="1"/>
</RegExp>
- </GetAMGBiography>
- <GetAMGReview dest="5">
+ </ParseAMGFallbackBiography>
+
+ <GetAMGArtistNameByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistName">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistNameByAMGID>
+ <ParseAMGArtistName dest="5">
<RegExp input="$$2" output="<details>\1</details>" dest="5">
- <RegExp input="$$1" output="<review>Fetching album review from allmusic.com is not possible due to copyright reasons.</review>" dest="2">
- <expression><h2 class="title">Review</h2>.*?</p>(.*?)</p></expression>
+ <RegExp input="$$1" output="<name>\1</name>" dest="2">
+ <expression noclean="1">http://schema.org/MusicGroup">[^<]*<span itemprop="name">([^<]*)</span></expression>
</RegExp>
- <expression noclean="1" />
+ <expression noclean="1"/>
</RegExp>
- </GetAMGReview>
- <ParseAMGArtist dest="3">
- <RegExp input="$$5" output="<details>\1</details>" dest="3">
- <RegExp input="$$1" output="<name>\1</name>" dest="5">
- <expression noclean="1"><meta name="title" content="([^"]*)</expression>
+ </ParseAMGArtistName>
+
+ <GetAMGArtistLifeSpanByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistLifeSpan">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistLifeSpanByAMGID>
+ <ParseAMGArtistLifeSpan dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="11">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<born>\1 \2</born>" dest="11+">
+ <expression trim="1,2"><dt>\s*Born[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<died>\1 \2</died>" dest="11+">
+ <expression trim="1,2"><dt>\s*Died[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<formed>\1</formed>" dest="11+">
+ <expression trim="1,2"><dt>\s*Formed[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="11+">
+ <expression trim="1,2"><dt>\s*Disbanded[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[lifespanfbsource]" output="<chain function="GetMBFallbackLafeSpanByMBID">$$8</chain>" dest="12">
+ <expression>MusicBrainz</expression>
+ </RegExp>
+ <expression>^$</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="2">
+ <expression noclean="1"><(?:born|formed)*>(.+)</(?:born|formed)*></expression>
</RegExp>
- <RegExp input="$$1" output="<born>\1</born>" dest="5+">
- <expression><h3>Born[^>]*>[^>]*>(.*?)</p></expression>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseAMGArtistLifeSpan>
+
+ <GetAMGFallbackArtistLifeSpanByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistLifeSpan">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFallbackArtistLifeSpanByAMGID>
+ <ParseAMGFallbackArtistLifeSpan dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
</RegExp>
- <RegExp input="$$1" output="<born>\1</born>" dest="5+">
- <expression><h3>Birth[^>]*>[^>]*>(.*?)</p></expression>
+ <RegExp input="$$1" output="<born>\1 \2</born>" dest="2">
+ <expression trim="1,2"><dt>\s*Born[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<died>\1 \2</died>" dest="2+">
+ <expression trim="1,2"><dt>\s*Died[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<formed>\1</formed>" dest="2">
+ <expression trim="1,2"><dt>\s*Formed[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="2+">
+ <expression trim="1,2"><dt>\s*Disbanded[^>]*>[^>]*>[^>]*>(.*?\d{4})\s*([^<]*)?</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseAMGFallbackArtistLifeSpan>
+
+ <GetAMGArtistYearsActiveByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistYearsActive">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistYearsActiveByAMGID>
+ <ParseAMGArtistYearsActive dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
</RegExp>
- <RegExp input="$$1" output="<died>\1</died>" dest="5+">
- <expression><h3>Died[^>]*>[^>]*>(.*?)</p></expression>
+ <RegExp input="$$1" output="<yearsactive>\1</yearsactive>" dest="2">
+ <expression trim="1" noclean="1"><dd class="active">([^<]*)<</expression>
</RegExp>
- <RegExp input="$$1" output="<formed>\1</formed>" dest="5+">
- <expression><h3>Formed[^>]*>[^>]*>(.*?)</p></expression>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGArtistYearsActive>
+
+ <GetAMGArtistGenresByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistGenres">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistGenresByAMGID>
+ <ParseAMGArtistGenres dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
</RegExp>
- <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="5+">
- <expression><h3>Disbanded[^>]*>[^>]*>(.*?)</p></expression>
+ <RegExp input="" output="" dest="6">
+ <expression />
</RegExp>
<RegExp input="$$1" output="\1" dest="6">
- <expression noclean="1"><h3>Years Active</h3>(.*?)</p></expression>
+ <expression noclean="1"><dt>Genres</dt>(.*?)</dd></expression>
+ </RegExp>
+ <RegExp input="$$6" output="<genre>\2</genre>" dest="11">
+ <expression repeat="yes" noclean="1"><li><a href="/genre/[^"]*">(<strong>)?([^<]*)</expression>
</RegExp>
- <RegExp input="$$6" output="\1's/" dest="7+">
- <expression repeat="yes"><span class="active">([0-9]+)</span></expression>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[genresfbsource]" output="<chain function="GetLastFMFallbackArtistGenresByMBID">$$8</chain>" dest="12">
+ <expression>last.fm</expression>
+ </RegExp>
+ <expression><genre></genre></expression>
</RegExp>
- <RegExp input="$$7" output="<yearsactive>\1</yearsactive>" dest="5+">
- <expression noclean="1">(.+)/</expression>
+ <RegExp input="$$11" output="$$11" dest="2">
+ <expression><genre>(.+)</genre></expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGArtistGenres>
+
+ <GetAMGFallbackArtistGenresByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistGenres">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFallbackArtistGenresByAMGID>
+ <ParseAMGFallbackArtistGenres dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="6">
+ <expression />
</RegExp>
<RegExp input="$$1" output="\1" dest="6">
- <expression noclean="1"><h3>Genres</h3>(.*?)</div></expression>
+ <expression noclean="1"><dt>Genres</dt>(.*?)</dd></expression>
+ </RegExp>
+ <RegExp input="$$6" output="<genre>\2</genre>" dest="2">
+ <expression repeat="yes" noclean="1"><li><a href="/genre/[^"]*">(<strong>)?([^<]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGFallbackArtistGenres>
+
+ <GetAMGArtistStylesByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistStyles">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistStylesByAMGID>
+ <ParseAMGArtistStyles dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
</RegExp>
- <RegExp input="$$6" output="<genre>\2</genre>" dest="5+">
- <expression repeat="yes" noclean="1"><a href="/explore/genre/[^>]*>(<strong>)?([^<]*)</expression>
+ <RegExp input="" output="" dest="7">
+ <expression />
</RegExp>
<RegExp input="$$1" output="\1" dest="7">
- <expression noclean="1"><h3>Styles</h3>(.*?)</div></expression>
+ <expression noclean="1"><dt>Styles</dt>(.*?)</dd></expression>
</RegExp>
- <RegExp input="$$7" output="<style>\1</style>" dest="5+">
- <expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression>
+ <RegExp input="$$7" output="<style>\1</style>" dest="11">
+ <expression repeat="yes" noclean="1"><li><a href="/style/[^"]*">([^<]*)</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[stylesfbsource]" output="<chain function="GetLastFMFallbackArtistStylesByMBID">$$8</chain>" dest="12">
+ <expression>last.fm</expression>
+ </RegExp>
+ <expression><style></style></expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="2">
+ <expression><style>(.+)</style></expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGArtistStyles>
+
+ <GetAMGFallbackArtistStylesByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFallbackArtistStyles">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFallbackArtistStylesByAMGID>
+ <ParseAMGFallbackArtistStyles dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="7">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="7">
+ <expression noclean="1"><dt>Styles</dt>(.*?)</dd></expression>
+ </RegExp>
+ <RegExp input="$$7" output="<style>\1</style>" dest="2">
+ <expression repeat="yes" noclean="1"><li><a href="/style/[^"]*">([^<]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGFallbackArtistStyles>
+
+ <GetAMGArtistMoodsByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistMoods">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistMoodsByAMGID>
+ <ParseAMGArtistMoods dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
</RegExp>
<RegExp input="$$1" output="\1" dest="8">
- <expression noclean="1"><h3>Moods</h3>(.*?)</div></expression>
+ <expression noclean="1"><h4>artist moods</h4>(.*?)</ul></expression>
</RegExp>
- <RegExp input="$$8" output="<mood>\1</mood>" dest="5+">
+ <RegExp input="$$8" output="<mood>\1</mood>" dest="2">
<expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression>
</RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGArtistMoods>
+
+ <GetAMGArtistThumbsByAMGID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGArtistThumbs">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGArtistThumbsByAMGID>
+ <ParseAMGArtistThumbs dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
<RegExp input="$$1" output="\1" dest="9">
- <expression noclean="1"><h3>Instruments</h3>(.*?)</div></expression>
+ <expression noclean="1"><h4>photo gallery</h4>(.*?)<h4></expression>
</RegExp>
- <RegExp input="$$9" output="<instruments>\1</instruments>" dest="5+">
- <expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression>
+ <RegExp input="$$9" output="<thumb>http://cps-static.rovicorp.com/3/JPG_1080/\1</thumb>" dest="2">
+ <expression repeat="yes" noclean="1"><img src="http://cps-static.rovicorp.com/3/JPG_[^/]*/([^"]*)</expression>
</RegExp>
- <RegExp conditional="allmusicartistthumbs" input="$$1" output="<thumb>\1</thumb>" dest="5+">
- <expression noclean="1"><img id="artist_image" src="([^"]*)"</expression>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseAMGArtistThumbs>
+
+
+ <GetAMGAlbumReviewByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumReview">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumReviewByAMGID>
+ <ParseAMGAlbumReview dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<review>\1</review>" dest="2">
+ <expression><span itemprop="description">([^<]*)</expression>
</RegExp>
<expression noclean="1" />
</RegExp>
- </ParseAMGArtist>
- <ParseAMGAlbum dest="3">
- <RegExp input="$$5" output="<details>\1</details>" dest="3">
- <RegExp input="$$1" output="<title>\1</title>" dest="5">
- <expression trim="1" noclean="1"><meta name="title" content="([^-]*)-[^<]*" /></expression>
- </RegExp>
- <RegExp input="$$1" output="<artist>\1</artist>" dest="5+">
- <expression noclean="1"><meta name="title" content="[^-]*- ([^<]*)" /></expression>
- </RegExp>
- <RegExp input="$$1" output="<rating>\1</rating>" dest="5+">
- <expression noclean="1"><h3>Rating</h3>[^_]*_r([0-9^]*)</expression>
+ </ParseAMGAlbumReview>
+
+ <GetAMGAlbumTitleByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumTitle">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumTitleByAMGID>
+ <ParseAMGAlbumTitle dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<title>\1</title>" dest="2">
+ <expression trim="1" noclean="1"><div class="album-title">([^<]*)</expression>
</RegExp>
- <RegExp input="$$1" output="<label>\1</label>" dest="5+">
- <expression noclean="1"><h3>Label</h3>[^>]*>([^<]*)</expression>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumTitle>
+
+ <GetAMGAlbumArtistByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumArtist">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumArtistByAMGID>
+ <ParseAMGAlbumArtist dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<artist>\1</artist>" dest="2">
+ <expression noclean="1"><div class="album-artist">[^>]*>([^<]*)</expression>
</RegExp>
- <RegExp input="$$1" output="<type>\1</type>" dest="5+">
- <expression noclean="1"><h3>Type</h3>[^>]*>([^<]*)</expression>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumArtist>
+
+ <GetAMGAlbumRatingByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumRating">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumRatingByAMGID>
+ <ParseAMGAlbumRating dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<rating max="5.0">\1</rating>" dest="2">
+ <expression noclean="1">itemprop="rating">([0-9^]*)</expression>
</RegExp>
- <RegExp input="$$1" output="<releasedate>\1</releasedate>" dest="5+">
- <expression noclean="1"><h3>Release Date</h3>[^>]*>([^<]*)</expression>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumRating>
+
+ <GetAMGAlbumDateByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumDate">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumDateByAMGID>
+ <ParseAMGAlbumDate dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<releasedate>\1</releasedate>" dest="2">
+ <expression noclean="1"><dd class="release-date">([^<]*)</expression>
</RegExp>
- <RegExp input="$$1" output="<year>\1</year>" dest="5+">
- <expression noclean="1"><span>Release Date.*?([0-9]+)</</expression>
+ <RegExp input="$$1" output="<year>\2</year>" dest="2+">
+ <expression trim="1" noclean="1"><dd class="release-date">([^,]*,)?([^<]*)</expression>
</RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumDate>
+
+ <GetAMGAlbumGenresByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumGenres">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumGenresByAMGID>
+ <ParseAMGAlbumGenres dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
<RegExp input="$$1" output="\1" dest="6">
- <expression noclean="1"><h3>Genre[s]?</h3>(.*?)</div></expression>
+ <expression noclean="1"><dd class="genres">(.*?)</dd></expression>
</RegExp>
- <RegExp input="$$6" output="<genre>\1</genre>" dest="5+">
+ <RegExp input="$$6" output="<genre>\1</genre>" dest="2">
<expression repeat="yes" trim="1" noclean="1"><li>[^>]*>([^<]*)</a></li></expression>
</RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumGenres>
+
+ <GetAMGAlbumStylesByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumStyles">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumStylesByAMGID>
+ <ParseAMGAlbumStyles dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
<RegExp input="$$1" output="\1" dest="7">
- <expression noclean="1"><h3>Style[s]?</h3>(.*?)</div></expression>
+ <expression noclean="1"><dd class="styles">(.*?)</dd></expression>
</RegExp>
- <RegExp input="$$7" output="<style>\1</style>" dest="5+">
+ <RegExp input="$$7" output="<style>\1</style>" dest="2">
<expression repeat="yes" trim="1" noclean="1"><li>[^>]*>([^<]*)</a></li></expression>
</RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumStyles>
+
+ <GetAMGAlbumMoodsByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumMoods">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumMoodsByAMGID>
+ <ParseAMGAlbumMoods dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
<RegExp input="$$1" output="\1" dest="8">
- <expression trim="1" noclean="1"><h3>Mood[s]?</h3>(.*?)</div></expression>
+ <expression trim="1" noclean="1">>\s*<h4>album moods</h4>(.*?)</ul></expression>
</RegExp>
- <RegExp input="$$8" output="<mood>\1</mood>" dest="5+">
+ <RegExp input="$$8" output="<mood>\1</mood>" dest="2">
<expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression>
</RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumMoods>
+
+ <GetAMGAlbumThemesByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumThemes">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumThemesByAMGID>
+ <ParseAMGAlbumThemes dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
<RegExp input="$$1" output="\1" dest="9">
- <expression noclean="1"><h3>Theme[s]?</h3>(.*?)</div></expression>
+ <expression noclean="1"><h4>album themes</h4>(.*?)</ul></expression>
</RegExp>
- <RegExp input="$$9" output="<theme>\1</theme>" dest="5+">
+ <RegExp input="$$9" output="<theme>\1</theme>" dest="2">
<expression repeat="yes" noclean="1"><li>[^>]*>([^<]*)</a></li></expression>
</RegExp>
- <RegExp input="$$1" output="<track><position>\1</position><title>\2</title><duration>\3</duration></track>" dest="5+">
- <expression repeat="yes" noclean="1,2,3">"cell">([0-9]+)<.*?<td class="cell">[^>]*>([^<]*)</a></td>.*?<td class="cell">([0-9]*:[0-9]*)</td></expression>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumThemes>
+
+ <GetAMGAlbumTracksByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumTracks">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumTracksByAMGID>
+ <ParseAMGAlbumTracks dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<track><position>\1</position><title>\2</title><duration>\3</duration></track>" dest="2">
+ <expression repeat="yes" trim="1" noclean="1,2,3"><td class="tracknum">([0-9]*).*?<div class="title">[^>]*>([^<]*).*?<td class="time">([^<]*)</expression>
</RegExp>
- <RegExp conditional="allmusicalbumthumbs" input="$$1" output="<thumb>http://image.allmusic.com/\1</thumb>" dest="5+">
- <expression noclean="1">http://image.allmusic.com/([^"]*)"</expression>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumTracks>
+
+ <GetAMGAlbumThumbsByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGAlbumThumbs">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGAlbumThumbsByAMGID>
+ <ParseAMGAlbumThumbs dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<thumb>http://cps-static.rovicorp.com/3/JPG_500/\1</thumb>" dest="2">
+ <expression noclean="1"><meta property="og:image" content="http://cps-static.rovicorp.com/3/JPG_[^/]*/([^"]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseAMGAlbumThumbs>
+
+
+ <GetAMGFakeBiographyByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-artist.html" function="ParseAMGFakeBiography">http://www.allmusic.com/artist/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFakeBiographyByAMGID>
+ <ParseAMGFakeBiography dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<biography>Fetching artist biography from allmusic.com is not possible due to copyright reasons.</biography>" dest="2">
+ <expression noclean="1" />
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseAMGFakeBiography>
+
+ <GetAMGFakeAlbumReviewByAMGID dest="5">
+ <RegExp input="$$1" output="<details><url cache="am-\1-album.html" function="ParseAMGFakeAlbumReview">http://www.allmusic.com/album/\1</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetAMGFakeAlbumReviewByAMGID>
+ <ParseAMGFakeAlbumReview dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<review>Fetching album review from allmusic.com is not possible due to copyright reasons.</review>" dest="2">
+ <expression noclean="1"/>
</RegExp>
<expression noclean="1" />
</RegExp>
- </ParseAMGAlbum>
+ </ParseAMGFakeAlbumReview>
+
</scraperfunctions>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<addon id="metadata.common.amazon.de"
+ name="Amazon.de"
+ version="1.0.0"
+ provider-name="Team XBMC">
+ <requires>
+ <import addon="xbmc.metadata" version="1.0"/>
+ </requires>
+ <extension point="xbmc.metadata.scraper.library"
+ library="amazonde.xml"/>
+ <extension point="xbmc.addon.metadata">
+ <platform>all</platform>
+ <minversion>20000</minversion>
+ <summary lang="en">amazon.de Scraper Library</summary>
+ <description lang="en">Download Music information from amazon.de</description>
+ </extension>
+</addon>
--- /dev/null
+<scraperfunctions>
+ <GetAmazonDEAlbumReviewByASIN dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseAmazonDEAlbumReview">http://www.amazon.de/exec/obidos/ASIN/\1</url></details>" dest="5">
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </GetAmazonDEAlbumReviewByASIN>
+ <ParseAmazonDEAlbumReview dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<review>\1</review>" dest="2">
+ <expression fixchars="1">Kurzbeschreibung</h3>\s*<div class="productDescriptionWrapper">(.*?)<div class</expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseAmazonDEAlbumReview>
+</scraperfunctions>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<addon id="metadata.common.fanart.tv"
+ name="fanart.tv"
+ version="1.1.0"
+ provider-name="Team XBMC">
+ <requires>
+ <import addon="xbmc.metadata" version="1.0"/>
+ </requires>
+ <extension point="xbmc.metadata.scraper.library"
+ library="fanarttv.xml"/>
+ <extension point="xbmc.addon.metadata">
+ <platform>all</platform>
+ <minversion>20000</minversion>
+ <summary lang="bg">Библиотека за сваляне на инф. от fanart.tv</summary>
+ <summary lang="en">fanart.tv Scraper Library</summary>
+ <summary lang="de">Scraper für Hintergründe von fanart.tv</summary>
+ <summary lang="es">Scraper de fanart.tv</summary>
+ <summary lang="fi">fanart.tv taustakuvalataajan kirjasto</summary>
+ <summary lang="fr">Scraper fanart.tv</summary>
+ <summary lang="hu">fanart.tv leolvasó-könyvtár</summary>
+ <summary lang="nl">fanart.tv-scraperfuncties</summary>
+ <summary lang="pl">Scraper biblioteki fanart.tv</summary>
+ <summary lang="pt">Biblioteca de fundos fanart.tv</summary>
+ <summary lang="ru">Обработчик Фоновых изображений с fanart.tv</summary>
+ <summary lang="se">Skrapa för fanart.tv</summary>
+ <summary lang="zh">fanart.tv刮削器代码库</summary>
+ <description lang="bg">Сваля декорации от www.fanart.tv.com</description>
+ <description lang="en">Download backdrops from www.fanart.tv.com</description>
+ <description lang="de">Downloade Hintergründe von www.fanart.tv.com</description>
+ <description lang="es">Descarga fanart y fotos de artistas de www.fanart.tv.com</description>
+ <description lang="fi">Lataa taustakuvia osoitteesta www.fanart.tv.com</description>
+ <description lang="fr">Télécharge les backdrops depuis www.htbackgrops.com</description>
+ <description lang="hu">Fanartképek letöltése www.fanart.tv.com webhelyről</description>
+ <description lang="nl">Achtergronden ophalen van www.fanart.tv.com</description>
+ <description lang="pl">Pobieraj tła z www.fanart.tv.com</description>
+ <description lang="pt">Descarregar fundos de www.fanart.tv.com</description>
+ <description lang="ru">Загружать фоновые изображения с www.fanart.tv.com</description>
+ <description lang="se">Ladda ner bakgrundsbilder från www.fanart.tv.com</description>
+ <description lang="zh">从www.fanart.tv.com下载背景图</description>
+ </extension>
+</addon>
--- /dev/null
+<scraperfunctions>
+ <GetFanartTvArtistThumbsByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseFanartTvArtistThumbs" cache="fanarttv-artistimages-\1.xml">http://fanart.tv/webservice/artist/ed4b784f97227358b31ca4dd966a04f1/\1/xml/</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetFanartTvArtistThumbsByMBID>
+ <ParseFanartTvArtistThumbs dest="5" clearbuffers="no">
+ <RegExp input="$$13" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="13">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<thumb preview="\1/preview">\1</thumb>" dest="13">
+ <expression repeat="yes" noclean="1"><artistthumb id="[^"]*" url="([^"]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseFanartTvArtistThumbs>
+
+ <GetFanartTvArtistFanartsByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseFanartTvArtistFanarts" cache="fanarttv-artistimages-\1.xml">http://fanart.tv/webservice/artist/ed4b784f97227358b31ca4dd966a04f1/\1/xml/</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetFanartTvArtistFanartsByMBID>
+ <ParseFanartTvArtistFanarts dest="5" clearbuffers="no">
+ <RegExp input="$$13" output="<details><fanart>\1</fanart></details>" dest="5">
+ <RegExp input="" output="" dest="13">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="14">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<thumb preview="\1/preview">\1</thumb>" dest="14">
+ <expression repeat="yes" noclean="1"><artistbackground id="[^"]*" url="([^"]*)</expression>
+ </RegExp>
+ <RegExp input="$$14" output="\1" dest="13">
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseFanartTvArtistFanarts>
+
+ <GetFanartTvAlbumThumbsByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseFanartTvAlbumThumbs" cache="fanarttv-albumimages-\1.xml">http://fanart.tv/webservice/album/ed4b784f97227358b31ca4dd966a04f1/\1/xml/</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetFanartTvAlbumThumbsByMBID>
+ <ParseFanartTvAlbumThumbs dest="5" clearbuffers="no">
+ <RegExp input="$$13" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="13">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<thumb preview="\1/preview">\1</thumb>" dest="13">
+ <expression repeat="yes" noclean="1"><albumcover id="[^"]*" url="([^"]*)</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseFanartTvAlbumThumbs>
+</scraperfunctions>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="metadata.common.htbackdrops.com"
name="HTBackdrops"
- version="1.0.7"
+ version="1.2.0"
provider-name="Team XBMC">
<requires>
<import addon="xbmc.metadata" version="1.0"/>
<scraperfunctions>
+ <GetHTBThumbsByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseHTBThumbs" post="yes" cache="htb-images-\1.xml">http://htbackdrops.com/api/7681a907c805e0670330c694e788e8e8/searchXML?mbid=\1&aid=1,5</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetHTBThumbsByMBID>
<GetHTBThumbs dest="5">
<RegExp input="$$1" output="<details><url function="ParseHTBThumbs" post="yes" cache="htb-images-\1.xml">http://htbackdrops.com/api/7681a907c805e0670330c694e788e8e8/searchXML?keywords=\1&default_operator=and&aid=1,5</url></details>" dest="5">
<expression noclean="1" />
</RegExp>
</GetHTBThumbs>
- <ParseHTBThumbs dest="5">
+ <ParseHTBThumbs dest="5" clearbuffers="no">
<RegExp input="$$13" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="13">
+ <expression />
+ </RegExp>
<RegExp input="$$1" output="<thumb preview="http://www.htbackdrops.com/api/7681a907c805e0670330c694e788e8e8/download/\1/thumbnail">http://www.htbackdrops.com/api/7681a907c805e0670330c694e788e8e8/download/\1/fullsize</thumb>" dest="13">
<expression repeat="yes" noclean="1"><id>([^<]+)</id>\n[^<]+<aid>5</aid></expression>
</RegExp>
- <expression noclean="1">(.+)</expression>
+ <expression noclean="1" />
</RegExp>
</ParseHTBThumbs>
+
+ <GetHTBFanartByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseHTBFanart" post="yes" cache="htb-images-\1.xml">http://htbackdrops.com/api/7681a907c805e0670330c694e788e8e8/searchXML?mbid=\1&aid=1,5</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetHTBFanartByMBID>
<GetHTBFanart dest="5">
<RegExp input="$$1" output="<details><url function="ParseHTBFanart" post="yes" cache="htb-images-\1.xml">http://htbackdrops.com/api/7681a907c805e0670330c694e788e8e8/searchXML?keywords=\1&default_operator=and&aid=1,5</url></details>" dest="5">
<expression noclean="1" />
</RegExp>
</GetHTBFanart>
- <ParseHTBFanart dest="5">
- <RegExp input="$$13" output="<details><fanart url="http://www.htbackdrops.com/">\1</fanart></details>" dest="5">
- <RegExp input="$$1" output="<thumb preview="api/7681a907c805e0670330c694e788e8e8/download/\1/thumbnail">api/7681a907c805e0670330c694e788e8e8/download/\1/fullsize</thumb>" dest="13">
+ <ParseHTBFanart dest="5" clearbuffers="no">
+ <RegExp input="$$13" output="<details><fanart>\1</fanart></details>" dest="5">
+ <RegExp input="" output="" dest="13">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="14">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<thumb preview="http://www.htbackdrops.com/api/7681a907c805e0670330c694e788e8e8/download/\1/thumbnail">http://www.htbackdrops.com/api/7681a907c805e0670330c694e788e8e8/download/\1/fullsize</thumb>" dest="14">
<expression repeat="yes" noclean="1"><id>([^<]+)</id>\n[^<]+<aid>1</aid></expression>
</RegExp>
- <expression noclean="1">(.+)</expression>
+ <RegExp input="$$14" output="\1" dest="13">
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ <expression noclean="1" />
</RegExp>
</ParseHTBFanart>
</scraperfunctions>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="metadata.common.last.fm"
name="Last.FM"
- version="1.1.0"
+ version="1.4.1"
provider-name="Team XBMC">
<requires>
<import addon="xbmc.metadata" version="1.0"/>
<scraperfunctions>
- <GetLastFMDiscography dest="5">
+ <GetLastFMDiscographyByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMDiscography" cache="lastfmdiscog-\1.xml">http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMDiscographyByMBID>
+ <GetLastFMDiscography dest="5" clearbuffers="no">
<RegExp input="$$1" output="<details><url function="ParseLastFMDiscography">http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&amp;artist=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b</url></details>" dest="5">
<expression noclean="1"/>
</RegExp>
</GetLastFMDiscography>
- <ParseLastFMDiscography dest="5">
+ <ParseLastFMDiscography dest="5" clearbuffers="no">
<RegExp input="$$2" output="<details>\1</details>" dest="5">
- <RegExp input="$$1" output="<album><title>\1</title></album>" dest="2+">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<album><title>\1</title></album>" dest="2">
<expression repeat="yes"><album[^>]*>[^<]*<name>([^<]*?)</name></expression>
</RegExp>
<expression noclean="1"/>
</RegExp>
</ParseLastFMDiscography>
- <GetLastFMArtistThumbsByID dest="5">
- <RegExp input="$$1" output="<details><url function="ParseLastFMArtistThumbs">http://ws.audioscrobbler.com/2.0/?method=artist.getimages&mbid=\1&api_key=71e468a84c1f40d4991ddccc46e40f1b</url></details>" dest="5">
+
+ <GetLastFMBiographyByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMBiography" cache="lastfmartistinfo-\1.xml">http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMBiographyByMBID>
+ <ParseLastFMBiography dest="5" clearbuffers="no">
+ <RegExp input="$$6" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="6">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="11">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="\1" dest="11">
+ <expression fixchars="1"><content><!\[CDATA\[(.*?)\]\]</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[biogfbsource]" output="<chain function="GetAMGFallbackBiographyByAMGID">$$9</chain>" dest="12">
+ <expression>allmusic.com</expression>
+ </RegExp>
+ <expression>^$</expression>
+ </RegExp>
+ <RegExp input="$$11" output="<biography>\1</biography>" dest="6">
+ <expression>(.+)</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseLastFMBiography>
+
+ <GetLastFMFallbackBiographyByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMFallbackBiography" cache="lastfmartistinfo-\1.xml">http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMFallbackBiographyByMBID>
+ <ParseLastFMFallbackBiography dest="5" clearbuffers="no">
+ <RegExp input="$$6" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="6">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<biography>\1</biography>" dest="6">
+ <expression fixchars="1"><content><!\[CDATA\[(.*?)\]\]</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseLastFMFallbackBiography>
+
+ <GetLastFMArtistGenresByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMArtistGenres" cache="lastfmgenres-\1.xml">http://ws.audioscrobbler.com/2.0/?method=artist.gettoptags&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMArtistGenresByMBID>
+ <ParseLastFMArtistGenres dest="5" clearbuffers="no">
+ <RegExp input="$$4" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="4">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<genre>\1</genre>" dest="11">
+ <expression noclean="1"><tag>.*?<name>([^/lt;]*)</name></expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="4">
+ <RegExp input="$INFO[genresfbsource]" output="<chain function="GetAMGFallbackArtistGenresByAMGID">$$9</chain>" dest="12">
+ <expression>allmusic.com</expression>
+ </RegExp>
+ <expression><genre></genre></expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="4">
+ <expression><genre>(.+)</genre></expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseLastFMArtistGenres>
+
+ <GetLastFMFallbackArtistGenresByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMFallbackArtistGenres" cache="lastfmgenres-\1.xml">http://ws.audioscrobbler.com/2.0/?method=artist.gettoptags&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMFallbackArtistGenresByMBID>
+ <ParseLastFMFallbackArtistGenres dest="5" clearbuffers="no">
+ <RegExp input="$$4" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="4">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<genre>\1</genre>" dest="4">
+ <expression noclean="1"><tag>.*?<name>([^/lt;]*)</name></expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseLastFMFallbackArtistGenres>
+
+ <GetLastFMArtistStylesByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMArtistStyles" cache="lastfmgenres-\1.xml">http://ws.audioscrobbler.com/2.0/?method=artist.gettoptags&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMArtistStylesByMBID>
+ <ParseLastFMArtistStyles dest="5" clearbuffers="no">
+ <RegExp input="$$4" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="4">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<style>\1</style>" dest="11">
+ <expression repeat="yes" noclean="1"><tag>.*?<name>([^/lt;]*)</name></expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="4">
+ <RegExp input="$INFO[genresfbsource]" output="<chain function="GetAMGFallbackArtistStylesByAMGID">$$9</chain>" dest="12">
+ <expression>allmusic.com</expression>
+ </RegExp>
+ <expression><style></style></expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="4">
+ <expression><style>(.+)</style></expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseLastFMArtistStyles>
+
+ <GetLastFMFallbackArtistStylesByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMFallbackArtistStyles" cache="lastfmgenres-\1.xml">http://ws.audioscrobbler.com/2.0/?method=artist.gettoptags&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMFallbackArtistStylesByMBID>
+ <ParseLastFMFallbackArtistStyles dest="5" clearbuffers="no">
+ <RegExp input="$$4" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="4">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<style>\1</style>" dest="4">
+ <expression repeat="yes" noclean="1"><tag>.*?<name>([^/lt;]*)</name></expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseLastFMFallbackArtistStyles>
+
+ <GetLastFMArtistThumbsByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMArtistThumbs" cache="lastfmartistimages-\1.xml">http://ws.audioscrobbler.com/2.0/?method=artist.getimages&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
<expression noclean="1" />
</RegExp>
- </GetLastFMArtistThumbsByID>
- <GetLastFMArtistThumbsByName dest="5">
- <RegExp input="$$1" output="<details><url function="ParseLastFMArtistThumbs">http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=\1&api_key=71e468a84c1f40d4991ddccc46e40f1b</url></details>" dest="5">
+ </GetLastFMArtistThumbsByMBID>
+ <GetLastFMArtistThumbsByName dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMArtistThumbs">http://ws.audioscrobbler.com/2.0/?method=artist.getimages&amp;artist=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
<expression noclean="1" />
</RegExp>
</GetLastFMArtistThumbsByName>
- <ParseLastFMArtistThumbs dest="5">
+ <ParseLastFMArtistThumbs dest="5" clearbuffers="no">
<RegExp input="$$6" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="6">
+ <expression />
+ </RegExp>
<RegExp input="$$1" output="<thumb preview="\2">\1</thumb>" dest="6">
- <expression repeat="yes" noclean="1"><size name="original"[^>]*>([^<]*)<[^<]*<size name="large"[^>]*>([^<]*)<</expression>
+ <expression repeat="yes" noclean="1"><size name="original"[^>]*>([^<]*)<[^<]*<size name="large"[^>]*>([^<]*)<</expression>
</RegExp>
- <expression noclean="1">(.+)</expression>
+ <expression noclean="1" />
</RegExp>
</ParseLastFMArtistThumbs>
+
+
+ <GetLastFMAlbumTitleByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumTitle" cache="lastfmalbum-\1.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMAlbumTitleByMBID>
+ <GetLastFMAlbumTitleByAlbumAndArtist dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumTitle" cache="lastfmalbum-\4-\3.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=\2&amp;album=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression encode="1,2">(.+)::(.+)::(.+)::(.+)</expression>
+ </RegExp>
+ </GetLastFMAlbumTitleByAlbumAndArtist>
+ <ParseLastFMAlbumTitle dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<title>\1</title>" dest="2">
+ <expression noclean="1"><name>(.*?)</name></expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseLastFMAlbumTitle>
+
+ <GetLastFMAlbumArtistByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumArtist" cache="lastfmalbum-\1.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMAlbumArtistByMBID>
+ <GetLastFMAlbumArtistByAlbumAndArtist dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumArtist" cache="lastfmalbum-\4-\3.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=\2&amp;album=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression encode="1,2">(.+)::(.+)::(.+)::(.+)</expression>
+ </RegExp>
+ </GetLastFMAlbumArtistByAlbumAndArtist>
+ <ParseLastFMAlbumArtist dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<artist>\1</artist>" dest="2">
+ <expression noclean="1"><artist>(.*?)</artist></expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseLastFMAlbumArtist>
+
+ <GetLastFMAlbumDateByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumDate" cache="lastfmalbum-\1.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMAlbumDateByMBID>
+ <GetLastFMAlbumDateByAlbumAndArtist dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumDate" cache="lastfmalbum-\4-\3.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=\2&amp;album=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression encode="1,2">(.+)::(.+)::(.+)::(.+)</expression>
+ </RegExp>
+ </GetLastFMAlbumDateByAlbumAndArtist>
+ <ParseLastFMAlbumDate dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<releasedate>\1</releasedate>" dest="2">
+ <expression trim="1"><releasedate>([^,]*)?([^<]*)?</releasedate></expression>
+ </RegExp>
+ <RegExp input="$$1" output="<year>\1</year>" dest="2+">
+ <expression trim="1"><releasedate>.*?([0-9]{4})[^<]*</releasedate></expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseLastFMAlbumDate>
+
+ <GetLastFMAlbumTracksByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumTracks" cache="lastfmalbum-\1.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMAlbumTracksByMBID>
+ <GetLastFMAlbumTracksByAlbumAndArtist dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumTracks" cache="lastfmalbum-\4-\3.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=\2&amp;album=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression encode="1,2">(.+)::(.+)::(.+)::(.+)</expression>
+ </RegExp>
+ </GetLastFMAlbumTracksByAlbumAndArtist>
+ <ParseLastFMAlbumTracks dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<track><position>\1</position><title>\2</title></track>" dest="2">
+ <expression repeat="yes" noclean="1"><track rank="(.*?)".*?<name>(.*?)</name></expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseLastFMAlbumTracks>
+
+ <GetLastFMAlbumReviewByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumReview" cache="lastfmalbum-\1.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMAlbumReviewByMBID>
+ <GetLastFMAlbumReviewByAlbumAndArtist dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumReview" cache="lastfmalbum-\4-\3.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=\2&amp;album=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression encode="1,2">(.+)::(.+)::(.+)::(.+)</expression>
+ </RegExp>
+ </GetLastFMAlbumReviewByAlbumAndArtist>
+ <ParseLastFMAlbumReview dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<review>\1</review>" dest="2">
+ <expression fixchars="1"><content><!\[CDATA\[(.*?)(User-|\]\])</expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseLastFMAlbumReview>
+
+ <GetLastFMAlbumThumbsByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumThumbs" cache="lastfmalbum-\1.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&amp;mbid=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression noclean="1"/>
+ </RegExp>
+ </GetLastFMAlbumThumbsByMBID>
<GetLastFMAlbumThumbs dest="5">
- <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumThumbs">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=\2&album=\1&api_key=71e468a84c1f40d4991ddccc46e40f1b</url></details>" dest="5">
- <expression>(.+)::(.+)</expression>
+ <RegExp input="$$1" output="<details><url function="ParseLastFMAlbumThumbs" cache="lastfmalbum-\4-\3.xml">http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist=\2&amp;album=\1&amp;api_key=71e468a84c1f40d4991ddccc46e40f1b&lang=$INFO[lastfmlanguage]</url></details>" dest="5">
+ <expression encode="1,2">(.+)::(.+)::(.+)::(.+)</expression>
</RegExp>
</GetLastFMAlbumThumbs>
<ParseLastFMAlbumThumbs dest="5">
<RegExp input="$$1" output="<thumb>\1</thumb>" dest="2+">
<expression noclean="1"><image size="large">([^<]*)</image></expression>
</RegExp>
- <expression noclean="1"></expression>
+ <expression noclean="1">(.+)</expression>
</RegExp>
</ParseLastFMAlbumThumbs>
+
</scraperfunctions>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<addon id="metadata.common.musicbrainz.org"
+ name="musicbrainz"
+ version="1.2.3"
+ provider-name="Team XBMC">
+ <requires>
+ <import addon="xbmc.metadata" version="1.0"/>
+ </requires>
+ <extension point="xbmc.metadata.scraper.library"
+ library="musicbrainz.xml"/>
+ <extension point="xbmc.addon.metadata">
+ <platform>all</platform>
+ <minversion>20000</minversion>
+ <summary lang="bg">Библиотека за сваляне на музикална инф. от MusicBrainz</summary>
+ <summary lang="en">MusicBrainz Music Scraper Library</summary>
+ <summary lang="de">Musik-Scraper für musicbrainz.org</summary>
+ <summary lang="es">Scraper de música de MusicBrainz</summary>
+ <summary lang="fi">MusicBrainz musiikkitietojen lataajan kirjasto</summary>
+ <summary lang="fr">Scraper MusicBrainz pour la musique</summary>
+ <summary lang="hu">MusicBrainz zenei adat leolvasó</summary>
+ <summary lang="nl">MusicBrainz-scraperfuncties</summary>
+ <summary lang="pl">Scraper muzyki MusicBrainz</summary>
+ <summary lang="pt">Scraper de música MusicBrainz</summary>
+ <summary lang="ro">Bibliotecă catalog de muzică MusicBrainz</summary>
+ <summary lang="ru">Музыкальная Информация MusicBrainz</summary>
+ <summary lang="se">Skrapa för musicbrainz.org</summary>
+ <summary lang="zh">MusicBrainz音乐刮削器代码库</summary>
+ <description lang="bg">Извлича инф. за музикални файлове от www.musicbrainz.org</description>
+ <description lang="en">Download Music information from www.musicbrainz.org</description>
+ <description lang="de">Downloade Musik Informationen von www.musicbrainz.org</description>
+ <description lang="es">Descarga información musical de www.musicbrainz.org</description>
+ <description lang="fi">Lataa musiikkitietoja osoitteesta www.musicbrainz.org</description>
+ <description lang="fr">Télécharger les infos musicales depuis www.musicbrainz.org</description>
+ <description lang="hu">Zene információk letöltése a www.musicbrainz.org webhelyről</description>
+ <description lang="nl">Muziekinformatie ophalen van www.musicbrainz.org</description>
+ <description lang="pl">Pobieraj informacje o muzyce z www.musicbrainz.org</description>
+ <description lang="pt">Descarregar informação de música de www.musicbrainz.org</description>
+ <description lang="ro">Descărcați informații muzică de pe www.musicbrainz.org</description>
+ <description lang="ru">Загружать информацию о Музыке с www.musicbrainz.org</description>
+ <description lang="se">Ladda ner musikinformation från www.musicbrainz.org</description>
+ <description lang="zh">从www.musicbrainz.org下载音乐信息</description>
+ </extension>
+</addon>
--- /dev/null
+<scraperfunctions>
+ <GetMBDiscographyByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseMBDiscography" cache="mb-\1-discog.xml">http://musicbrainz.org/ws/2/release-group?artist=\1&amp;limit=100&amp;type=album</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBDiscographyByMBID>
+ <ParseMBDiscography dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<album><year>\4</year><title>\2</title><label>\1</label></album>" dest="2">
+ <expression repeat="yes" clear="yes" fixchars="1,2,3" noclean="1,2,3"> type="Album" id="([^"]*)"><title>([^<]*)</title><first-release-date(\s/)?>(\d{4})?</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseMBDiscography>
+
+ <GetMBLafeSpanByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseMBLifeSpan" cache="mb-\1-artist.xml">http://www.musicbrainz.org/ws/2/artist/\1?inc=url-rels</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBLafeSpanByMBID>
+ <ParseMBLifeSpan dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="" output="" dest="11">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<born>\1</born>" dest="11">
+ <expression><artist type="Person".*?<life-span><begin>([^<]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<died>\1</died>" dest="11+">
+ <expression><artist type="Person".*?<life-span><begin>[^<]*</begin><end>([^<]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<formed>\1</formed>" dest="11">
+ <expression><artist type="Group".*?<life-span><begin>([^<]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="11+">
+ <expression><artist type="Group".*?<life-span><begin>[^<]*</begin><end>([^<]*)</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$12" dest="2">
+ <RegExp input="$INFO[lifespanfbsource]" output="<chain function="GetAMGFallbackArtistLifeSpanByAMGID">$$9</chain>" dest="12">
+ <expression>allmusic.com</expression>
+ </RegExp>
+ <expression>^$</expression>
+ </RegExp>
+ <RegExp input="$$11" output="$$11" dest="2">
+ <expression noclean="1"><(?:born|formed)*>(.+)</(?:born|formed)*></expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseMBLifeSpan>
+
+ <GetMBFallbackLafeSpanByMBID dest="5" clearbuffers="no">
+ <RegExp input="$$1" output="<details><url function="ParseFallbackMBLifeSpan" cache="mb-\1-artist.xml">http://www.musicbrainz.org/ws/2/artist/\1?inc=url-rels</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBFallbackLafeSpanByMBID>
+ <ParseFallbackMBLifeSpan dest="5" clearbuffers="no">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="" output="" dest="2">
+ <expression />
+ </RegExp>
+ <RegExp input="$$1" output="<born>\1</born>" dest="2">
+ <expression><artist type="Person".*?<life-span><begin>([^<]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<died>\1</died>" dest="2+">
+ <expression><artist type="Person".*?<life-span><begin>[^<]*</begin><end>([^<]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<formed>\1</formed>" dest="2">
+ <expression><artist type="Group".*?<life-span><begin>([^<]*)</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<disbanded>\1</disbanded>" dest="2+">
+ <expression><artist type="Group".*?<life-span><begin>[^<]*</begin><end>([^<]*)</expression>
+ </RegExp>
+ <expression noclean="1"/>
+ </RegExp>
+ </ParseFallbackMBLifeSpan>
+
+ <GetMBAlbumTitleByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseMBAlbumTitle" cache="mb-\1-album.xml">http://musicbrainz.org/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBAlbumTitleByMBID>
+ <ParseMBAlbumTitle dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<title>\1</title>" dest="2">
+ <expression noclean="1"><release id="[^"]*"><title>([^<]*)<</expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseMBAlbumTitle>
+
+ <GetMBAlbumArtistByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseMBAlbumArtist" cache="mb-\1-album.xml">http://musicbrainz.org/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBAlbumArtistByMBID>
+ <ParseMBAlbumArtist dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<artist>\1</artist>" dest="2">
+ <expression noclean="1"><artist id="[^"]*"><name>([^<]*)<</expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseMBAlbumArtist>
+
+ <GetMBAlbumRatingByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseMBAlbumRating" cache="mb-\1-album.xml">http://musicbrainz.org/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBAlbumRatingByMBID>
+ <ParseMBAlbumRating dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<rating>\1</rating>" dest="2">
+ <expression noclean="1"></primary-type><rating votes-count="[^"]*">(\d)</expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseMBAlbumRating>
+
+ <GetMBAlbumLabelByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseMBAlbumLabel" cache="mb-\1-album.xml">http://musicbrainz.org/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBAlbumLabelByMBID>
+ <ParseMBAlbumLabel dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<label>\1</label>" dest="2">
+ <expression noclean="1"><label id="[^"]*"><name>([^<]*)</expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseMBAlbumLabel>
+
+ <GetMBAlbumDateByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseMBAlbumDate" cache="mb-\1-album.xml">http://musicbrainz.org/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBAlbumDateByMBID>
+ <ParseMBAlbumDate dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<releasedate>\1</releasedate>" dest="2">
+ <expression noclean="1"><first-release-date>([^<]*)<</expression>
+ </RegExp>
+ <RegExp input="$$1" output="<year>\1</year>" dest="2+">
+ <expression noclean="1"><first-release-date>(\d{4})</expression>
+ </RegExp>
+ <expression noclean="1" />
+ </RegExp>
+ </ParseMBAlbumDate>
+
+ <GetMBAlbumTracksByMBID dest="5">
+ <RegExp input="$$1" output="<details><url function="ParseMBAlbumTracks" cache="mb-\1-album.xml">http://musicbrainz.org/ws/2/release/\1?inc=recordings+release-groups+artists+labels+ratings</url></details>" dest="5">
+ <expression noclean="1" />
+ </RegExp>
+ </GetMBAlbumTracksByMBID>
+ <ParseMBAlbumTracks dest="5">
+ <RegExp input="$$2" output="<details>\1</details>" dest="5">
+ <RegExp input="$$1" output="<track><position>\1</position><title>\4</title><duration>\2</duration></track>" dest="2">
+ <expression repeat="yes"><track><position>(\d+)</position><number>\d*</number>(?:<length>(\d*?)\d{3}</length>)*(?:<recording id="([^"]*)">)*<title>([^<]*)<</expression>
+ </RegExp>
+ <expression noclean="1">(.+)</expression>
+ </RegExp>
+ </ParseMBAlbumTracks>
+
+</scraperfunctions>