Кнопочка для сохранения песенок с last.fm

Nov 05, 2008 23:46

Я, конечно, страшный извращенец, но last.fm я слушаю таким вот зверским способом.
Сегодня в качестве отдыха приделал себе кнопочку сохранения понравившейся песни.
Для этого мне пришлось сделать следующее.
1. Написать shell-скрипт /home/anton/bin/lastfm-play-and-save.sh:

#!/bin/bash

FNAME=`mktemp ~/.shell-fm/savetmp/tXXXXXX` || exit 1
tee $FNAME | mpg123 -q -

if [[ -e "/home/anton/.shell-fm/savetmp/save" ]]; then
{
read ARTIST
read TITLE
} < "/home/anton/.shell-fm/savetmp/save"
cp $FNAME "/home/anton/music/${ARTIST} - ${TITLE}.mp3"
mp3info -a "$ARTIST" -t "$TITLE" "/home/anton/music/${ARTIST} - ${TITLE}.mp3"
rm "/home/anton/.shell-fm/savetmp/save"
fi;
rm $FNAME

2. Поменять конфигурацию shell-fm так:

username = anton_nazarov
password = мой пароль
extern = lastfm-play-and-save.sh

3. Добавить в свой .emacs следующее:

(defun my-save-mp3 ()
"Saves mp3 from last.fm stream"
(interactive)
(let* ((art-tit (split-string (substring (shellfm-track-info) 18) " - "))
(artist (car art-tit))
(title (cadr art-tit)))
(shell-command (format "echo -e \"%s\n%s\" > \"/home/anton/.shell-fm/savetmp/save\"" artist title))))

(global-set-key [(control XF86AudioPrev)] 'my-save-mp3)

Теперь по нажатию Control-Prev (у меня есть кнопки для управления музыкой на передней панели ноутбука) понравившаяся песня сохраняется в ~/music с правильным именем и id3 тегом.

fun, leisure, emacs

Previous post Next post
Up