Онлайн-радио в MPlayer + вывод названия трека в conky
В последнее время «подсел» на Radio ROKS. Слушаю в онлайне при помощи MPlayer. Обратил внимание на то что в выводе mplayer
присутствует название трека, который в данный момент звучит в эфире, и решил попробовать прикрутить вывод названия композиции в conky
.
Строка содержащая название трека выглядит вот так:
ICY Info: StreamTitle='Creedence Clearwater Revival - Run Through The Jungle';
Дабы не придумывать собственный велосипед, погуглил на предмет готовых решений, но ничего устраивающего меня не нашел. Здесь нашел толковый скрипт, только не под mplayer
, а под mpg123
, и вывод трека не в conky
, а через всплывающие уведомления notify-osd
. Зато радио в примере такое же — «Radio ROKS» :).
Немножко модернизируем скрипт из примера до такого содержания:
#! /bin/bash
do_log() {
while true
do
read -d ';'
if [ ! -z "$REPLY" ]; then
track_old=$track_now;
track_now=$(echo "$REPLY"| grep "ICY Info"|sed s/ICY\ Info:\ StreamTitle=\'//g|sed s/\'$//g);
[ "$track_old" = "$track_now" ] || (notify-send "$track_now" && echo $track_now)
sleep 1;
fi
done
}
mplayer -quiet -playlist http://www.radioroks.com.ua/RadioROKS.m3u &> /dev/stdout | do_log
В таком виде скрипт пишет в поток вывода название трека, а также название выводит через всплывающее уведомление. Собственно вывод трека осуществляется в этой строке скрипта:
[ "$track_old" = "$track_now" ] || (notify-send "$track_now" && echo $track_now)
В переменной track_now
содержится название, с которым можем делать все что вздумается. Например, выводить название в лог-файл для журналирования всего что было прослушано (журнал будет сохраняться в подкаталоге log в файлах с названием RadioROKS-YYMMDD.log, где YY – год, MM- месяц, DD – день):
[ "$track_old" = "$track_now" ] || (dat=`date +%Y%m%d` && echo $track_now >> ./log/RadioROKS-$dat.log)
Или выводить название трека в файл /tmp/streamtitle
[ "$track_old" = "$track_now" ] || (echo $track_now > /tmp/streamtitle)
А затем название из файла /tmp/streamtitle выводить в conky
при помощи:
${execp cat /tmp/streamtitle}
Чтобы conky
не выводил постоянно название (когда радио выключено) в конце скрипта добавим удаление файла:
rm /tmp/streamtitle
Окончательный вариант скрипта такой:
#! /bin/bash
do_log() {
while true
do
read -d ';'
if [ ! -z "$REPLY" ]; then
track_old=$track_now;
track_now=$(echo "$REPLY"| grep "ICY Info"|sed s/ICY\ Info:\ StreamTitle=\'//g|sed s/\'$//g);
[ "$track_old" = "$track_now" ] || (echo $track_now > /tmp/streamtitle)
sleep 1;
fi
done
}
mplayer -quiet -playlist http://www.radioroks.com.ua/RadioROKS.m3u &> /dev/stdout | do_log
rm /tmp/streamtitle
Скрипт запускает mplayer
для прослушивания онлайн-радио и пишет название текущей композиции в файл /tmp/streamtitle. conky
читает название из файла и выводит на экран.
Комментарии
Оставить комментарий
your_ip_is_blacklisted_by sbl.spamhaus.org