把radioget的直播列表转换为smplayer直播列表的脚本 |
发布: 2011-11-18 15:52 |
radioget是一个linux 下收听广播的小软件,可以媲美龙卷风很方便。 使用Qt4开发,移植性很好。 看了一下代码,发现广播列表在一个标准XML文件中,非常清晰。 本人经常用的是smplayer,所以写了一个脚本,把这个广播列表转换为smplayer的广播列表。 但smplayer不支持列表分类,最后的结果就是smplayer的广播列表非常长,但用起来还是相当方便的。 使用方法,下载并执行这个脚本,启动smplayer,在播放菜单中找广播列表。 执行的时候,如果smplayer正在运行,最好先退出。 随机测试了一下,大部分地址都还有效。 最近更新了一个html版,放在页面上,用起来也很方便, http://nullget.sourceforge.net/html/radioget.html radioget_xml_to_smplayer_radio_list.sh: [code type="bash"] #!/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 http://radioget.googlecode.com/svn/trunk/radiolist.xml echo "#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} [/code] |
原文: http://qtchina.tk/?q=node/446 |
Powered by zexport
|