记录一次加密网页视频下载的过程

背景:

友人花了960大元买了个号称什么什么博士的直播课程,真是让我惊掉下巴,免费的学习视频那么多,还真有通过花钱激励自己的。
视频只能在手机上回看,所以想下载下到电脑里,实现“全方位立体化”学习。我本着不能让960元白死的想法,决定办它。
记录一下曲折的过程……

分析:

  • 方案一:网页视频嗅探的方法很普及,以为手到擒来,准备五分钟交差,所有能嗅探的工具都不能找到视频地址。
  • 方案二:退而求其次,用录屏的方式。视频类似于双流的形式(如下图),有两个窗口叠加,直播画面常驻页面,当需要教材的时候会动态在视频下方显示类似PPT的课件。但是,只有小窗口才能同时显示直播画面和教材内容,全屏的时候只显示直播画面,而小窗口的录屏是完全看不清教材内容中的文字的。此方案失败。

思路:

本来已经放弃了,但960死的太惨了,天天让我做噩梦,于是进一步分析了下……
通过查看网页源代码,发现视频格式是m3u8。m3u8文件其实是HTTP Live Streaming(缩写为 HLS)协议的部分内容。

HTTP Live Streaming

HLS的工作原理是把整个流切片,即把一个大的媒体文件进行分片,然后将分片的路径以m3u8文件的形式进行记录,可以理解为m3u8为整个文件的播放列表。因此,想要下载完整的视频,本质就是对m3u8文件的解析过程。

解决过程:

一、直播画面部分

  • 通过浏览器开发工具查找m3u8的路径;
  • 使用M3U8-Downloader工具分析地址并下载碎片合并;
  • 使用视频工具转换视频格式。

二、教材内容部分

  • 通过浏览器开发工具发现教材内容实际上就是JPG图片的序列。在视频起始位置播放以获取图片的起始序列,然后在视频临近结束位置播放以获取图片的结束序列,从而,掌握图片命名规则和图片真实地址,然后批量下载即可。
  • 该直播视频的教材内容图片是以时间为基准升序排列的,将图片序列生成PDF即可。

至此完成了此次加密网页视频下载的过程。

订阅
提醒
0 评论
内嵌讨论
查看全部讨论