`
vlinux
  • 浏览: 52423 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

百度MP3 SHELL脚本

阅读更多
版本:2.05 写道

修正因百度mp3下载页面的些许改版造成的无法下载


版本:2.04 写道

因为一些不愉快的杂事影响了我更新,其实我也不清楚是谁对谁错了。
具体修改了什么我不清楚了,因为是早就改好的,只是有一个bug一直没时间去修复,今天正好了解了所有事情之后修复了一把。

新增按歌手搜索的功能
sh baidump3.sh p 周杰伦

sh baidump3.sh player 周杰伦




版本:2.03 写道

修正了一个比较严重的BUG:
在多个下载同时进行的时候,如果两个wget同时下载一个文件,会将原有的文件重写,所以大家有可能在开多个脚本同时下载时会发现某些mp3有多个音乐开头。这个版本就是解决这个问题。下载之前会判断.download文件是否已经存在,如果已经存在那么就不会再进行下载。

另外针对Mac用户增加了个小功能,当音乐下载完之后可以在通知区域给自己一个提醒,前提是要先安装growlnotify。可以参考http://imtx.cn/archives/1518.html这篇博文进行安装。

最后给我的脚本加了个小图标...





是我自己弄错了,之前进行了mp3类型的限制,倒反造成了什么歌曲都无法下载了,并不是百度进行了升级。不过仍然更新到2.02吧。
改进列表
1、从这个版本开始,只允许下载mp3类型的文件。毕竟这个脚本叫baidump3.sh
2、增加MAX_FILESIZE配置,这个参数限制了能下载的最大值,超过这个值的文件将不会被下载。因为我发现实际上下载下来的mp3大多数应该是在2M~10M之间,这个范围之外的mp3大多均没什么意义
3、MIN_FILESIZE的默认值从3M降低到2M
4、有人反应download这个参数太长了,所以我缩短为一个字母"d"。这样即可下载period这首歌了
sh baidump3.sh d period
5、参数更改

增加按照曲风下载的功能,其实之前是有这个功能的,只是被锁定在 悲伤、轻音乐等参数中了,现在将这些解放出来,作为按照曲风进行搜索,然后下载。
sh baidump3.sh s 轻音乐
或者
sh baidump3.sh style 轻音乐

将百度音乐排行参数移动到top参数之下
sh baidump3.sh t top500
或者
sh baidump3.sh top top500


top参数清单(TOP100、TOP500、日韩歌曲、欧美歌曲、电影歌曲、摇滚)
sh baidump3.sh t top100
sh baidump3.sh t top500
sh baidump3.sh t rihan
sh baidump3.sh t oumei
sh baidump3.sh t movie
sh baidump3.sh t rock




心情不好,随便改了点功能
改进列表
1、下载文件大小在下载之前就判定,原来是下载之后
2、下载文件类型过滤掉除了mp3之外的类型,因为我发现会下载一些我不喜欢的格式,开关在365行的awk '{if($6==MP3||$6==mp3)print $0}',不喜欢可以删掉
3、增加风格下载增加DJ
sh baidump3.sh dj

have fun


改进了下,第一个版本过于注重基础功能,各个功能散落再不同的脚本中,之间的数据通过大量的临时文件进行交互,而且在很多临时文件都无法删除掉。
现在重新整合到一个文件里面,程序启动之后只产生一个pid的临时文件用于控制wget子进程。

改进列表
1、去掉临时文件交互的机制
2、增加下载目录指定
3、增加日志功能
4、增加按风格批量下载(轻音乐、伤感、老歌)
5、完善下载子进程控制
6、将多个脚本整合为一个脚本

命令例子
sh baidump3.sh download period
sh baidump3.sh top100
sh baidump3.sh light

have fun


背景:MAC下没有好的下载音乐工具,我这个人比土,平时也都不知道现在流行什么音乐。一般有心情有空闲有电脑又没人骚扰的情况下就去百度mp3的排行榜上扫描下现在都流行啥,然后也装0x11的听下。

需要的外部命令:wget、curl、iconv

用法

sh baidu_mp3_get.sh <歌曲名>
sh baidu_mp3_top.sh top100
sh baidu_mp3_top.sh top500
sh baidu_mp3_top.sh rihan

例如:
sh baidu_mp3_get.sh period
这样脚本会去百度mp3搜索上搜索关键词 period ,然后根据公式 
大小(K) * 速度 / ( 排列顺序 * 0.8 )
计算出权值,取权值最高的进行下载。

目前在Mac OS上和Linux上跑过,Mac OS上需要装wget、curl、iconv

另外urlencode.sh这个脚本是从网上抄的,感谢heiner.steven@odn.de被我抄


  • 大小: 40.2 KB
分享到:
评论
25 楼 vlinux 2010-10-14  
cunsky 写道
下载的歌曲名称乱码  Ӣ%D0%DBhero%CD%F5%B7%C6.mp3

随便找首中文歌曲下来看看是否是乱码,然后将日志贴出来看看?
按理说我应该处理好了系统本地编码问题的呀
24 楼 cunsky 2010-10-14  
下载的歌曲名称乱码  Ӣ%D0%DBhero%CD%F5%B7%C6.mp3
23 楼 cunsky 2010-10-14  
好东西,正愁偶的本上一首歌都没有。
22 楼 vlinux 2010-10-13  
tq02ksu 写道
电脑留 下。 脚本拿走吧。

改好了
21 楼 vlinux 2010-09-22  
tq02ksu 写道
电脑留 下。 脚本拿走吧。

貌似百度更又改版了,昨天下歌曲下不下来,脚本还得再改改。呵呵
20 楼 tq02ksu 2010-09-20  
电脑留 下。 脚本拿走吧。
19 楼 vlinux 2010-07-19  
idealab 写道
有机会也写个Google音乐下载跟大家分享呗。

粗略看了下,应该没问题。不过你也知道,En Taro Adun!Jiabao.Wen
18 楼 idealab 2010-07-15  
有机会也写个Google音乐下载跟大家分享呗。
17 楼 vlinux 2010-07-06  
重在参与,贵在蛋疼
16 楼 lovemylover 2010-07-05  
只能说,哥们你真闲啊
15 楼 java_web 2010-07-05  
vlinux 写道
可能因为写得不好,我再改改,哎...



写的不错啊,至少我认为不错。
因为项目需要,现在想做个日志轮转的sh,有些地方可以参照下。
谢啦
14 楼 jjcang 2010-07-02  
怎么转码啊?我在linux下都是类似 _KBUQ0~C.MP3 的名字。
13 楼 vlinux 2010-07-01  
跑不了的给个日志,或者给出命令执行的信息哈,我想知道报了什么错
12 楼 jjcang 2010-06-30  
msys跑不了
11 楼 vlinux 2010-06-28  
binyan17 写道
顶啊,顶!!

呵呵,只回复简单的顶之类的可没意义哦。一起来玩吧,趁这个脚本还没膨胀到自己都看不明白的程度 -_-
我现在比较关进脚本在跨平台的时候会出现什么问题,目前我都是在Mac OS下进行开发,debian5下进行测试。不知道在fodera、ubuntu等发行版下会怎样,欢迎下载不能跑的兄弟们发个信息提个醒哈。
10 楼 binyan17 2010-06-28  
顶啊,顶!!
9 楼 vlinux 2010-06-27  
guaerjia 写道
下载后执行报错:./baidump3.sh: line 205: syntax error at line 256: `(' unexpected

用 sh baidump3.sh来执行试试呢?
正确的用法是

sh baidump3.sh download period
8 楼 guaerjia 2010-06-26  
下载后执行报错:./baidump3.sh: line 205: syntax error at line 256: `(' unexpected
7 楼 1927105 2010-06-25  
牛叉了,,,,顶百度
6 楼 vlinux 2010-06-25  
2、下载文件类型过滤掉除了mp3之外的类型,因为我发现会下载一些我不喜欢的格式,开关在365行的awk '{if($6==MP3||$6==mp3)print $0}',不喜欢可以删掉


这是一个BUG,不加引号,awk会当成变量来看,但是竟然也能判断过去。。。反正应该改动为才能正确保证只下载mp3类型的文件... -_-
awk '{if($6=="MP3"||$6=="mp3")print $0}'

相关推荐

    LinuxShell脚本学习基础视频

    资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...

    Shell脚本中获取进程ID的方法

    我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。 在某些情况下,你也许想要...

    shell 脚本shell 脚本shell 脚本

    shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本shell 脚本

    shell脚本写的加密脚本

    学习shell脚本,了解linux知识。

    Linux_shell脚本全面学习

    Linux_shell脚本全面学习 Linux_shell脚本全面学习

    250个shell脚本

    Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用大量系统内部的功能来...

    Shell脚本编程100例

    Shell脚本编程100例。 融汇 shell 脚本知识点,集大成之作。 本书实在是学习、进修、面试、居家旅行必备精品!

    python编写shell脚本

    python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本python编写shell脚本

    shell脚本shell脚本shell脚本

    shell脚本shell脚本shell脚本

    Shell脚本专家指南

    Shell脚本专家指南》旨在为Linux、Unix以及OSx系统管理员提供短小精悍且功能强大的shell实现解决方案,教会读者如何使用现有调试器调试shell脚本。全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本...

    Linux 命令与Shell 脚本编程pdf书籍

    Linux命令与shell 脚本大全,内容丰富,包含了shell脚本的技术命令 以及大量的实践内容

    109个shell脚本合集.pdf

    109个shell脚本合集.pdf

    shell 脚本 实例 shell 脚本 实例

    参考shell脚本实例.rar参考shell脚本实例.ra参考shell脚本实例.rarr

    Linux-shell脚本全面学习.pdf

    Linux-shell脚本全面学习.pdf

    提高cpu利用率的shell脚本

    需要提高cpu利用率的shell脚本

    输出执行操作和打印日志的shell脚本实例

    cat /mnt/log_function.sh #!/bin/bash #log function ####log_correct函数打印正确的输出到日志文件 function log_correct () { DATE=`date “+%Y-%m-%d %H:%M:%S”` ####显示打印日志的时间...log_error打印shell脚本

    Linux shell脚本.rar

    文件包含大作业shell脚本(快速备份系统)源码,实验课做的Linux实验shell脚本:Samba实验,DDNS(DHCP服务器 和DNS服务器的配置)的shell脚本,运行脚本每个实验只需要两三分钟即可完成。 其中sy1为实验一脚本,sy2...

    IDEA中编写并运行shell脚本的实现

    主要介绍了IDEA中编写并运行shell脚本的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    shell脚本生成.txt数据文件

    shell脚本生成.txt数据文件,shell脚本生成.txt数据文件

Global site tag (gtag.js) - Google Analytics