网页播放器(CKplayer)的视频怎么下载——m3u8简单探索

后续如果有需要,可以看这篇文章:
m3u8格式的视频链接怎么在自己电脑上播放

简要说明

由于最近(2018-12-8)想看一个电影视频(《狗十三》),于是去网上找资源。
这个电影本来2013年就已经开始有资源了,但是迟迟没有上映,有许多的原因导致影片没有上映,但是在2018-12-07日,终于开始上映了。(不扯了,,,再说会被认为是影评了)。

于是呢,我就在网上找资源,之前是有资源的,但是由于现在正在上映,所以网上各种迅雷链接被屏蔽了,于是我就找 能在线播放的网站,终于找到了,不过我想把影片下载下来,这时就联想到各种问题。这篇文章也就是我尝试解决问题的一些记录。

注:
1. 可能只是这一个网站使用下面所说的方法来加载视频资源,其他网站的CKPlayer播放器可能并不会一样,所以需要具体情况具体分析。
2. 由于这种视频网站处于网络灰色地带,很容易更换域名,所以下面例子中的视频网站链接很可能会失效挂掉。但是分析的思路可以参考一下
3. 这里不提倡/提倡盗版影视作品;这里不推荐/推广任何视频资源网站;这里的分析过程仅用作学习交流使用。如发现有任何版权问题,请联系 canliture@outlook.com,谢谢。

在线视频下载思路

通过强大的搜索引擎以及各大视频资源网站的SEO,花了近一个小时,终于找到了比较清晰且质量比较好的资源。
电影链接:**电影网

在这里插入图片描述

于是有几种方法来下载这个视频,刚开始用最容易想到的IDM插件下载
这种方法非常简单的了,如下图所示。我们安装完IDM软件之后,它会自动安装Chrome IDM插件,此插件自动检测可播放的音视频,点击即可下载。非常简单。
在这里插入图片描述
使用IDM下载下来后,发现它的文件后缀为.ts

而通过查找资料,知道一般网站的视频都是分段进行播放的,一边下载一边播放。

来自卡饭论坛
如果是整段视频文件加载,那么一旦用户打开网页请求视频,视频就会一直缓冲直至全部完成,这样会一直占用服务器资源和用户本地带宽资源,而用户可能只看了其中的一小部分就不看关闭了,这样就造成了资源的浪费;
而视频是分段加载,每次在用户请求时只缓冲一小段,用户看完这一小段后再缓冲下一个小段视频,这样只在用户观看时缓冲视频,可以降低服务器的压力,也节省了用户的带宽资源。
一般下载视频,如果用网站自己的客户端下载通常就是一个文件,如果用第三方客户端下载,如维堂、硕鼠等,就是自动下载所有分段然后再合并成一个视频。

那么我们这里找的电影资源也一定是分段下载播放的。下面我们给出网络数据分析过程。

网络数据分析与m3u8

一般最基本的查看一个视频信息的方法就是审查此播放器元素,然后找到src或者与视频原地址相关的链接,这里我们发现了一个src地址:
src="blob:http://www.xiachehd.com/ac0cae36-6bb8-4da4-972c-9d6e353bd17a"

把它放到浏览器输入打开,发现没反应,放到下载器软件里面也没反应,所以猜测这个地址可能需要网站播放器来识别,我们并不能简单地通过此链接来解析出视频的信息。
在这里插入图片描述

所以尝试着查看网络数据相关的信息。之前我们谈到视频是由许多的视频片断所组成的。实际上,视频片段的格式分很多种,这里我们通过尝试,发现其格式为 m3u8Network中filter过滤一下关键字m3u8。
在这里插入图片描述
这里着重分析

  • index.m3u8
  • F7CA47696BF15CB114E8EF3933DEAEDC.m3u8

分别点击这两个请求名字。可以发现视频网站所请求的内容为另一个域名:
在这里插入图片描述
在这里插入图片描述

下面我常识性的将上面第一个图的index.m3u8链接在浏览器中输入打开:
https://v3.438vip.com/20180206/1J0oX5Ro/index.m3u8
发现浏览器直接下载下来了,但是我用视频播放器打开会报错。

于是我查看index.m3u8的response信息到底是什么:
在这里插入图片描述
发现返回的信息仅仅为一段文本!于是我用记事本打开下载好的index.m3u8文件,确实为如下的文本:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1000000,RESOLUTION=1024x820
/ppvod/F7CA47696BF15CB114E8EF3933DEAEDC.m3u8

图中横线表示的一段符号如下:
/ppvod/F7CA47696BF15CB114E8EF3933DEAEDC.m3u8
发现F7CA47696BF15CB114E8EF3933DEAEDC.m3u8不就是index.m3u8下面的请求嘛。
于是查看F7CA47696BF15CB114E8EF3933DEAEDC.m3u8的response信息:
在这里插入图片描述
这里的response信息足足有2000多行:
在这里插入图片描述

现在我们基本可以猜测这里的类似于下面的链接:
/20180206/1J0oX5Ro/1000kb/hls/5aHEE57211154.jpg就是一个个单个视频文件了。

下面尝试一下。由于我们知道其视频的真实地址并不是我们的视频网站,而是由一个专门存放视频的服务器地址。

我们所访问的视频网站的域名:http://www.xiachehd.com/
视频网站播放的视频存放的域名(视频的地址):https://v3.438vip.com(根据上面介绍的图中的Header的Request URL可以看出来)

那么我们就尝试那两千多行的第一个地址倒数的某个地址吧:

/20180206/1J0oX5Ro/1000kb/hls/5aHEE5721000.jpg
/20180206/1J0oX5Ro/1000kb/hls/5aHEE57211155.jpg
也就是如下的两个地址
https://v3.438vip.com/20180206/1J0oX5Ro/1000kb/hls/5aHEE5721000.jpg
https://v3.438vip.com/20180206/1J0oX5Ro/1000kb/hls/5aHEE57211155.jpg

毫无疑问,在浏览器中打开上面的链接,可以直接下载到两个文件。
我们用视频播放器分别打开两个文件,可以看到简短的视频。很熟悉的场景(后面的图我处理了一下):
在这里插入图片描述
在这里插入图片描述
所以现在我们能够理解index.m3u8中index的意思了。index为索引。也就是整个视频文件的索引文件,通过index文件,我们能够索引到另一个文件,这个文件存放了视频的全部索引信息。如下图
在这里插入图片描述
所以我们就能找到整部电影的真实视频地址了。

知道m3u8地址之后,如果想在本地播放此视频,可以参考文章:m3u8格式的视频链接怎么在自己电脑上播放

更多

更加详细的有关m3u8的理论知识:
https://www.cnblogs.com/pukaifei/p/8312936.html

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值