Contents
在浏览网站的过程中,我们不可避免的每天接触到一些视频,有些视频可能深受喜爱,想要下载到本地保存。但是微博、B站、爱奇艺等国内流媒体、Netflix等国外流媒体、YouTube网页版、Twitter网页版等等耳熟能详的网站,都没有提供下载的途径。
这就导致出现「B站的视频真不错,但是我没有办法下载」这样的情况。今天和大家来谈谈,我在日常使用电脑的时候,是如何来解决「网站上面下载视频」的问题。
交流群:Newlearnerの水群
原始方法
最原始的方法是利用网络调试工具直接抓取直链,然后下载。
调试工具
- Mac端:Charles(花瓶)、Surge等
- iOS端:Thor、Charles等
- 安卓端:HttpCanary等
- Windows端:Fiddler等
注意:移动端设备可以通过设置http局域网代理将网络请求交给电脑端的调试工具处理
由于原理基本一致,只是ui和细节操作有些许不同,因此我举Mac端surge以及iOS端thor为例,其他平台可类比之。
-
Surge
作为一个半吊子调试、全职翻墙工具,surge有它自己的优势:边上外网边抓取。相比于Charles还需要配合External Proxy,Surge抓取直链确实是很方便了。
在使用之前,我们需要在Mac上面安装ssl证书,开启「流量抓取」和「Mitm」(中间人攻击,用来解密https)。如果对具体操作步骤不清楚,请参考我之前写的「surge入门」。
1、抓取微博视频(mp4)
打开微博,找到我们想要抓取视频的页面,视频开始播放后,来到Surge Dashboard
。此时我们会看见很多请求,从获取方法是post
的请求中寻找,找到如下链接。一般来讲链接中会显示mp4/video等表示「视频」的字样。完整复制下来,使用浏览器或者wget下载到本地即可。
2、抓取Twitter视频(m3u8)
打开推特,待视频开始播放,来到Surge Dashboard
。从获取方法是post
的请求中寻找,会看到结尾是m3u8的链接,复制到浏览器或者wget下载。
下载完毕之后发现得到了一个m3u8
文件,我们要将它转换为mp4格式。转换工具自行寻找,个人比较中意的是ffmpeg
,在Mac下面输入brew install ffmpeg即可安装。(需要先安装homebrew包管理器,顺带吐槽一下homebrew安装了1w个依赖)
用文本编辑器打开该m3u8
文件,会发现里面ts文件( 传输流文件)链接并不全,直接扔ffmpeg
会报错。因此需要在每个ts文件链接之前加上https头并补全域名https://video.twimg.com
。
之后在终端输入:
1 2 3 4 5 |
#强制terminal走代理(借助软件实现亦可) export https_proxy=http://127.0.0.1:端口号;export http_proxy=http://127.0.0.1:端口号;export all_proxy=socks5://127.0.0.1:端口号 #ffmpeg格式转换 ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto,httpproxy -i /path/to/file/xxx.m3u8 /path/to/file/xxx.mp4 |
-
Thor
锤子是iOS上面不错的抓包软件,支持https解密、断点、正则等,但是缺点也很明显:局限于iOS系统的限制,不能像surge iOS一样边上外网边抓取。因此折中的方案是使用路由器等透明代理或者使用http局域网代理。
抓取微博视频
我们再以微博视频「大碗宽面为例」,thor配置好VPN以及证书之后,选择「全局抓包」。并打开微博,播放该视频。开始播放后回到thor,寻找相关链接,右键「导出原始链接」到浏览器即可下载。
和桌面端的软件不同,锤子的ui设计的还是很人性化的,没有一种让你在茫茫链接中寻找的感觉。
实际上Thor还有一个值得吹爆的功能,那就是过滤器。thor的过滤器提供了诸多筛选项目:抓包协议、域名、关键字等,并且提供了黑名单和白名单两种运作模式。如果你需要对某一个网站长期抓包的话,可以考虑制作一个过滤器,避免全局抓包寻找相关链接的苦恼。
刚好最近得到了大佬分享的400余过滤器合集,分享出来:
点此下载 Thor 过滤器合集 密码:newlearner
不足
- 对于部分基础薄弱的人,上手难度大
- 并不是所有网站都可以通过直链下载视频,有的是多个m3u8文件,有的含有加密验证(比如Netflix)
- 相比封装好的视频下载工具,十分繁琐
视频下载app
术业有专攻,随着需求的增加,人们也开发了众多视频自动抓取下载工具。下面和大家分享一下我了解的:
-
You-get
Github地址:you-get
平台:macOS、Windows、Linux全平台
介绍:基于python的命令行程序,提供便利的方式来下载网络上的媒体信息。支持油管、推特、ins、汤不热、Vimeo、Flickr、niconico、Facebook、AcFun、贴吧、哔哩哔哩、爱奇艺、斗鱼、豆瓣、PPTV、腾讯视频、优酷、抖音(TikTok)、知乎、微博
等主流媒体&社交平台的视频抓取下载。
安装:需要安装python3.2及以上,Windows使用pip3 install you-get
,macOS使用brew install you-get
安装。
使用:Mac终端/Windows powershell输入 you-get -o ~/path/to/save -o filename +视频链接
,终端走代理的方法见上文。
-
Downie 3
Mac用户对这款软件应该不陌生,是一款十分好用的Mac端视频抓取下载软件。
官网:Downie 3
平台:macOS
使用:下载好软件之后根据提示安装好相对应浏览器的扩展,打开想要下载的视频网页,并点击扩展。Downie会将其下载到本地。
缺点:相比于you-get,在下载Twitter等网站视频时会出现「需要登录/不能精准识别链接」的情况,这个时候需要我们手动去操作。
-
Shortcuts(捷径)
捷径是iOS上的一款效率软件,实现的效果是点一点即可实现复杂的功能。捷径圈子里也有很多油管、ins、抖音等网站的视频下载捷径文件。
App Store下载:shortcuts
平台:iOS
使用:将对应的视频连接复制,运行捷径,视频下载在「照片.app」中
捷径推荐:
-
X.cat
个人开发者开发的一款iOS,可以轻松抓取和下载音频/视频/图片,比较全能
平台:iOS
下载:因为作者问题,该软件内测到现在没有上架,微博搜索「爱尔兰雪」和作者联系购买。
吐槽:①不上架 ②开发者把用户当傻子 ③贵,没错就是贵
-
FlixGrab+
下载Netflix视频专用~
Netflix限制用户下载的视频只能通过奈飞客户端+登录奈飞账号后观看,十分鸡贼。目前除了在线录屏,只剩下这个方法了。(感谢开发者)
官网:FlixGrab+
平台:Windows
使用:没啥好说的,直接用
后记
很多视频网站限制下载多半是处于版权的考虑,以上内容仅供学习娱乐所用,不得将下载的侵权视频商用。
图片和音频的抓取通用以上方法。
本人对安卓端极不熟悉,如果有安卓端好用的app推荐,请在下方留言,十分感谢!
给力!谢谢分享!