Young87

SmartCat's Blog

So happy to code my life!

游戏开发交流QQ群号60398951

当前位置:首页 >跨站数据测试

「python爬虫实战」使用多进程教你下载M3U8加密或非加密视频

前言:常码字不易出精品更难;如果没有你的关注,那我所做的努力将毫无意义~

希望:喜欢博主的小伙伴,希望点个关注哦~,更多爬虫项目请收藏本栏目,不定期添加干货

目录

一、两者不同

非加密 的m3u8文件

 加密 的m3u8文件

 二、爬虫源码

三、爬虫内容详解

初始化m3u8下载类

hello方法

run方法

分析输入的链接 -[关键]

打开多进程,开启进程池,加速下载速度

download方法

进度条显示

下载成功后擦屁股[文件合并,碎片清除]


m3u8 是一种基于 HTTP Live Streaming 文件视频格式,它主要是存放整个视频的基本信息和分片(Segment)组成。

相信大家都看过m3u8格式文件的内容,我们直来对比一下有什么不同,然后教大家怎么用python多进程实现下载并且合并。

一、两者不同

  • 非加密 的m3u8文件

  •  加密 的m3u8文件

  •  相信眼尖的小伙伴已经看出了2个内容的不同之处,对的,其实区别就在加密文件的第 5 行的 #EXT-X-KEY 的信息
  • 这个信息就是用来视频内容解密的,其实里面的内容大多是一段字符串,其实也就是解密时候的KEY
  • 那么这个怎么去解密呢,我们暂时不管,我们先来解释一下每行的意思
  • 第一行: #EXTM3U 声明这是一个m3u8的文件
  • 第二行: #EXT-X-VERSION 协议的版本号
  • 第三行: #EXT-X-MEDIA-SEQUENCE 每一个media URI 在 PlayList中只有唯一的序号,相邻之间序号+1
  • 第四行: #EXT-X-KEY  记录了加密的方式,一般是AES-128以及加密的KEY信息
  • 第五行: #EXTINF 表示这段视频碎片的持续时间有多久
  • 第六行: sA3LRa6g.ts 视频片段的名称,获取的时候需要拼接上域名,找到文件的正确的路径

如果想了解更多,请参考我的另一篇文章: 

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 10年老司机倾囊相授,贴片晶振的PCB layout需要注意哪些?

下一篇: 使用Python+OpenCV+Tensorflow+Flask实现检测X光图像中的COVID-19(新冠病毒)

精华推荐