You are here

Делаем из сервера… радиоприёмник

На рабочем месте стоит сервер без монитора и клавиатуры. Материнская плата имеет встроенную звуковую карту, причём, весьма неплохую по характеристикам.

Старый кассетный магнитофон был приведён в чувства и подключен в качестве активной акустики.

Устанавливаем любой консольный плеер, например, multimedia/mplayer.

Теперь нужно сделать интерфейс для управления плейлистом.

/usr/local/bin/play
#!/bin/sh
# playlist launcher
#permission must be 755!
#Можно положить в Path /usr/local/bin/play и вызывать play
 
# Playlist 
LIST=`/bin/cat /data/playlist.csv`
#echo ${LIST}
 
#Устанавливаем разделитель строк
SAVEIFS=$IFS
IFS='
'
echo ------------------------------------------------------------------------
echo Список дорожек
echo ------------------------------------------------------------------------
TRACK_NUM=1
for TRACK in ${LIST}; do
    #echo  ${TRACK_NUM}
    #echo ${TRACK}
    TRACK_TITLE=`echo ${TRACK} | /usr/bin/awk -F \| '{print $1}'`
    TRACK_PATH=`echo ${TRACK} | /usr/bin/awk -F \| '{print $2}'`
    echo  ${TRACK_NUM}: ${TRACK_TITLE} "                                     "
#    echo  ${TRACK_PATH}
    TRACK_NUM=`expr ${TRACK_NUM} + 1`
done
 
echo ------------------------------------------------------------------------
echo Введите номер дорожки
read TRACK_NUMBER
TRACK_NUM=1
 
if  [ "0" = "${TRACK_NUMBER}" ]; then
    killall mplayer > /dev/null 2>&1
fi
 
for TRACK in ${LIST}; do
    TRACK_TITLE=`echo ${TRACK} | /usr/bin/awk -F \| '{print $1}'`
    TRACK_PATH=`echo ${TRACK} | /usr/bin/awk -F \| '{print $2}'`
    if  [ "${TRACK_NUM}" = "${TRACK_NUMBER}" ]; then
	echo Запуск \"${TRACK_TITLE}\"
	killall mplayer > /dev/null 2>&1
	/usr/local/bin/mplayer ${TRACK_PATH} &
    fi
    TRACK_NUM=`expr ${TRACK_NUM} + 1`
done
 
 
IFS=$SAVEIFS

Как видно из скрипта, плейлист находится в файле /data/playlist.csv.

Вид его такой: Название радиостанции|URL

Как получить URL? На сайтах радиостанций они иногда приводятся. Во многих случаях, можно загрузить файлы плейлистов pls и получить URL уже из них.

Давайте разберём пример с сайтом http://www.rockradio.com/.

Копируем URL программы в буфер, теперь в консоли:

# fetch http://listen.rockradio.com/public3/classicrock.pls
classicrock.pls                               100% of  329  B 1472 kBps 00m00s
# cat classicrock.pls
[playlist]
NumberOfEntries=3
File1=http://pub7.rockradio.com:80/rr_classicrock
Title1=ROCKRADIO.COM - Classic Rock
Length1=-1
File2=http://pub8.rockradio.com:80/rr_classicrock
Title2=ROCKRADIO.COM - Classic Rock
Length2=-1
File3=http://pub5.rockradio.com:80/rr_classicrock
Title3=ROCKRADIO.COM - Classic Rock
Length3=-1
Version=2
# 

В итоге, заносим в файл

Classic Rock|http://pub7.rockradio.com:80/rr_classicrock

Чтобы облегчить вам задачу, приведу свой файл. Далеко не на любой вкус, но всё же:

/data/playlist.csv
Радио Гималаи|http://s03.radio-tochka.com:6325/;stream.nsv&autostart=true
Веда-радио|http://listen.vedaradio.fm:8000/veryhigh
Yoga-радио|http://play.yogaradio.org.ua:8000/YOGAr256
BBC 1|http://bbcmedia.ic.llnwd.net/stream/bbcmedia_intl_lc_radio1_p?s=1399568589&e=1399582989&h=368528736bd072cdf577992891e882dd
BBC 2|http://bbcmedia.ic.llnwd.net/stream/bbcmedia_intl_lc_radio2_p?s=1399568645&e=1399583045&h=a15f28904fbdf317a8dd1d90b689989b
BBC 3|http://bbcmedia.ic.llnwd.net/stream/bbcmedia_intl_lc_radio3_p?s=1399568696&e=1399583096&h=c4d09a238a59edacd3e4b9f124e31397
BBC 6|http://bbcmedia.ic.llnwd.net/stream/bbcmedia_intl_lc_6music_p?s=1399568488&e=1399582888&h=b33ec4ee7efc3289faabfc4cc3e0f2b8
Радио Фантастики|http://fantasyradioru.no-ip.biz:8000
Радио Свобода|http://rfe-channel-04.akacast.akamaistream.net/7/885/229654/v1/ibb.akacast.akamaistream.net/rfe_channel_04.mp3
RFI|http://stream.rfi.fr/2587/rfi_en_russe/rfirusse.mp3
EuroNews|http://euronews-05.ice.infomaniak.ch/euronews-05.aac?type=.flv
Новая Жизнь|http://50.22.253.46:80/nlradio
Радио КД|http://8273.str.ovh.net:8273/
Радио7|http://radio.totalwebservices.net:8017/
Славаянское Христианское Радио|http://50.7.96.210:8331
Classic Rock|http://pub7.rockradio.com:80/rr_classicrock
Classic Hard Rock|http://pub5.rockradio.com:80/rr_classichardrock
Classic Metal|http://pub7.rockradio.com:80/rr_classicmetal
Heavy Metal|http://pub7.rockradio.com:80/rr_heavymetal
Rock Ballads|http://pub7.rockradio.com:80/rr_rockballads
Soft Rock|http://pub8.rockradio.com:80/rr_softrock
Gothic Radio|http://icecast1.play.cz:8000/Radiogothic128.mp3

Теперь, для запуска радио достаточно выполнить в консоли play.  Цифрой следует выбрать радиостанцию. 0 отключает радио совсем.

 

Рубрика: 

Comments

Add new comment

CAPTCHA
Ответьте на простой вопрос, посмотрим, нужны ли нам ваши комментарии…
Image CAPTCHA
Enter the characters shown in the image.