分页: 1 / 1

放个百度音乐在线试听的脚本

发表于 : 2013-06-20 21:10
YeLee
http://ruojiner.clanmark.com/viewtopic.php?id=115
参考自以上文章弄的东西。 :em01 :em01 :em01
[bash]
#!/bin/bash
[ -z "$1" ] && echo "$0 playlist" && exit 1
while read szline
do
szartist=$( echo "$szline" |cut -d$'\t' -f1 )
sztitle=$( echo "$szline" |cut -d$'\t' -f2 )
szinfo=$( wget -q "http://box.zhangmen.baidu.com/x?op=12&c ... ${szartist}\$\$\$\$" -O - |sed -e "s#\[CDATA\[#\n#g" -e "s#\]\]#\n#g" )
szurl=$( echo "$szinfo" |grep -m1 -o "^http.*\/[0-9]*\/" )$( echo "$szinfo" |grep -m1 "[0-9]*\.mp3" )
[[ "$szurl" =~ "mp3" ]] || continue
notify-send "$szartist - $sztitle"
mpg123 "$szurl"
done < "$1"

[/bash]
鉴于鄙人技术问题,某些地方处理得不是很恰当,仍望大神指点。
至于播放列表格式,则是歌手名字加歌曲名称,两者以tab分隔。

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 0:23
youzhiyili
mark

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 7:07
YeLee
对你们这群人类算是彻彻底底地失望了,就算是跟百度有仇也不能迁怒于我身上啊,就算是对我不满也不能累及百度啊,好好的一个脚本,就一个人顶,以后有好东西再也不给你们了。 :em36

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 7:23
qy117121
不会用

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 7:31
YeLee
自己新建一个播放列表,随便叫个名字,例如「qy的播放列表.txt」,跟着,随便往里面放点东西,然后以「脚本名 qy的播放列表.txt」的方式运行即可。 :em01 :em01 :em01

代码: 全选

youzhiyili[[:tab:]]mark
qy117121[[:tab:]]大水逼
YeLee[[:tab:]]eexpress杀手
上面的id替换为歌手名字,[[:tab:]]则表示制表符,后面那串东西表示歌曲名字,一般是一首歌一行的格式,一个歌手多首歌则分为多行。
我说得够明白的了,不明白自己面壁去。 :em01

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 7:36
qy117121
你妹的,这么麻烦,不用了

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 9:27
jtshs256
百毒上没啥要的资源
轮子写个 simplecd 的吧

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 9:32
qy117121
游鸿明 诗人的眼泪
游鸿明 白色恋人
游鸿明 孟婆汤
Groove Coverage God Is A Girl

这都什么啊,轮子听的?

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 9:36
YeLee
qy117121, 这又与你相关? :em01 :em01 :em01

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-06-21 9:38
qy117121
这脚本,怎么换下一首,还是说只能一首一首听?
唉,算了,本地的脚本都删除了已经

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-07-15 11:57
YeLee

代码: 全选

wget -q 'http://music.baidu.com/top/dayhot' -O - |grep 'data-songitem' |sed "s=.*'sname'[^']*'\([^']*\).*'author'[^']*'\([^']*\).*=\2\t\1=g" >$1
[bash]
#!/bin/bash
#列表文件为空则显示用法
[ -z "$1" ] && echo "$0 playlist" && exit 1
#1
#while read szline
#2
trap 'exit 0' SIGQUIT
#2
while true
do
#2
szline=$( sed -n -e $((RANDOM%$(wc -l $1|cut -d' ' -f1)))p $1 )
#提取歌手名字和歌曲名称
szartist=$( echo "$szline" |cut -d$'\t' -f1 )
sztitle=$( echo "$szline" |cut -d$'\t' -f2 )
#按照关键词分行
szinfo=$( wget -q "http://box.zhangmen.baidu.com/x?op=12&c ... ${szartist}\$\$\$\$" -O - |sed -e "s#\[CDATA\[#\n#g" -e "s#\]\]#\n#g" )
#解析歌曲地址
szurl=$( echo "$szinfo" |grep -m1 -o "^http.*\/[0-9]*\/" )$( echo "$szinfo" |grep -m1 "[0-9]*\.mp3" )
#出错时跳过
[[ "$szurl" =~ "mp3" ]] || continue
#解析到地址则开始播放
notify-send "$szartist - $sztitle"
mpg123 "$szurl"
#1
#done < "$1"
#2
done

[/bash]
其实,这脚本是为了另一个脚本而诞生的,这样,我就能收听到百度上的热门歌曲了。

Re: 放个百度音乐在线试听的脚本

发表于 : 2013-07-15 13:47
月下叹逍遥
:em01 旺旺仙贝,乃好