rainkin教你如何下载flash中的视频

我因为之前购买了某个教学视频的课程,寒假正想看的时候发现还剩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. 具体步骤

第一步.先把上面的软件下载下来,解压到同一个文件夹

rainkin教你如何下载flash中的视频rainkin教你如何下载flash中的视频


第二步. 打开你想要下载的视频的网站,先不要播放

(主要注意的是:官方说仅支持32位的浏览器,大家自己可以先用64位的试试,不行再换)


第三步. 打开你解压的文件下下的 RTMPDumpHelper.exe文件

rainkin教你如何下载flash中的视频

打开后,软件会自动给检测浏览器,attach to the browser a dll file


rainkin教你如何下载flash中的视频


第五步,播放视频,图片右方那个cmd窗口就是一个服务器,用来截获视频流

成功后显示如下:


rainkin教你如何下载flash中的视频

rainkin教你如何下载flash中的视频

此外在RTMPDumpHelper的设置中可以选择视频存放地址,这里就不再过多的截图了~


二、下载基于flash的http视频

以为这样就可以把所有视频下载下来了,没想到问题又来了~

我发现有部分的视频,不能被上面的软件截获,那就只有一种可能了:它们不是基于rtmp协议的~

于是用抓包软件抓抓,发现原理是差不多的,依旧是外面套了已成flash的马甲,但是里面的协议换成了http的,这样我们当然就抓不到啦~ 而且视频的内容并不会被缓存,因此想通过ie查看缓存文件的办法来获得视频也是行不通的~

那要怎么办呢?

Fiddler登场了!Fiddler也是一个抓包软件,但是不同于wireshark的是,他并没有使用WinPcap而是通过一种代理代理服务器的方式巧妙地抓取http请求,具体大家想了解就百度吧~


第一步,下载Fiddler:http://fiddler2.com/


第二步,打开Fiddler,然后播放视频


第三步,我们可以看到Fiddler捕获到了一个flash文件

rainkin教你如何下载flash中的视频


rainkin教你如何下载flash中的视频

然后右键选择 save -》and open as local file

ok,保存下来了~


三、原理

其实这两个方法的原理都是一样的~ 我官方的一个图片表示下:


rainkin教你如何下载flash中的视频
rainkin教你如何下载flash中的视频

在客户端pc机与你请求的网站的服务器之间架一个代理服务器,每次你从浏览器发送请求,都会先经过代理服务器,

代理服务器再将请求转发给真正被请求的服务器。服务器返回的信息也是返回给代理服务器,代理服务器再将信息发

送给客户端pc机。

因此,当视频从代理服务器经过时,我们将他保留下来,这样就成功下载了~

rainkin教你如何下载flash中的视频

上一篇:Vue2.x 数据响应式原理(笔记)


下一篇:Springboot+mybaits+mysql,竞拍拍卖系统。毕业设计