这篇文章只针对能网页播放的视频+没有反嗅探机制的网站
主要解决在线视频下载的问题
先说下做这件事的起因:
是用Ubuntu之后,没找到合适的下载工具,好容易找了一个文件蜈蚣之后,发现每天还得激活一下,虽然不麻烦但还是有点不舒服。
所以,索性了解一下原理,看看能不能有其他方法。
原理:
多数视频网站为了做到独立解码和进度条点哪里播哪里,一般使用的是HLS协议,即HTTP Live Streaming, 是Apple 于2009 年推出的一种基于HTTP 的自适应比特率视频流协议,它描述了一组用于通过互联网流式传输视频和音频的工具和程序。 视频被分成多个片段,这些片段的位置和传送顺序在一组称为播放列表的XML 文件中进行描述,播放列表以文件扩展名= m3u8 结尾
视频播放时,会先读取 .m3u8 文件,再逐个下载播放 .ts 视频片段。
前边说的文件蜈蚣应该也是用这个原理开发的软件。
实操步骤:
知道原理之后,就是怎么操作了。
方法1:纯手工模式
1、打开视频网页,右键选择检查,在网络里筛选m3u8,下载并读取m3u8文件里的ts信息
2、再获取ts文件下载地址(ts文件有多个,获取其中一个就行,其他的地址第3步自己拼)
3、拼装所有ts文件地址。步骤2里的ts地址分两部分,第一部分是网址(A),第二部分是末尾文件名(B)
将A和m3u8文件里的ts文件名,拼成一个一个的下载地址。即可下载。(最好写个循环或者正则表达式处理下载地址)
4、最后合并,使用 FFmpeg 开源项目进行合并就行。
方法2:油猴脚本
油猴上有位大神写了段脚本
用起来很方便,
1、先安装油猴(以edge为例)
2、复制脚本源码
3、添加脚本
4、编辑脚本,然后保存
5、出现这个就完成了
6、刷新在线视频网站,右下角会出现
7、我选的是注入下载,点击之后在视频网页下方会出现以下界面,这些就是m3u8里的ts文件。
8、一个一个下载完成后会自动合并成后缀为ts的文件。然后用播放器打开就行。我用的是potplayer