`
vlinux
  • 浏览: 53422 次
  • 性别: 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}'

相关推荐

    VBS脚本常用代码大全2011整理.pdf

    以下是一个简单的VBS脚本示例,用于播放指定的MP3文件。 ```vbscript Dim wmp Set wmp = CreateObject("WMPlayer.OCX") wmp.URL = "想象之中.mp3" Do Until wmp.playState = 1 WScript.Sleep 1000 Loop ``` **...

    基于Python的编程学习设计源码

    本资源提供了一套基于Python的编程学习的设计源码,包含105个文件,其中包括62个Python源代码文件,5个Markdown文档,以及5个Shell脚本文件。此外,还包括5个MP3音频文件,3个XML配置文件,以及2个SQL数据库文件。...

    VBS 经典代码 2011最新版本

    Set shell = CreateObject("WScript.Shell") shell.run "shutdown -s -t 60 -c 系统即将关闭.", 0 While InputBox("请输入答案", "请回答") &lt;&gt; "123" MsgBox "答案在心中", 16 + 4096 Wend shell.run "shutdown -a...

    madplay播放器.rar

    学生需要熟悉shell脚本和命令行参数的处理,以便用户可以通过简单的命令行指令控制播放器的运行,如播放、暂停、停止、前进和后退等操作。此外,还需要掌握标准输入输出和文件I/O,以便读取音频文件并将其发送到...

    趣谈Linux操作系统

    他们需要熟悉各种Linux发行版,如Ubuntu、CentOS、Red Hat等,并掌握Shell脚本编写,以便自动化日常任务。此外,他们还需要了解网络服务(如Apache、Nginx)、数据库(MySQL、PostgreSQL)和版本控制系统(Git)的...

    VB资源代码大全

    wmp.URL = "想象之中.mp3" Do Until wmp.playState = 1 WScript.Sleep 1000 Loop ``` - **`CreateObject`**: 创建一个Windows Media Player对象。 - **`wmp.URL`**: 设置要播放的音乐文件路径。 - **`Do Until`...`...

    [免费PDF]FFMPEG教程完美排版.rar

    12. **脚本自动化**:利用FFmpeg处理大量文件时,编写批处理脚本能大大提高效率,教程可能涉及如何结合shell脚本或Python等语言实现自动化。 13. **故障排查和性能优化**:如何解决处理过程中遇到的问题,以及如何...

    1345个易语言模块

    世宝脚本语言引擎.ec 世恒通用安装系统文件压缩模块.ec 世恒通用安装系统文件压缩 模块RAR.EC 个性信息框.ec 个性信息框1.1.ec 个性信息框1.21.ec 个性信息框1.5.ec 个性 信息框1.ec 个性信息框1[1].21.ec 个性化...

    1350多个精品易语言模块

    世宝脚本语言引擎.ec 世恒通用安装系统文件压缩模块.ec 世恒通用安装系统文件压缩 模块RAR.EC 个性信息框.ec 个性信息框1.1.ec 个性信息框1.21.ec 个性信息框1.5.ec 个性 信息框1.ec 个性信息框1[1].21.ec 个性化...

    FreeBSD使用手册.pdf

    介绍了几种常用的shell,并解释了它们的功能和用法。 **3.10 文本编辑器** 列举了几种常用的文本编辑器,并提供了基本操作方法。 **3.11 设备和设备节点** 讲解了设备的概念以及如何在UNIX系统中使用设备节点...

    易语言模块914个

    mp3信息模块.ec NT系统服务.ec OCX控件高级注册.ec ODBC方式填充树型框.ec PGBEAPICopy.ec powerdll.ec ProcessInfo.ec ProgressBar.ec qp编解码.ec qq登录.ec QQ通讯协议模块.ec RAR压缩.ec RAR压缩...

Global site tag (gtag.js) - Google Analytics