.m3u8视频文件的初步探索
我们在做数据抓取的时候遇到后缀是.m3u8文件的几率特别大,一般都是加密之后的视频流(ts文件),具体为什么要这么做,说是加快了速度,细节这里不剖析。
主要讲一下如何根据.m3u8文件来获取到我们需要的视频:
第一步:.m3u8文件的获取,这个比较简单,网页版F12查找也好,app抓包也好,我们会获取到一个后缀是.m3u8的链接,请求这个链接就能得到.m3u8文件,浏览器里可以根据链接直接下载。
大致.m3u8文件里的内容如下:
上面几行不讲,大致就是一些标准、要求之类的 ,这里我们需要注意的是一下几点,加密方式、key的获取,以及iv(偏移量)。
加密方式就是上面标注的AES-128,key值是URL请求以后获取到的,iv也已经给出了。
先抛出一个问题,就是key的获取过程中,如果直接请求链接,发现返回的key是其他形式要先处理key为bytes格式。
上图的实例中刚好是bytes格式就不再处理,如图:
如果是直接用链接在浏览器里下载再打开,会发现是一个乱码,会让人感觉是不是搞错了。
第二步:
AES-128加密方式讲解
from Crypto.Cipher import AES #未安装的需要安装一下,安装过程百度到处可见def decrypt_single_ts(data,key, iv):"""加密破解:param data:直接请求加密视频链接获取的数据流:param key: 获取到的key,注意必须是bytes格式且长度是16,24,32,等:param iv:偏移量也是bytes格式:return:"""cipher = AES.new(key, AES.MODE_CBC, iv=iv)plain_data = cipher.decrypt(data)with open ('video.mp4','wb')as f:f.write(plain_data)f.close()
第二个问题iv,我们可以看到文件中给出的iv(0xaa3dcf6a7acb92ff4fb08d9b3b3d6f51)并不是16位,如果把这个直接带入函数,会报错说是iv的长度不是十六位,我们就简单处理一下。
iv='aa3dcf6a7acb92ff4fb08d9b3b3d6f51'def hexStringTobytes(str):
"""
str就是要传入的值,但是需要把前面的0X去掉,这一点需要注意,返回的就是16位的bytes
"""str = str.replace(" ", "")print(len(bytes.fromhex(str)))return bytes.fromhex(str)
最后一步就是将正确的参数分别带入破解函数,获取可以播放的视频。经实测,是可以的。
当然,实际中可能key的加密是分情况的,不同的网站会根据情况设置不同形式的加密方式,要根据情况来获取到正确的key。
剩下的还有两个问题,一个是拼接视频流,另一个是提高下载的效率,多线程操作,这两个问题后续解决。
.m3u8视频文件的初步探索相关推荐
- 使用python下载加密的流媒体m3u8视频文件,获取电影资源
使用python下载加密的流媒体m3u8视频文件,获取电影资源 m3u8简介 代码示例 获取文件名与m3u8地址 媒体序列解密 视频序列片段下载 完整代码 后记 m3u8简介 M3U8是Unicode ...
- 视频网站的工作原理-->m3u8视频文件的提取与解析(理论)
目录 一.视频网站的工作原理 二.抓取视频步骤 2.1.找到m3u8文件 2.2.把m3u8下载到ts文件 2.3.ts文件合并为mp4文件 一.视频网站的工作原理 古老的视频网站的视频一般是在源码放 ...
- 如何用最笨最直接的方式破解m3u8视频文件
Network中 直接选中 XHR 查看发送的ajax请求 将指向 m3u8 的这几个文件都下载下来,然后用格式工厂 转为mp4 格式,然后将这些文件合并即可
- m3u8 视频提取工具(下载web中的ts文件)
m3u8 视频提取工具(下载web中的ts文件) 开发背景 m3u8视频格式简介(借用他人描述) m3u8视频格式原理:将完整的视频拆分成多个 .ts 视频碎片,.m3u8 文件详细记录每个视频片段的 ...
- m3u8 视频的解密,合并处理 通过java代码
前言 就是一堆废话,可以不看,文末有代码,可以直接down 通过UC下载了一些视频,觉得过于精彩,应该保存下载,不过它是m3u8格式的, 之前为了给手机刷机,资料必须得备份,于是拷贝了出来,把手机上的 ...
- 音视频骚操作,FFmpeg 如何播放带「图片」的 M3U8 视频,IJKPlyaer 适配非标 TS 文件
如果看到一个需要播放的视频链接显示是一张图片,你会不会感觉有点懵?如果这张图片写着 png,然后实际格式是 bmp ,你会不会更懵了?如果这个 bmp 还做了加密篡改呢?今天我们要聊的就是这样一个充满 ...
- 服务器php将视频转为m3u8,php应用ffmpeg对mp4文件转换并生成m3u8视频流文件
生成m3u8视频流,如果没有做视频流文件,播放视频的时候,一个大视频直接加载,会增加服务器巨大压力,并且视频太大加载慢,显示视频也慢,都不利于观看.那么视频流的好处是,将大视频分成一小段一小段的ts分 ...
- 【S操作】更新网络视频下载方法详细步骤,m3u8格式文件视频文件下载方法,gohls使用详细步骤...
一个月前搞过这个功能,并且发了简单步骤的文章,今天需要使用这个功能,有些地方居然想不起来怎么弄了,完全没有达到我笔记的目的,今天把gohls的详细步骤记录一下,各位参考少走弯路. 步骤简述: 下载go ...
- python合并ts视频_python爬取视频网站m3u8视频,下载.ts后缀文件,合并成整视频
最近发现一些网站,可以解析各大视频网站的vip.仔细想了想,这也算是爬虫呀,爬的是视频数据. 首先选取一个视频网站,我选的是 影视大全 ,然后选择上映不久的电影 "一出好戏" . ...
最新文章
- 学运维能不能通过大厂面试,进来试试——面经总结(二)
- Ceres Solver Document学习笔记
- java 2d svg_SVG 2D入门1 - SVG综述
- SAP Spartacus的SkipLink功能
- HTML css嵌套的一个例子
- Impala入门笔记
- vscode vetur 不想标签属性老是转行 配置
- Python 3 Basics
- 关于使用struts2上传文件时获取不到文件内容的问题的解决方案
- Linux复习-硬盘相关知识点
- 操作系统课程设计——文件系统
- Python数据分析与机器学习-Python库分析科比生涯数据
- 从零学Java(10)之方法详解,喷打野你真的没我6!
- Python 基础变量声明
- linux 安装pkg文件,pkgfile (简体中文)
- 0.高仿Android网易云音乐OkHttp+Retrofit+RxJava+Glide+MVC+MVVM
- 在公共Wi-Fi上保持安全的12种方法
- 科沃斯擦玻璃机器人使用感受_科沃斯擦玻璃机器人怎么样?有人用过自动擦窗机器人吗?价格是多少...
- office2020与2016版的不同_office2016与2019有什么区别_office2016与2019的区别详细说明...
- 使用华为云跑自己的深度学习模型教程