Понадобилось мне тут показывать обложки для песен в плеере на сайте 
онлайн радиостанции chebfm и тут проблема что lastfm прикрыт он на территории РФ что есть очередной повод искать 
трактор замену сервису. Вы скажете ну есть же musicbrainz!
 Да шикарный сервис с шикарным API всё просто:
 Делаем запрос на урл 
Код PHP:file_get_contents('http://www.musicbrainz.org/ws/2/recording?query='+title
+'AND artist:'+artist
); 
 Получаем XML строку которую разбираем, находим Release ID дальше ещё один запрос: 
Который нас переправляет на  
Код PHP:http://archive.org/download/mbid-RELEASE_ID/index.json
 И да опять жопа - 
archive.org заблочен в РФ...клёва да? 
  Выбор пал на iTunes, его то ещё не закрыли...пока...
 Итак, первый пункт убрать мусор чтобы искалось легче...готовим список замен: 
Код PHP:            "(" => "+",
            ")" => "+",
            " и " => "+",
            " feat " => "+",
            " - " => "+"
        );
 Можете добавить свои, мне пока хватило. Дальше будет магия 

 На входе в функцию я имею масив array такого формата
 ID - Номер песни в базе
 ARTIST - Исполнитель - тут и требуются чаще всего замены всего и вся на плюсы чтобы поисковику было проще искать
 TRACK - Название трека
 Ваши входные данные могут отличаться - я просто имя файла обложки формирую относительно ID песни, вы можете на основе чего либо другого. Короче решайте сами: Глядим в код: 
Код PHP: //Запрос к ITUNES формируем:
$string = file_get_contents('https://itunes.apple.com/search?term='.strtr($song['artist'],$convert_array)."+".strtr($song['title'],$convert_array)); //Из него получаем JSON строку и формируем из неё ассоциированный массив
 
if($object['resultCount'] == 0)
{
//Если ни чего не нашли по запросу, пробуем ещё раз но только с именем артиста, вдруг повезёт
//Если не повезло говорим мол ребята простите нифига
    if($object['resultCount'] == 0)
    {
        return false;
    }
    else
    {
//Если повезло найти что то по артисту - берём первую попавшуюся обложку артиста...
        copy($object['results'][0]['artworkUrl100'],$_SERVER['DOCUMENT_ROOT']."/upload/song/covers/".md5($song['id']).'.jpg');     }
}
else
{
//Если нашли по треку и артисту забираем её себе.
    copy($object['results'][0]['artworkUrl100'],$_SERVER['DOCUMENT_ROOT']."/upload/song/covers/".md5($song['id']).'.jpg'); }
 Обложек для российских исполнителей очень мало. А учитывая формат радио, то просто хрен да маленько...
 Ну по коду понятно, если нашли забираем себе на всякий пожарный и выдаём со своего сервера. Думаю код достаточно понятный. Если что спрашивайте в комментариях.