通过 powershell 下载视频与文件

别人发我一个WPS办公软件学习的视频,发现还是腾讯会议的直播,还有回放有效期,想着下载下来慢慢看,慢慢学一下,本来是想用抓包用ffmpeg 下载m3u8视频来着,抓包看腾讯会议回放视频是mp4格式,存储在腾讯云的cos上,有防盗链设置,只拿到鉴权网址访问返回403,没法用,需要带着header头参数才能下载。

想用cmd模式下载,发现参数换行还挺复杂,需要各式的转换,放弃后尝试用 Windows Powershell 试试。

0

0

先通过浏览器的F12 控制台的网络请求中找到 mp4 视频的链接 :为了方便直接搜索mp4后缀。

0

使用控制台,网络请求的功能将网址复制为 powershell 。

0

复制的 powershell 的请求内容是打开这个文件的, Invoke-WebRequest ,如需要另存为文件,要追加一个

-OutFile ‘E:/video/06.mp4’

(注意前面的空格还有改另存为的目录与文件名)。

Invoke-WebRequest -Uri “https://baidu.myqcloud.com/cos/ecording-2.mp4” -OutFile ‘E:/video/06.mp4’

0

打开windows 的搜索,找出出PowerShell并打开。

然后在powershell 中运行,注意文件中的目录需要提前建好,要不然会报错找不到目录。

0

粘贴刚才拼接好的代码。

0

等待它帮你下载完成就可以了。

运行完,powershell 窗口会关闭,去目录里检查文件下载完成了就行。 开始我以为执行失败,重新下载了好几次。。。

下载失败的和进行中的只有一个小文件。

0

windows powershell下载文件的4种方式

在windows下使用powershell自带命令下载文件时有以下4种方式:

  1. Invoke-WebRequest
  2. Invoke-RestMethod
  3. Start-BitsTransfer
  4. System.Net.WebClient

前提,需要powershell 5.1(win10默认就是)

实验,在同一台机器(5G 400Mbps)上下载同一个文件(123MB),查看异同

一、Invoke-WebRequest

可以下载http,https,ftp资源

使用: Invoke-WebRequest -Uri <source> -OutFile <destination>

0

可以看出,在下载过程中,程序是先读取至内存中的,全部读取完后再写入文件,在读取过程中,文件大小为0

0

我们再看看下载时长:

0

1分15秒

二、Invoke-RestMethod

和RestWebRequest类似,区别在于RestMethod支持json和XML内容的代码,会尝试适当的解码器来读取,不支持HTML

使用: Invoke-RestMethod -Uri <source> -OutFile <destination>

再看看时长:

0

1分31秒

三、Start-BitTransfer

这是windows自带的一个程序, 支持断点续传、下不同文件等,有需要的可以查看后面的参考链接

使用: Start-BitsTransfer -Source $source -Destination $destination

下载过程

0

与上面不同的是,下载前会先占用磁盘大小,生成tmp文件

0

时间:

0

1分35秒

四、System.Net.WebClient

使用:(new-object System.Net.WebClient).DownloadFile(‘src_url’, ‘dst_file’))

时长

0

综上:4种方式下载文件在时间 长差距不大,所以根据所需选用

参考文档:

https://adamtheautomator.com/powershell-download-file/

来自 <http://t.zoukankan.com/landhu-p-15137792.html>