С давних пор, когда я еще был активным пользователем сети Фидонет, мне безумно нравилось использовать плагин для Winamp, который генерировал строку прослушиваемой в данный момент композиции. После перехода на foobar2000 я продолжал его использовать.
Это увлечение вылилось в подключение к last.fm, куда я с 2008 года вливаю информацию о прослушиваемой музыке.
В прошлом году меня заусило снова выводить информацию о прослушиваемой музыки куда-нибудь публично помимо last.fm. Я пытался вывести ее на свой сайт, но как я понял, строка кешировалась и не обновлялась в реальном времени.
Некоторое время спустя я наткнулся на сайт, посвещенный всяким вконтактовским штукам. Там были дурацкие скрипты авто-статусов (типа количество друзей, температура в городе, текущее время и тому подобное). Угадайте, что я сделал =)
Правильно. Скрипт для авто-статуса вконтакте, который отображает воспроизводимую в данный момент композицию. Информацию я решил брать с last.fm
Скрипт написан на php. Для его работы потребуется php-хостинг и планировщик, который будет регулярно запускать этот скрипт. Я запускаю его раз в три минуты
*/3 * * * * /путь/до/php -q /путь/до/скрипта/lasfm2vk.php
Для доступа к last.fm используется API.
- API_KEY получают тут: http://www.lastfm.ru/api/accounts
- USER – имя пользователя в lastfm
так же потребуется токен. Его брать тут: http://u.to/token-vk-dlja-avtostatusa/EnTlBQ
https://oauth.vk.com/authorize?client_id=5781735&scope=status&response_type=token
Сам скрипт такой:
<?php $access_token = 'TOKEN&v=5.126'; function scrobbler() { $request_url = 'http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=USER&api_key=API_KEY'; $xml = simplexml_load_file ($request_url); $title = $xml->recenttracks->track->name; $artist = $xml->recenttracks->track->artist; $album = $xml->recenttracks->track->album; $nowplaying = $xml->recenttracks->track->attributes()->nowplaying; if (!is_null($nowplaying) && $nowplaying == 'true') { return '? ' . $artist . ' / ' . $album . ' / ' . $title; } return '?'; } $lastfm = scrobbler(); #$status = $lastfm; $status = scrobbler(); $url = curl('https://api.vk.com/method/status.set?text='.urlencode($status).'&access_token='.$access_token); function curl( $url ){ $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); $response = curl_exec( $ch ); curl_close( $ch ); return $response; } ?>
При работе скрипт отображает статус таким образом
Если ничего не воспроизводится, то статус становится таким
круто!спасибо
Спасибо. Отличная штука )
np:sleep – самый популярный статус в ФидоНете был.