Mocp + last.fm + notify-osd with album art

Итоговый вид...

Недавно стал использовать консольный плеер mocp.
Хорошая вещица, но вот по умолчанию нет скробблинга и отображения текущей песни в osd.
Исправляем…

1. Установка плеера

Если у вас не установлен плеер, то ставим:

sudo apt-get install moc

Note: если у вас файл ~/.moc/config уже существует, то следующее действие пропустите!
Извлекаем конфиг для дальнейшей работы:

zcat /usr/share/doc/moc/examples/config.example.gz > ~/.moc/config

2. Установка скробблера

Ставим:

sudo apt-get install lastfmsubmitd

Во время установки запросит логин, затем пароль на Last.fm.
Не стесняемся и отдаем зверю данные.

Потом необходимо будет ввести группу из которой можно будет отправлять музыку.
Оставляем по умолчанию, lastfm, и добавляем себя в эту группу:

usermod -aG lastfm имя_пользователя

Если в будущем понадобится отредактировать логин и пароль, то их можно найти в файле /etc/lastfmsubmitd.conf

Note: для работы скробблера необходимо разрешить текущему юзеру запись во временную папку:

sudo chown имя_пользователя /var/spool/lastfm

3. Хард код =)
Создаем файл NextSongEvent, следующего содержания:

#!/bin/bash
# by Sfate
# $1 artist
# $2 album
# $3 filename
# $4 title
# $5 track
# $6 file duration in XX:YY form
# $7 file duration, number of seconds

#get album cover from last.fm
api_key='b25b959554ed76058ac220b7b2e0a026'
artist="`echo "$1" | sed -e 's/ /+/g'`"
album="`echo "$2" | sed -e 's/ /+/g'`"
cover="/var/spool/lastfm/cover.gif"
album_url="http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=$api_key&artist=$artist&album=$album"
cover_url=`wget -qO- $album_url | cat | sed -n  -e 's/<image size=\"large\">//p' | sed -n  -e 's/<\/image>//p'`
wget -q --output-document=$cover $cover_url

#display osd-notify about track with cover ^_^
if [ ! -f $cover ]
then
cover_url="http://cdn.last.fm/depth/catalogue/noimage/cover_med.gif"
wget -q --output-document=$cover $cover_url
fi
/usr/bin/notify-send "$1 - $4 [$6]" "$2" -i $cover

#submit track to last.fm
/usr/lib/lastfmsubmitd/lastfmsubmit --artist "$1" --title "$4" --length "$6" --album "$2"

Note: для работы уведомлений(notify-send) необходимо поставить либу:

sudo apt-get install libnotify-bin

Делаем файл исполнительным:

chmod +x /path/to/script/NextSongEvent

Затем в файл ~/.moc/config добавляем строчку:

OnSongChange = «/path/to/script/NextSongEvent %a %r %f %t %n %d %D»

Перезапускаем плеер.
Profit!
Итоговвый вид...

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s