MTP-Lastfm

Меня достаточно продолжительное время угнетал тот факт, что инфа о треках, которые я слушаю на своём мобильнике, не скробблится на ластфмчик.

Есть такой протокол 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 программа должна работать с большим количеством устройств.

git.md