Много лет назад был вполне активным пользователем 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. Но уже неактуально.