drswinghead

主站网址

导航

把radioget的直播列表转换为smplayer直播列表的脚本

radioget是一个linux 下收听广播的小软件,可以媲美龙卷风很方便。
使用Qt4开发,移植性很好。
看了一下代码,发现广播列表在一个标准XML文件中,非常清晰。
本人经常用的是smplayer,所以写了一个脚本,把这个广播列表转换为smplayer的广播列表。
但smplayer不支持列表分类,最后的结果就是smplayer的广播列表非常长,但用起来还是相当方便的。

使用方法,下载并执行这个脚本,启动smplayer,在播放菜单中找广播列表。
执行的时候,如果smplayer正在运行,最好先退出。
随机测试了一下,大部分地址都还有效。

radioget_xml_to_smplayer_radio_list.sh:

#!/bin/sh
 
# format 
# #EXTM3U
# #EXTINF:0,vvv,
# mms://fff
# #EXTINF:0,fff,
# mms://ttt
 
# http://radioget.googlecode.com/svn/trunk/radiolist.xml
radio_get_xml=$HOME/.config/smplayer/radiolist.xml
smplayer_audio_file=$HOME/.config/smplayer/radio.m3u8
temp_audio_file=/tmp/radio.m3u8
 
if [ -f $radio_get_xml ] ; then
    mv -v $radio_get_xml ${radio_get_xml}.bak
fi
 
wget -O $radio_get_xml <a href="http://radioget.googlecode.com/svn/trunk/radiolist.xml</p>
<p>echo" title="http://radioget.googlecode.com/svn/trunk/radiolist.xml</p>
<p>echo">http://radioget.googlecode.com/svn/trunk/radiolist.xml</p>
<p>echo</p></a> "#EXTM3U" > $temp_audio_file
 
radio_caty=
while read radio
do
    # echo $radio
    xml_ver_line=`echo $radio|grep "xml version"`
    xml_root_line=`echo $radio|grep "RadioGet"`
    radio_cat_line=`echo $radio|grep "radiotag"`
    radio_addr_line=`echo $radio|grep "url"`
 
    if [ x"$xml_ver_line" = x"" ] ; then
        true;
    else
        continue;
    fi
 
    if [ x"$xml_root_line" = x"" ] ; then
        true;
    else
        continue;
    fi
 
    if [ x"$radio_cat_line" = x"" ] ; then
        true;
    else
        radio_caty=`echo $radio|awk -F\" '{print $2}'`
 
        if [ x"$radio_caty" = x"" ] ; then
            # echo $radio_caty
            true;
        fi
        continue;
    fi
 
    if [ x"$radio_addr_line" = x"" ] ; then
        true;
    else
        radio_addr=`echo $radio|awk -F\" '{print $4}'`
        radio_name=`echo $radio|awk -F\" '{print $2}'`
 
        echo $radio_caty "->" $radio_name "->" $radio_addr
        echo "#EXTINF:0,${radio_caty}->${radio_name}," >> $temp_audio_file
        echo "$radio_addr" >> $temp_audio_file
    fi
 
done < $radio_get_xml
 
mv -v $smplayer_audio_file ${smplayer_audio_file}.bak
cp -v $temp_audio_file ${smplayer_audio_file}

posted on 2010-05-30 01:20  drswinghead  阅读(359)  评论(0)    收藏  举报