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

Что это?

Очень много людей слушают музыку вконтакте. Не меньше людей любят скробблить свои прослушивания на 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, Firefox 3 (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. Нам потребуется свежий Chrome. Текущая публичная финальная версия 2.0 подойдет.
  2. Для начала, отредактируйте ярлык Хрома для запуска с поддержкой User Scripts: в свойствах ярлыка во вкладке Ярлык в поле объект после полного пути к chrome.exe укажите через пробел «--enable-user-scripts».
  3. Перейдите в папку %LOCALAPPDATA%\Google\Chrome\User Data\Default (напрмер, через Пуск — Выполнить) и создайте там папку User Scripts.
  4. Кликните кнопку «Установить» выше и сохраните скрипт в только что созданную папку.
  5. После перезапуска Chrome при помощи того самого отредактированного ярлыка Жанет займется своим делом.

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

  1. откуда еще поскробблим?? Пишите!
  2. foo_scrobblecharts?
  3. совместимость с Safari.

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

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

Бета 5 (2009-06-27)
Бета 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)

Код

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

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

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

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

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