Много лет назад был вполне активным пользователем last.fm – пока владельцы не начали делать “улучшения” и прочие новшества. Практически все это время для плеера пользовался утилитой lastfmsubmitd – парой “демон+утилита” для отправки статистики из консоли. Время идет, утилита давно не поддерживается, оффсайт пропал (но пока есть github), из Debian’а пакет окончательно выкинули.
Вчера зацепился за тему музыкальных статусов (а потом и про last.fm вспомнил), настроил отправку статуса в Psi+ (долго не мог вспомнить, что и как, потом с помощью конференции разработчиков клиента таки решил вопрос – данные надо писать в ~/.cache/psi+/tune; структура: 1 строка – title, 2-я – artist; 3-я – album). В том же скрипте, который у меня дергается на каждую песню в Music on Console, наткнулся и на lastfmsubmitd, решил настроить и его – как оказалось, последний раз на last.fm я слал что-либо ровно год назад.
Репозиторий с кодом для lastfmsubmitd я нашел, но так как он давно не обновлялся – хотелось найти какую-то актуальную альтернативу из дистрибутива Debian. Поискал, перебрал ряд вариантов – все не то: есть варианты для mpd, есть даже скробблер+плеер на zsh – zomg – но без возможности простой отправки статистики без использования вызовов плеера. Можно было бы расковырять его и исключить плеер из работы, но, блин – тащить в систему 16 МБ кода (скробблер+zsh) чисто для отправки статистики, который еще потом надо править под свои нужды – настроения совсем не было. Нашел в сети даже вариант на bash с использованием curl – правда, доступным было только руководство, а сам репозиторий перемещен на gitlab и закрыт от неавторизованных пользователей. Чуть поискал скрипт в интернет-архиве, но потом бросил – в любом случае согласно руководству требовалось еще заводить пару ключей и тому подобная морока.
А потом мне на глаза попался mocp-scrobbler на Python. Сходу заточен на moc, так что мой скрипт-обвязка не требовался; весь код в одном файле; работает в режиме демона. Небольшая проблема только – автор, похоже, его забросил несколько лет назад (да и домен в контактах автора уже явно под чужим контролем), однако код изначально делался под Python3, так что уже было проще. На Python 3.9 ругалось на SafeConfigParser – собственно, кто-то даже оформил Pull request уже, но я его заметил уже потом. Так или иначе, все завелось; конфиг создал по руководству на странице проекта.
Архив кода на linuxoid.in
Update: кстати, несколько форков lastfmsubmitd даже имеют коммиты – кто-то пытался переделать его под Python3 (так, кстати, узнал про существование утилиты 2to3), еще один перевел утилиту на использование библиотеки pylast. Так что потенциально, думаю, можно было бы использовать и lastfmsubmitd. Но уже неактуально.