Стырить превьюшки из Last.fm

Статус
В этой теме нельзя размещать новые ответы.

Albert22

Старатель
Регистрация
30 Мар 2008
Сообщения
270
Реакции
11
Небезызвестный сервис Для просмотра ссылки Войди или Зарегистрируйся располагает достаточно обширной музыкальной базой, более того предоставляет Для просмотра ссылки Войди или Зарегистрируйся. Эти два факта, а также возможность прослушать короткие отрезки песен заинтересовали меня т.к. мне эта самая прослушка для одного проекта со списком песен очень кстати.
Я начал с того что тупо скопипастил исходный код плеера на их сайте. Вот как он выглядит Для просмотра ссылки Войди или Зарегистрируйся:
Код:
<div style="visibility: visible;" id="lfmPlayer_container">
<embed type="application/x-shockwave-flash" src="http://cdn.last.fm/webclient/s12n/s/5/lfmPlayer.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" menu="true" quality="high" wmode="transparent" bgcolor="#fff" flashvars="lang=en&amp;lfmMode=playlist&amp;FOD=true&amp;resourceID=1016509&amp;resname=What+a+Wonderful+World&amp;restype=track&amp;artist=Louis+Armstrong&amp;albumArt=http%3A%2F%2Fuserserve-ak.last.fm%2Fserve%2F64s%2F21596561.jpg" allowscriptaccess="always" allowfullscreen="true" id="lfmPlayer" name="lfmPlayer" swliveconnect="true" align="middle" width="300" height="221">
</div>
<script>
var lfmPlayer_params = {"movie":"http:\/\/cdn.last.fm\/webclient\/s12n\/s\/5\/lfmPlayer.swf","flashvars":"lang=en&lfmMode=playlist&FOD=true&resourceID=1016509&resname=What+a+Wonderful+World&restype=track&artist=Louis+Armstrong&albumArt=http%3A%2F%2Fuserserve-ak.last.fm%2Fserve%2F64s%2F21596561.jpg","width":300,"height":221,"majorversion":7,"build":"0","allowscriptaccess":"always","allownetworking":"all","allowfullscreen":"true","quality":"high","bgcolor":"#fff","wmode":"transparent","menu":"true","id":"lfmPlayer","setcontainercss":false,"swliveconnect":"true","name":"lfmPlayer","align":"middle"};
UFO.create(lfmPlayer_params, "lfmPlayer_container");
</script>
После небольшой обработки напильником он приобрёл следующий вид (таким я его у себя на сайте и разместил)
Код:
<object type="application/x-shockwave-flash" data="http://cdn.last.fm/webclient/s12n/s/5/lfmPlayer.swf" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
        id="lfmPlayer" name="lfmPlayer" align="middle"
        width="300" height="221">
    <param name="movie" value="http://cdn.last.fm/webclient/s12n/s/5/lfmPlayer.swf" />
    <param name="flashvars" value="lang=ru&amp;lfmMode=playlist&amp;FOD=true&amp;resname=What+a+Wonderful+World&amp;restype=track&amp;artist=Louis+Armstrong&amp;autostart=true" />
    <param name="allowScriptAccess" value="always" />
    <param name="allowNetworking" value="all" />
    <param name="allowFullScreen" value="true" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="fff" />
    <param name="wmode" value="transparent" />
</object>
Самая важная там эта строка:
Код:
<param name="flashvars" value="lang=ru&amp;lfmMode=playlist&amp;FOD=true&amp;resname=What+a+Wonderful+World&amp;restype=track&amp;artist=Louis+Armstrong&amp;autostart=true" />
В оригинале там присутствует ещё и resourceID=1016509. Я не знал что это, и попробовал убрать его.
Работать продолжило, и я забыл об этой строке.
Вообще, самое чёткое у них — то, что передаёшь только исполнителя и название песни и ему этого хватает! Очень гибко и удобно.
Но, плеер за рамками их сайта работает дубово — многие кнопки (типа «Buy this CD») не работают. Мне этот вариант не очень нравится (а если бы работали — тем более бы не понравился), поэтому я начал выискивать откуда их проигрыватель достаёт эти mp3 сэмплы чтобы их потом передать этому плееру.
Наверняка где-то есть некий php скрипт который принимает
resname=What+a+Wonderful+World&amp;restype=track&amp;artist=Louis+Armstrong
а в ответ выдаёт ссылку на вот это:
которое редиректит на ту самую превьюшку для их плеера:
Эти ссылки я достал вручную через плагин-медиаграббер Firefox'a. А нужно это сделать автоматически и на PHP.
Кстати, я потом нашёл что это за resourceID=1016509 благодаря тем самым API: это элемент id
Для просмотра ссылки Войди или Зарегистрируйся
Код:
<lfm status="ok">
<track>
<id>1016509</id>
<name>What a Wonderful World</name>
<url>
http://www.last.fm/music/Louis+Armstrong/_/What+a+Wonderful+World
</url>
<duration>134000</duration>
<streamable fulltrack="0">1</streamable>
<listeners>215073</listeners>
<playcount>891826</playcount>
<artist>
<name>Louis Armstrong</name>
<mbid>eea8a864-fcda-4602-9569-38ab446decd6</mbid>
<url>http://www.last.fm/music/Louis+Armstrong</url>
</artist>
<album position="13">
<artist>Louis Armstrong</artist>
<title>Greatest Hits</title>
<mbid>9b07899a-57bd-491c-8360-355e6ee9b2bb</mbid>
<url>
http://www.last.fm/music/Louis+Armstrong/Greatest+Hits
</url>
<image size="small">http://userserve-ak.last.fm/serve/64s/21596561.jpg</image>
<image size="medium">http://userserve-ak.last.fm/serve/126/21596561.jpg</image>
<image size="large">
http://userserve-ak.last.fm/serve/174s/21596561.jpg
</image>
</album>
... вырезал ...
</track>
</lfm>
Итак, всё, что передаётся их плееру на их сайте у меня есть: это исполнитель и название песни, а также resourceID, который легко достаётся из их же общедоступного XML источника.
Вот мне и интересно, как достать mp3 сэмпл для конкретной песни? Чтобы потом передать его какому-то стороннему плееру наподобие Для просмотра ссылки Войди или Зарегистрируйся и успокоиться...)

Добавлено через 15 минут
UPD:
Обратил повышенное внимание на
Как видим, там единственный задающий параметр — 111088900.
Попробовал методом тыка подсунуть туда полученный посредством XML id, соответственно вот что получилось:
Я не знаю совпадение ли это или ответ на вышепоставленный вопрос, но заиграла та же композиция, но в другой версии...
 
Так надо было постить в раздел о PHP.
 
Кстати да, насчёт раздела: я, если честно, затруднился в выборе.
Если есть более подходящий, переместите пожалуйста!
ModeX, ведь вопрос-то по сути не о PHP. Его вообще ни к какому из существующих разделов, как по-моему, нельзя расквалифицировать. Значит, в оффтопик, и из присутствующих там разделов я выбрал этот.

Добавлено через 15 минут
UPD UPD:
XML-ный id песни Coldplay — Viva la vida 182293060.
Однако, файла Для просмотра ссылки Войди или Зарегистрируйся не существует...
 
Скачал плеер, засунул в Adobe Flash CS4, тот что-то ругнулся и заглючил. Выдал что swf-файл лезет к
Код:
http://ext.last.fm//1.0/webclient/xmlrpc.php
Вбив этот адрес в гугл, попал на интересный материал: Для просмотра ссылки Войди или Зарегистрируйся
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху