免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1907 | 回复: 0
打印 上一主题 下一主题

flv下载脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-04 16:11 |只看该作者 |倒序浏览

                这几天忽然想看《七龙珠》,于是到youku.com下一集一集地看。可是网页看得不爽,广告贼多于是想着把flv下回来看,故而折腾出这个脚本。
原理是使用http://www.flvcd.com/parse.php进行解析,然后调用aria2c进行下载(似乎wget, axel都会报403错误?)。脚本是用ruby写的,为了方便,我还加了GUI的提示(适合KDE。gnome用户就自己看着办吧。)
例子:
$ ./flvcd  http://v.youku.com/v_playlist/f2182585o1p49.html
将一下代码保存为/usr/bin/flvcd ,并添加可执行权限
               
               
               
                #!/usr/bin/ruby
require 'open-uri'
require 'iconv'
# 下载命令调用(注意这里把文件下载到 ~/flv/目录下)
DL = "aria2c -c -j%d -s1 -i%s --referer=%s -d ~/flv"
class Flv
 @@CONVERT = Iconv.new('UTF-8', 'GBK')
 @@FLVCD="http://www.flvcd.com/parse.php?kw="
 #@@FLVCD="http://www.flvcd.com.sixxs.org/parse.php?kw="
 attr_reader :names, :urls, :count, :caption
 # 解析flv播放页面的地址
 def analyse(url)
 path = @@FLVCD + url
 open(path) do |page|
 @content = @@CONVERT.iconv(page.read()).gsub ".sixxs.org", ""
 @names = @content.scan(/N>(.*)/).flatten
 @urls = @content.scan(/U>(.*)/).flatten
 end
 @count = @names.length
 @caption = @names[0].gsub "-0001", ""
 end
 # 生成aria2c的下载列表
 def aria2file(name, postfix = "")
 file = File.new(name, "w")
 @urls.each_with_index do |url, i|
 file.puts url
 file.puts " out=" + @names + postfix
 end
 file.flush
 file.close
 end
end
# 使用kdialog进行提示。
def alarm(msg)
 #puts msg # GNOME用户请使用这个
 system "kdialog --passivepopup '#{msg}' 5"
end
flv = Flv.new
ARGV.each do |arg|
 file="/tmp/urllist" + rand.to_s
 alarm 'Analysing ' + arg
 flv.analyse arg
 flv.aria2file file, ".flv"
 alarm 'Begin to download ' + flv.caption
 system DL % [flv.count * 3, file, arg]
 File.delete file
 alarm 'Compelete ' + flv.caption
end
另外,对于opera用户(比如,我),可以给opera右键菜单添加选项进行调用。
编辑文件 ~/.opera/menu/standard_menu.ini (什么?没有这个文件?请将 /usr/share
/opera/ui/standard_menu.ini 复制过来)。
找到 “[Link Popup Menu]” 一节,添加一行:
Item, "下载 FLVs"          = Execute program, "flvcd", "%l"
找到 “[Document Popup Menu] ”一节,再添加一行:
Item, "下载 FLVs"          = Execute program, "flvcd", "%u"
重启opera,就可以看到对应链接的右键菜单中有新的选项喽!
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/97165/showart_2064076.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP