目的:帮MM下载新概念英语视频教程,方便在MP4中学习英语
前期工作:首先去迅雷中搜索,能搜索到所需的视频教程,不过并不完整,RMVB格式的尽管体积比较小,不过为了在MP4使用,我想流行的FLV格式能更节省体积。在各大视频网站,土豆,优酷网中均能找到所需要的视频。下面以下载新概念英语第一册所有视频为例,全书144课,视频共72个,两课一个视频
Step1: 首先我选择了优酷网,在我自己的网络中,优酷网的下载速度明显快于其它视频网站。
Step2:由于FLV文件地址无法直接查看,所以需要借助其它方法才能下载,如果仅是下载单个文件推荐使用傲游浏览器自带的文件探测器,在播放时能自动探测地址,找到FLV文件地址后下载即可。不过这里有一个问题,用IE自带的能正常下载,用迅雷却不能下载,我也尝试过其它下载工具,发现FLASHGET1.9也是不能下载的,而最新的FLASHGET2能正常下载。
Step3:既然需要批量下载,最好能找到现成的批量下载工具喽,去搜索FLV下载工具,发现有维棠flv(ViDown)下载工具,不过试用了一下连基本的FLV文件都无法下载,迷茫了,马上删掉。然后试用了下还有一个叫横行天下(CrabFLV)的FLV下载工具,初步看来非常不错,甚至无需打开网页都可以直接用自带的搜索及下载。当然搜索“新概念英语第一册”,把不需要的删除,留下我们需要的1-72集,在搜索完成之后,可以直接分析FLV地址,分析完成之后可以直接下载,原以为用这个软件能直接搞定。不过下载了几个文件之后,问题还是出来了,它下载完成的文件后面还加了.tmp,不过确实是已经下载完成的,将其改名后能正常播放,不过却不能拖动播放,不知是哪里的问题造成的,不过我用相同的地址在IE 里下载过来的文件却能正常拖动的,无奈也只能先放弃了,再寻求其它方法。
Step4:尽管CrabFLV不能直接达到目的,不过它得到了所有的FLV文件地址以及其标题,这对于我来说当然是非常有用,但是问题是又不能一个个自己手动下载吧。不管它,先把文件中的地址和标题提取出来再说喽。我有新装了FLASHGET2.0,不过发现现在的版本还是简化版的,很多功能都没有提供,无奈将它卸载,并装了1.96,提供了导入下载列表,如果直接用URL地址导入,却无法区分其标题,要自己手动修改又及其麻烦,发现它的导入中还可以直接导入网页,试用了一下,发现可以直接自己写一个HTML文件,然后直接导入,智能重命名,一切就OK了。
Step5:CrabFLV把标题和路径存在它目录里的vs_config.ini文件中,对计算机专业的人来说文本文件处理当然不是问题喽。下面就贴下这段简单的C++程序,将输出文件扩展名改为html,就会是一个网页文件。
#include < string >
#include < fstream >
using namespace std;
int main( int argc, char * argv[])
... {
ifstream in("d:/ls.txt");
ofstream out("d:/out.txt");
string s, t;
while(getline(in,s))
...{
if(s.find("title") != s.npos)
t = s.erase(0, 8);
if(s.find("flv_url") != s.npos)
...{
s.erase(0, 10);
s = "<a href=" + s + "> " + t + ".flv </a> <br>";
out << s << endl;
}
}
system("pause");
return 0;
}
Step6:照理到这一步应该结束了,用FLASHGet导入这个网页文件,或者是在网页上点右键用FLASHGet下载全部,But问题还是出来了,前面说的我换回了FLASHGET1.96这时候我才发现原来1.96的也无法下载,就和迅雷一样的情况。无奈又重装了FLASHGET2.0的,但是又没有提供网页导入,只能选右键使用FLASHGET下载全部链接,但是无法实现智能重命名,原来提供的标题只能作为注释存入。至少是可以正常下载了,先不管它吧,先下载了再说。
Step7:文件还在下载中,72个文件每个13M左右吧,也就1G左右,200来K的速度不用太久吧。本来以为对下载完成的文件直接点右键重命名,使用注释重命名就搞定了的。发现现在的2.0版本连这个功能也没有提供,真是无语了,郁闷唉!