Меня достаточно продолжительное время угнетал тот факт, что инфа о треках, которые я слушаю на своём мобильнике, не скробблится на ластфмчик.
Есть такой протокол MTP, позволяет общаться с разными медиадевайсами на достаточно высоком (выше, чем файловый) уровне абстракции. Мой мобильник этот протокол держит. Недавно я обнаружил, что есть свободная реализация MTP под названием libmtp. Обнаружилось также, что девайсы с MTP умеют отдавать информацию о количестве прослушиваний каждого определённого трека. В состав библиотеки libmtp входят программки-примеры, которые позволяют посмотреть эту информацию из командной строки:
$ mtp-tracks
…
Track ID: 286
Title: Plug In Baby
Artist: Muse
Genre: 12
Album: Origin of Symetry
Date: 00010101T000000.0
Origfilename: Muse - Plug In Baby.mp3
Track number: 5
Duration: 0 milliseconds
File size 8823203 bytes
Filetype: ISO MPEG-1 Audio Layer 3
WAVE fourCC code: 0x00000055
Use count: 23 times
…
Здесь интересно поле Use count:
, в котором сохраняется количество прослушиваний каждой дорожки. Не знаю, правда, как именно конкретно моя мобила учитывает прослушивания — наверное, когда трек прослушан целиком от начала и до конца. Информация о времени каждого прослушивания не хранится и через MTP не предоставляется, поэтому для реализации MTP-скробблера действовать нужно так: запустить mtp-tracks
первый раз, посмотреть, сколько у каждого песенки прослушиваний, затем после некоторого использования девайса в музыкальных целях опять подключаться к компу и сравнивать количество использований каждой песенки с сохранённым ранее числом.
Данную тактику, в числе прочих фич, реализует (гуёвенькая, правда) программка MTP-Lastfm, которая позволяет одним ударом отправить информацию о недавно прослушанных треках на Last.fm. Время начала скробблинга предлагается выставлять вручную, либо доверить программе рассчитать его так, чтобы оно закончилось «сейчас» (в предположении, что все треки с момента предыдущей отправки инфы на Last.fm слушались непрерывно). Поэтому точная информация о времени каждого прослушивания неизбежно теряется, но зато в общей статистике наконец-то учитывается музон, заслушанный на мобилке! MTP имеет определённое распространение, поэтому за счёт libmtp программа должна работать с большим количеством устройств.