Понадобилось мне тут показывать обложки для песен в плеере на сайте
онлайн радиостанции 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'); }
Обложек для российских исполнителей очень мало. А учитывая формат радио, то просто хрен да маленько...
Ну по коду понятно, если нашли забираем себе на всякий пожарный и выдаём со своего сервера. Думаю код достаточно понятный. Если что спрашивайте в комментариях.
Ну и где доказательства про 18 запусков у маска в 2018 году? Или ты предпочтешь и тут...