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

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#1

帖子 YeLee » 2013-06-20 21:10

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分隔。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
youzhiyili
帖子: 2422
注册时间: 2012-03-22 20:42
系统: ubuntu22.04

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

#2

帖子 youzhiyili » 2013-06-21 0:23

mark
@自由建客 @qy117121 @枫叶饭团 @cikekid @YeLee @jtshs256 @eexpress @ljj_jjl2008 @zhw2101024 @TeliuTe @月下叹逍遥 @leeaman @懒蜗牛Gentoo @灰色小狼 @photor @adagio @JiangHui @phoenixlzx @oneleaf
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#3

帖子 YeLee » 2013-06-21 7:07

对你们这群人类算是彻彻底底地失望了,就算是跟百度有仇也不能迁怒于我身上啊,就算是对我不满也不能累及百度啊,好好的一个脚本,就一个人顶,以后有好东西再也不给你们了。 :em36
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

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

#4

帖子 qy117121 » 2013-06-21 7:23

不会用
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#5

帖子 YeLee » 2013-06-21 7:31

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

代码: 全选

youzhiyili[[:tab:]]mark
qy117121[[:tab:]]大水逼
YeLee[[:tab:]]eexpress杀手
上面的id替换为歌手名字,[[:tab:]]则表示制表符,后面那串东西表示歌曲名字,一般是一首歌一行的格式,一个歌手多首歌则分为多行。
我说得够明白的了,不明白自己面壁去。 :em01
附件
qy的播放列表.txt
(99 Bytes) 已下载 99 次
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

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

#6

帖子 qy117121 » 2013-06-21 7:36

你妹的,这么麻烦,不用了
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
jtshs256
帖子: 22323
注册时间: 2010-07-19 21:41
系统: OS X

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

#7

帖子 jtshs256 » 2013-06-21 9:27

百毒上没啥要的资源
轮子写个 simplecd 的吧
躺平
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

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

#8

帖子 qy117121 » 2013-06-21 9:32

游鸿明 诗人的眼泪
游鸿明 白色恋人
游鸿明 孟婆汤
Groove Coverage God Is A Girl

这都什么啊,轮子听的?
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#9

帖子 YeLee » 2013-06-21 9:36

qy117121, 这又与你相关? :em01 :em01 :em01
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

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

#10

帖子 qy117121 » 2013-06-21 9:38

这脚本,怎么换下一首,还是说只能一首一首听?
唉,算了,本地的脚本都删除了已经
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#11

帖子 YeLee » 2013-07-15 11:57

代码: 全选

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]
其实,这脚本是为了另一个脚本而诞生的,这样,我就能收听到百度上的热门歌曲了。
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
月下叹逍遥
论坛版主
帖子: 33994
注册时间: 2010-10-07 14:23
系统: Archdows10
来自: 某系某星某洲某国某省某市
联系:

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

#12

帖子 月下叹逍遥 » 2013-07-15 13:47

:em01 旺旺仙贝,乃好
浮生七十今三十,从此凄惶未可知
回复