从加密视频网站提取视频的实现

Warning:本文章旨在进行技术性探讨,不作为爬虫手段获得付费版权资源来进行商业性的目的,如有侵权,纯属巧合。

用到的工具:Fiddler,格式工厂,HLS流媒体播放器

最近疫情期间,我哥要给他设计师徒弟们看一些国外的建筑设计作品找找灵感。可惜,国内不能直接访问,我哥问我从技术的角度能否抓取视频。作为一个android工程师,这个提议引起了我的兴趣。

话不多说,上个视频网站实现我们的思路。

这是国外一个视频网站,视频不提供下载。

 

我们在浏览器中按F12键打开控制台。如意料中的一样,找不到视频资源的相关信息。

 

 

这个时候我们上工具,Flidder网络抓包工具。

 

注意:关于Https网站抓包得到的全是如图443的错误,什么资源都抓不到。请卸载Flidder里的相关证书,并重新安装。

 

重新刷新网站,发现出现好多请求。

 

点击这些请求,发现返回的url地址。

 

很显然是通过转码的。我们拿着这些unicode地址转中文。就得到如下图:

 

可以找到和视频相关的播放信息,包括视频的id,播放时长等等。我有想着是否该视频的地址的由一些字段拼接的,然后播放的时候地址拼在一起,因为移动开发经常这么干,哈哈。然后我们并没有从j字段里找到什么规律。

接着看抓包的地址,突然发现一个以m3u8结尾的连接引起我的关注。

 

m3u8是什么?

M3U8 是 Unicode 版本的 M3U,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础,这种协议格式可以在 iPhone 和 Macbook 等设备播放。

 

知道HLS就知道这是个流媒体播放器能直接支持的格式了。我们如果能从视频网站中找到这个跟m3u8相关的请求,就可以拿到这个资源文件。

 

浏览器直接打开地址,果然将m3u8文件下载下来了。原以为下载完成就能拿到视频地址,然而事情没那么简单,以文本格式打开文件是这样的:

 

没有发现以http或者https开头的地址,却又再次发现m3u8地址结尾的信息。看来是嵌套了好几层,网站提供了2种清晰度的视频。将新的文件地址替换掉原域名的文件地址,又下载了一个m3u8的文件,打开是这样的:

 

这就一目了然了。ts格式就是视频的格式了。该网站将一个视频切割成了33个片段,我们要想完整的视频,就需要将每个视频下载下来,然后拼接。

话不多说,将文件地址在之前下载的m3u8的域名结尾替换掉就能下载下碎片视频。下载完成后,我们用到了格式工厂将视频依次拼接,大功告成。

 

 

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值