Только что пришли с зеленого сайта? — расслабьтесь: здесь не будет зеленого.

Кстати, у нас новинка: после долгого отсутствия Жанет снова возвращается в родной контакт, Оперу и Firefox. Но, к сожалению, пока не в Хром. Надеюсь мы, пользователи Хрома, ее дождемся.

Что это?

Очень много людей слушают музыку вконтакте. Не меньше людей любят скробблить свои прослушивания на Last.fm. Janeth vkontakte-scrobbler создан для того, чтобы совместить эти два пристрастия. Если вы не пользуетесь ни тем, ни другим, информация на этой странице может быть для вас неинтересна.

Собственно говоря, эта штука есть user-скрипт (расширение) для браузеров Opera, Firefox и Google Chrome, которое автоматически отправляет информацию о прослушанных композициях на сервер Last.fm. Разумеется, «listening-now» оповещения тоже отправляются.

Пока что скробблер находится в бета-версии, так что возможны всякие разные глюки. Просьба сообщить о них в комментариях к заметке вконтакте. И проверяйте появление обновлений здесь на сайте почаще (текущая версия в заголовке страницы).

Скриншоты

scrobbler in opera

В Опере

scrobbler in firefox

В Firefox

playing on a group page

На странице группы

Разве не прелесть?

О безопасности

Хорошей новостью будет то, что скрипт вообще не запрашивает вашего пароля ни от вконтакте, ни от Last.fm (и, стало быть, нигде не хранит и никуда не отправляет). Не то, что я просто вам это обещаю, любой может сам проверить это, так как исходники полностью открыты.

Применение

Собственно говоря, делать ничего не надо. Установите скрипт, слушайте музыку, получайте рекомендации на Last.fm, смотрите статистику. Оно будет работать само.

Однако пытливому читателю, я все же расскажу чуть-чуть подробнее. Лишь только вы установите скрипт и загрузите любую страницу с аудиозаписями вконтакте в правом верхнем углу (или ниже меню, если это страница профиля или группы) появится значок Last.fm. Он бывает:

Когда вы слушаете песню рядом отображается забавная иконка playing icon (анимированная, пока песня играет, и остановленная во время паузы). А во всплывающей подсказке к ней пишут, сколько времени осталось играть песни до того, как она заскробблится. После отправки на сервер информации о том, что вы прослушали песню, появится галочка или крестик, показывающие, успешно ли все прошло.

Если кликнуть во время проигрывания на вышеупомянутую забавную иконку, можно отредактировать автора и название композиции, которые будут отправлены на last.fm, а также форсировать или отменить отправку.

Установка

Проверено, Жанет работает в Opera 9.6—10.5, Firefox 3­­—3.6 (Greasemonkey 0.8) и еще в Google Chrome 2.0 и 3.0 (но не в 4.0 и выше). Впрочем, если у вас другая версия браузера все равно попробуйте — скорее всего, все будет нормально.

В будущем возможно портирование скробблера под IE и Safari. Если вы JS-разработчик, можете этим заняться. А если нет, просто заходите почаще ;).

Итак, внимание, главная кнопка:

ff iconFirefox

  1. Установите расширение Greasemonkey.
  2. Перейдите по ссылке «Установить» выше и согласитесь на установку скрипта.
  3. ???
  4. profit ;)

После этого на страницах с аудиозаписями вконтакте появится кнопочка Last.fm, и при проигрывании будет отображаться статус скробблера.

opera iconOpera

Здесь чуть посложнее.

  1. Сначала создайте папку, в которую будете складывать user-скрипты, в любом удобном месте.
  2. Кликните кнопку «Установить» выше и сохраните скрипт в выбранную папку.
  3. Затем откройте окно настроек Оперы (Tools — Preferences или Инструменты — Настройки) и на вкладке Advanced (Дополнительно) в разделе Content (Содержимое) кликните кнопку «Javascript options» («Настроить JavaScript»). В появившемся окне в поле User Javascript files (Папка пользовательских файлов Javascript) выберите ту папку, которую создали на первом шаге.

chrome iconGoogle Chrome

В последних альфа-билдах Хрома скрипт не работает из-за ужесточения политики безопасности.

Что ожидается и текущие проблемы

  1. откуда еще поскробблим?? Пишите!
  2. Chrome! Chrome! Chrome!

Остальные известные мне проблемы уже решены. Так что присылайте отчеты о багах и запросы на дополнительные возможности в комментарии.

История версий

Бета 8 (2010-10-05)
Бета 7 (2010-09-27)
Бета 5 (2009-09-29)
Бета 4 (2009-06-27)
Бета 3 (2009-05-26)
Бета 2 (2009-05-24)
Бета 1 (2009-04-07)
Альфа 6 (2009-03-28)
Альфа 5 (2009-03-19)
Альфа 4 (2009-03-18)
Альфа 3 (2009-03-03)
Альфа 2 (2009-03-01)
Альфа 1 (2009-02-28)

Код

Вот репозиторий на Google Code. Не стесняйтесь его клонировать.

Если вы JS-программист, никто вам не мешает что-нибудь в этом скрипте изменить, так как лицензия — LGPL. Особенно приветствуется, если вы портируете его под Chrome, Safari или IE (для них есть свои Greasemonkey движки). Также приветствуется отправка патчей мне на email (cyril7NOSPAM@NOSPAMgmail.com)

Мне в данный момент лень описывать как это все работает. Перечислю лишь объекты, задействованные в процессе:

Таким образом браузерно-специфичной частью является fm.conn. Он зависит от способа отправки асинхронных запросов. Таким образом, меняя его можно заставить скробблер работать в других браузерах.

Сайто-специфичными являются scrobbler, ScrobblerIcon, PlayingIcon, AdvancedControl и InfoPanel. Для того, чтоб скробблер работал на других сайтах (кроме вконтакте) надо реализовать интерфейс scrobbler и, опционально, объекты отображающие состояние.

Что еще почитать