Firefox浏览器下载网页上的视频

本文介绍了如何使用Firefox的NetVideoHunter插件下载网页视频,并通过CMD和PowerShell命令行合并TS视频流文件,同时提到了VLC播放器的使用,以及在Windows上使用Bash命令的备选方案。文章还推荐了硕鼠作为现成的视频下载工具。

有时在网上看到比较不错的视频,却没有提供下载按钮,此时就需要自己动手了。

 

直接想法是利用Firefox现有的插件,安装的是NetVideoHunter这个插件,设置好之后,点击这个插件的按钮,让它运行起来,然后点开想要下载的视频的播放按钮,这时NetVideoHunter就能够捕捉到视频的URI了,然后就能下载了。

 

对于某些网站,直接就是一个MP4文件,获取地址后,下载个几百MB或者几个GB就完事了;而另外有一些网站,并不是一个完整的文件,而是视频流,比如在IT之家上的视频,会发现是一堆ts文件,每个文件最多只有几MB,这里就存在一个合并的问题。

 

可以使用cmd命令,copy命令何以合并文件,加上“/b”,可以以二进制形式进行合并,合并时完全是按照文件名称的排序来合并的,这时又存在一个文件命名的问题。

 

下载视频时,这些ts文件的名称本来是相同的,而在下载时被自动重命名了,名称的顺序依次是:“filename.filetype”、“filename 1.filetype”、“filename 2.filetype”,以此类推,所以首先需要将“filename.filetype”改为“filename 0.filetype”,至于filename包含中文,并不影响。假设将这些ts文件都放在了C:\Users\username\Video\ts\文件夹下,则可以运行如下命令:

 

copy /b C:\Users\username\Video\ts\*.ts C:\Users\username\Video\ts\undivided.ts


这里还会有个问题,如果ts文件最多只到9的话,没有问题,如果到了10,合并文件时会是“0,1,10,11,2,3,4,5,6,7,8,9”这样的一个顺序,如何解决呢?两种办法,一种是对文件进行重命名,需要用到正则表达式,可以写一个脚本,一劳永逸;另一个办法是,先合并0-9这几个文件,然后合并10-99这几个文件,然后合并100-999这几个文件,然后再按照顺序再合并一次,只需要先放在不同文件夹里执行合并,最终再放在一个文件夹里合并就行了,优点是没有多余的学习成本。我采用了第二种方法,因为目前只遇到了一次这种需要合并的情况,如果以后次数多了,再选择写脚本吧,毕竟学习PowerShell也需要成本。

 


最终得到的那唯一一个ts文件该如何打开呢?VLC播放器就可以,其他播放器估计也可以。VLC是一款跨平台免费开源软件,且没有广告,功能也很强大,推荐一下。


最后还有一个问题就是合并了之后的ts文件无法拖动,只能按顺序看。

 


【2016.10.31更新】

在Windows系统上,下意识的就想到需要再学习PowerShell命令,其实完全可以用Bash命令来做,毕竟已经将Ubuntu内置在了Windows里。待我学习了Bash之后再补充。

 

【2016.11.02更新】

如果有多个文件的话,文件名称依次是“名称”、“名称 1”、“名称 2”,以此类推,需要先将“名称”改为“名称 0”,于是所有文件的命名格式就是“名称 数字”,名称和数字间有且只有一个数字。

PowerShell版本的代码如下:

 

#设置包含所需重命名文件的文件夹路径
$dir="C:\Users\username\Downloads\test";


#遍历该文件夹内的文件
Get-Childitem $dir | % {

#获取该文件的名称
$temp=$_.Name;

#找到空格的位置
$index=$temp.IndexOf(" ");

#获取空格前的名称,包含空格
$headname=$temp.Substring(0,$index+1);

#获取空格后的名称,该名称包含后缀名
$tailname=$temp.Substring($index+1,$temp.Length-$index-1);

#获取数字
$num=[int]$tailname.Substring(0,$tailname.IndexOf("."));

#格式化该数字,不够5位则在前边补零,以下代码中冒号后零的个数就是数字的位数
$num2="{0:00000}" -f $num;

#将原来的数字替换为格式化后的数字
$tailname=$tailname.Replace($num,$num2);

#重命名文件
Rename-Item $_.FullName $headname$tailname;
}

如此重命名就完成了,再使用cmd的cp命令就能合并了。

 


Bash版本的以后再补充吧。不得不承认的是,在Windows平台还是用PowerShell方便。

 

【2018.12.28更新】

有现成的工具就别自己折腾了,推荐硕鼠。

 

附:

硕鼠下载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值