Скробблим треки в Last.fm с мобильного устройства

    В этом посте я хотел бы предложить свой метод отправления музыки на Last.fm с мобильного устройства (коммуникатор, КПК, телефон) без использования на нём интернета.

    Проблема
    Легко скробблить на last.fm треки с компьютера. Для этого есть множество программ (я, например, использую Rhythmbox). Но достаточно большую часть музыки мы слушаем на мобильном устройстве. Хотелось бы и с него отправлять музыку на сайт.
    При этом желательно не использовать интернет на мобильном устройстве, т.к., во-первых, интернет не везде доступен, а во-вторых, он недешев (особенно, если вы, например, поехали отдыхать в Турцию и взяли с собой КПК как плеер).

    Идея решения
    Используем на мобильном устройстве плеер, умеющий писать лог-файл прослушанных композиций (я, например, пользуюсь MortPlayer). Далее, этот лог-файл переносим на компьютер и отправляем на Last.fm с использованием скрипта на Python, о котором ниже.

    Требования к системе
    1. На мобильном устройстве нужен плеер, умеющий писать лог-файл прослушанных композиций. Формат лог-файла должен быть «день-месяц-год час: минута: секунда исполнитель — композиция — альбом», например:
    14-01-2008 21:17:45 Sean Paul — Like Glue — Dutty Rock
    14-01-2008 21:21:43 Sean Paul — Get Busy — Dutty Rock

    Остальные требования к компьютеру (с которого будем скробблить):
    2. Linux.
    3. Rhythmbox с плагином Last.fm (в последних версиях поставляется вместе с программой, но нужно его включить и настроить логин/пароль доступа к сервису).
    4. Python.

    Порядок действий
    1. Переносим на компьютер лог-файл (например, вставляем карту памяти с коммуникатора).
    2. Запускаем скрипт scrobble.
    Всё :)

    «Фичи» скрипта
    1. Проверка появления треков на личной странице last.fm (сверяется счетчик прослушанных композиций).
    2. Возможность выдать таблицу прослушанных композиций, сгруппированных по исполнителю, со счетчиками прослушивания (удобно, например, если вы вернулись издалека и хотите посмотреть, что чаще всего вы слушали на отдыхе).
    3. Фильтрация композиций, которые звучали менее минуты.

    Скачать скрипт (iFolder.ru)

    Посмотреть код (dumpz.org, с подсветкой синтаксиса и номерами строк) (за наводку спасибо Cyxapeff)

    Конфигурационные параметры (например, путь к лог-файлу) настраиваем в начале текста скрипта.

    UPD 29.07.2008
    В связи с недавним обновлением интерфейса Last.fm скрипт нужно изменить: а именно, регулярное выражение на строке 219
    pattern = re.compile('Tracks played:\W*<\/strong>\W*(\d+),(\d+)<\/span><\/span>')
    нужно заменить на
    pattern = re.compile('\((\d+),(\d+) tracks played\)')


    — Это мой первый P.оS.т на хабре. Пожалуйста, не судите строго.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 46

      0
      Спасибо. Полезная вещица
        +2
        В lifehacker была ссылка по интереснее как под виндой грабить last.fm по расписанию
        Для винды
        http://www.minezone.org/blog/2006/08/17/record-streaming-radio-using-free-software/
        Для линукса
        http://www.instructables.com/id/Schedule-Streaming-Audio-Recordings-in-Ubuntu/
        PS может кому пригодится
          0
          первая ссылка вроде бы про другое
            0
            пардон, все верно
            +2
            Интересное решение :) Предлагаю еще упростить перенос лога с мобильного устройства, например вызывая из скрипта что нибудь наподобие этого (в данном случае через блютуз):
            os.system('obexftp -b код-устройства -B 1 --getdelete путь/к/логу/на/кпк')
            Кстати в качестве библиотеки для скробблинга можно взять питоновский модуль от Sonata, тогда можно более автономную и универсальную программу сделать.
              +2
              Rockbox использует такую же схему для скробблера. Правда, ритмбокс на хосте не нужен.
              http://www.rockbox.org/twiki/bin/view/Ma…
                +1
                ИМХО столь объемистый исходный код лучше было бы предоставить в виде ссылки на внешний файл.
                  +1
                    0
                    Я об этом "P.P.S. Не знаю, стоит ли приводить код скрипта здесь, но на всякий случай приведу (возможно, кто-то поможет его улучшить)." И дальше много кода.
                    Уж очень много скролиинга получается...
                      0
                      Исправил.
                  –2
                  По-видимому, это какой-то особенный, мне непонятный вид эксгибиционизма :)
                    +2
                    Да ладно вам! Ничто не объединяет людей так, как музыка! лично я привёл на ласт 10 друзей, многие из которых тоже думал "чё за бред очередной" а сейчас благодарят меня за то, что с помощью ласта они познакомились ещё с кучей людей и нашли много новой интересной музыки. Я думаю, это и есть смысл сервиса, а вовсе не выставление своего плейлиста на всеобщее обозрение.
                      0
                      Поиск музыки в первую очередь, я считаю.
                      Очень много интересной мне музыки узнал.
                        0
                        А я люблю кичиться своими вкусами. Т.ч., хороший сервис, каждый в нём что–то для себя находит))
                      • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        Спасибо автору за пост, правда мне он не очень полезен. Давно ищу способ перегнать треки с Creative ZEN V Plus - статистика в нём накапливается, а вот как её вытащить...

                        Может кто знает, подскажет?
                          +2
                          Да, и скрипт лучше убрать из поста. Куда столько крутить?! Ладно бы две строчки.
                            0
                            Сделал:)
                            0
                            http://www.last.fm/group/Zenses - подходит в теории для любого плеера с поддержкой MTP.

                            прога сыровата, но у многих работает. Требует Винду, .NET 2 и WMP11 (для соединения с устройством по MTP).
                              0
                              не работает в W7 (возможно из-за того что она требует 32хбитную ОС)
                            0
                            А вот интересно можно так делать на mp3 flash player'е? Давно думал об этом.Ipodы вроде умеют.А обычные плееры? Как их заставить писать логи?
                              0
                              а ipod - не "обычный" плеер?

                              есть микрософтовская технология, которую поддерживают многие плееры. она позволяет получить данные о прослушанных композициях.
                                0
                                Ну как бы да,по сравнению с моим древним Creative MuVo TX (http://www.dostavka.ru/review-338-3047.html) ... один плюс,маленький он ,бешать удобно.

                                И чтода моего тоже есть такая лог-о-писалка?
                              +1
                              Сам last.fm разрабатывает плагин для PocketPC Last.fm Mobile
                              И есть уже рабочие версии для TCPMP
                                0
                                Для его работы нужен интернет или будет отложенное добавление? Ответ на этот вопрос определит судьбу моего скрипта:)
                                  0
                                  Я только мельком посмотрел. Если интересно - вот обсуждение:
                                  http://www.lastfm.ru/group/Last.fm+Mobile/forum
                                    0
                                    Можно скробблить или на лету или отложенно списком через любое соединение, в т.ч. ActiveSync на компьютере, подключенном к сети.
                                    Предлагаю свой обзор клиента - http://www.livejournal.com/users/d0nrumata/13120.html
                                    0
                                    Что такое TCPMP?
                                    +1
                                    Межстрочное расстояние в коде — вина Хабра? Если да, то зачем?
                                      +1
                                      Тоже не понимаю. Я использовал <blockquote><pre>.
                                      Если убрать <pre>, то межстрочные расстояния приходят в норму (соответственно, визуально размер сильно уменьшается), но пропадают отступы:( Тег <code> вообще, кажется, ничего не делает:) В общем, если кто знает решение - напишите, пожалуйста.
                                        0
                                        <pre><code>…</code></pre>
                                          0
                                          Не работает:( <code> не парсится (т.е. выводится как текст), видимо, потому что он внутри <pre>. Соответственно, межстрочные расстояния остаются теми же.
                                            0
                                            а просто pre тогда?
                                              0
                                              То же самое, от <pre> <code> отличается только отсутствием текста <code> =)
                                              Кстати, перенес код на сторонний ресурс.
                                                0
                                                не ожидал такого от хабры
                                      –1
                                      Так ведь есть же MobileScrobbler
                                      У на iPhone стоит и очень меня радует)
                                        +1
                                        1. Код (для посмотреть) лучше выложить на что-нибудь вроде: http://dumpz.org/ оно хоть с подсветкой синтаксиса.
                                        2. Хорошо бы заставить этот скипт стартовать, когда втыкается флэшка. (если память не изменяет, в сторону DBUS копать)
                                        3. Выкинуть из зависимостей ритмбокс. Ласт.фм клиент не такая уж сложная штука. В конце-концов реализацию можно выдрать из любого python плеера.
                                          0
                                          1. Ага, сделал именно так. Спасибо за ссылку, нашел еще один отличный сервис))
                                          2, 3. Подумаю...
                                          0
                                          Отличная идея! Только несмотря на всю плеерность своего телефона (SE w610i), не могу воспользоваться возможностью скробблить трэки :( Может кто-нибудь знает ява плеер, который умеет скробблить прямо с телефона или писать в лог?
                                            0
                                            Отлично! Только сегодня задумался о скробблинге с мобильника.
                                            Только жаль, что у меня Symbian 9, а не WM :(
                                              0
                                              Ищу человека, который бы помог реализовать скробблинг из XML-файла. Обещаю деньги и респект.
                                                0
                                                Думаю, смогу сделать. Пишите в gmail или в gtalk: denis.golomazov
                                                0
                                                Возможен ли скробблер на java? SE w800...
                                                  0
                                                  в WM использую PocketPlayer, для которого написан родной lastfm-плагин. Прост в установке и использовании, хотя огорчает абсолютным минимум настроек.
                                                    0
                                                    А на java?
                                                      0
                                                      а на яве проигрывателей-то раз-два и обчелся, скробблеров тем более нет.
                                                      но попробуйте пошастать по http://build.last.fm/, там есть специальный раздел скробблеров для разных платформ, может и найдете чего-нить

                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                  Самое читаемое