Last.fm has crappy logos. There might be good information about them, at least for the major labels, but the logos will typically look awful. Fortunately for you, I'm about to release my theme which uses record labels, about half of which I created myself and the rest were uploaded by other users of fanart.tv.
Download recordlabels.rar.
The images come in two sizes: 400x270 which is the majority, and 161x109 (which is 2.48x smaller than the larger ones). The smaller size ones generally suck, but they are hard to find good art to replace. My theme strips out " Music", " Records" and " Recordings" so that I don't have to keep two images when musicbrainz or other places decide to list a label as "Electra Records" in one place and "Electra" in another.
Here's the code I'm using to retrieve them from a specific folder where you've unrar'd them, but I'll leave it up to you how you want to display them:
pref["label_base"] = fb.ProfilePath+"images/recordlabel/";
function LoadLabelImage(publisherString) {
recordLabel = null;
d = new Date();
labelStr = fb.TitleFormat(publisherString).Eval().replace(']','').replace('[','').replace(':',"");
if (labelStr) {
/* First check for record label folder */
lastSrchYear = d.getFullYear();
fb.trace(lastSrchYear);
dir = pref["label_base"]; // also used below
if (utils.FileTest(dir+labelStr, "d") ||
utils.FileTest(dir + (labelStr = labelStr.replace(/ Records$/,"").replace(/ Recordings$/,"").replace(/ Music$/,"")),"d")) {
year = parseInt(fb.TitleFormat("%date%").Eval());
for (; year <= lastSrchYear; year++) {
yearFolder = dir + labelStr + "\\" + year;
if (utils.FileTest(yearFolder, "d")) {
fb.trace("Found folder for "+labelStr+" for year "+year+".");
dir += labelStr+"\\"+ year + "\\";
break;
}
}
if (year > lastSrchYear) {
dir += labelStr+"\\"; /* we didn't find a year folder so use the "default" logo in the root */
}
}
/* actually load the label from either the directory we found above, or the base record label folder */
labelStr = fb.TitleFormat(publisherString).Eval().replace(']','').replace('[','').replace(':',""); // start over with the original string to be safe
label = dir+labelStr+".png";
if (utils.FileTest(label, "e"))
recordLabel = gdi.Image(label);
else {
labelStr = labelStr.replace(/ Records$/,"").replace(/ Recordings$/,"").replace(/ Music$/,"");
label = dir+labelStr+".png";
if (utils.FileTest(label, "e")) {
recordLabel = gdi.Image(label);
} else {
label = dir+labelStr+" Records.png";
if (utils.FileTest(label, "e"))
recordLabel = gdi.Image(label);
}
}
}
return recordLabel;
}
This assumes you unrar the file to "%appdata%/foobar2000/images/". publisherString would be a title formatted string something like: $meta(label,0), although in my theme I build up an array of strings to try, and then iterate through them looking for labels which allows me to display more than one label if needed. One of the cool features is that for labels that have changed their logo over time (like Epic) I have a sub folder with different years for when the logo changed. So an album with %date% of 1975 would pull from "Epic/1976/epic.png" to display the old sunburst logo while anything after 2010 would use the current Epic logo.