我因为之前购买了某个教学视频的课程,寒假正想看的时候发现还剩9天的有效期了,无奈只好寻求办法把视频下载下来看,经过2天的奋斗终于成功下载,特此分享给大家~
一、下载基于flash的rtmp的视频
1. 简介
首先,我使用的是chrome浏览器,本以为从应用商店下载一些视频嗅探的插件就能成功获得下载,没想到视频加密了,获取到的只是一个基于flash的播放器(.swf格式),采用RTMP(实时传输协议)来获取视频内容,这样就能保护视频,防止被下载
既然明白插件没用,那就从RTMP下手吧~ 于是google一下rtmp download,果然国外牛人就是多,已经有人开发出如何截获rtmp的软件了(RTMPDumpHelper),下面我就为大家演示下如何操作
此外我们还需要一个小工具RTMPDump.RTMPDump是一个匈牙利人的作品。他在Adobe未公开RTMP协议的条件下,写出了针对RTMP协议的客户端程序,实在了得。他和Adobe的故事,大家也看在网上看看。
RTMPDumpHelper软件下载地址:http://www.nirsoft.net/utils/rtmp_dump_helper.html
RTMPDump软件下载地址 http://repo.or.cz/w/rtmpdump.git
2. 具体步骤
第一步.先把上面的软件下载下来,解压到同一个文件夹
第二步. 打开你想要下载的视频的网站,先不要播放
(主要注意的是:官方说仅支持32位的浏览器,大家自己可以先用64位的试试,不行再换)
第三步. 打开你解压的文件下下的 RTMPDumpHelper.exe文件
打开后,软件会自动给检测浏览器,attach to the browser a dll file
第五步,播放视频,图片右方那个cmd窗口就是一个服务器,用来截获视频流
成功后显示如下:
此外在RTMPDumpHelper的设置中可以选择视频存放地址,这里就不再过多的截图了~
二、下载基于flash的http视频
本以为这样就可以把所有视频下载下来了,没想到问题又来了~
我发现有部分的视频,不能被上面的软件截获,那就只有一种可能了:它们不是基于rtmp协议的~
于是用抓包软件抓抓,发现原理是差不多的,依旧是外面套了已成flash的马甲,但是里面的协议换成了http的,这样我们当然就抓不到啦~ 而且视频的内容并不会被缓存,因此想通过ie查看缓存文件的办法来获得视频也是行不通的~
那要怎么办呢?
Fiddler登场了!Fiddler也是一个抓包软件,但是不同于wireshark的是,他并没有使用WinPcap,而是通过一种代理代理服务器的方式巧妙地抓取http请求,具体大家想了解就百度吧~
第一步,下载Fiddler:http://fiddler2.com/
第二步,打开Fiddler,然后播放视频
第三步,我们可以看到Fiddler捕获到了一个flash文件
然后右键选择 save -》and open as local file
ok,保存下来了~