首页 文章详情

实际上采集全网视频也没那么难

大邓和他的Python | 2017 2021-05-29 16:54 0 0 0
UniSMS (合一短信)




今天来教大家如何下载全网视频,这里的全网就是你理解的全网。全网的视频搜索接口已经有第三方制作好了,这里就直接使用,获取到视频播放页面之后,程序自动下载视频。下面会以实战为主,手把手教你如何实现


涉及核心知识点:

  1. m3u8格式视频解析

  2. 网络视频请求

  3. 视频的合并


以下是精彩内容,不容错过(哈哈哈)


01
视频搜索



这里的全网搜索来源于第三方(第三方已经写好了搜索接口),咱们直接在第三方的基础上去完成。实现视频全网搜索。下面电影:唐人街探案3为例。(其他电影、电视剧、动漫也是可以的,悄悄告诉你,也支持vip类型视频)


http://www.52xmn.com/so.php?so唐人街探案3&from=360



咱们这里是模糊搜索(关键字:唐人街探案3),可以搜索回来相关的视频,咱们选择第一个:唐人街探案3。下面开始讲解如何下载。


02
提取视频地址




点击第一条搜索结果后,进入到播放页面:

http://www.52xmn.com/m/fqLqaRH4S0r1TR.html



查看网页源代码,(这里网站设置了无法按F12或者鼠标右键,可以先在网页按了F12在访问上面这个链接)。


查看网页源代码,没有找到视频的源地址,说明极有可能是ts(m3u8)的格式(目前很多视频都是采用这种格式)。


接着开始查看network数据包,最后找到下面数据包(index.m3u8)。



获取到这个链接,在浏览器访问之后,下载得到index.m3u8文件

https://vod.bunediy.com/20210430/36JdJMQn/index.m3u8



这个文件里面有很多链接(实际上是整个视频分割很多段小视频,每一个小视频对应一个链接,每一个小视频大概在几秒左右)。


通常index.m3u8的文件里面链接是ts的后缀,现在可以看到是image格式。如果直接下载为image格式的话,无法打开。这里改为mp4的格式化后,下载后正常打开(并且还是高清的)




这里随机选择了一个下载,成功播放出来,下面把index.m3u8里面的所有分段视频下载,然后合并成一个完整的视频。





03
下载分段视频



上面的讲解都是手动下载index.m3u8,然后把image改为mp4格式,再去下载,现在使用程序去下载。自动化完成这些操作。


1.请求index.m3u8



请求结果如下:



2.下载视频


思路:提取里面每一个链接,,然后下载保存成mp4的格式,最后将这些mp4视频进行拼接合并。



提取结果如下:



提取到视频链接后,下面开始下载



name是保存视频名称,v_url是上面的视频链接



这么定义了count,从1开始,目的是将这些分段视频保存为:1.mp4、2.mp4、.....,这样可以方便后面进行按顺序合并。


最终保存到文件夹mp4中




全部下载好之后,一共是1618个分段视频



由于是高清版本视频,1618个分段视频大小一共是1.17G




04
合并视频





合并视频的话,之前使用过cmd的方式,不过从读者的反馈来看,对于非window的读者来说,很多不便。那么本文将采取另外一直方式(纯python


相信大家也看过了几天写的一篇文章(实战|惊呆了,Python竟然能剪辑视频!),里面就有介绍视频合并的方法,本文就采用该方法去合并这些分段视频。


PS: VideoFileClip不能一下子合并太多的视频,这里是1618个,一次性合并的话会报错,所以这里分开合并成大片段,然后在合并成完整视频


这里以50个为界限进行合并,1618/50=33(取整),最后再将33个大片段合并成完整视频。



合并效果:



这里成功将前面50个小片段合成完毕,接着将剩下的全部合并



这样我们就可以将1618个小片段合并成完整的视频。


05
小结



本文涉及核心知识点:

  1. m3u8格式视频解析

  2. 网络视频请求

  3. 视频的合并



精选文章

系列视频|Python网络爬虫与文本数据分析
语法最简单的微博通用爬虫weibo_crawler
hiResearch 定义自己的科研首页
大邓github汇总, 觉得有用记得star
multistop ~ 多语言停用词库
Jaal 库 轻松绘制动态社交网络关系图
addressparser中文地址提取工具
来自kaggle最佳数据分析实践
B站视频 | Python自动化办公
SciencePlots | 科研样式绘图库
使用streamlit上线中文文本分析网站
bsite库 | 采集B站视频信息、评论数据
texthero包 | 支持dataframe的文本分析包
爬虫实战 | 采集&可视化知乎问题的回答
reticulate包 | 在Rmarkdown中调用Python代码
plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库
读完本文你就了解什么是文本分析
文本分析在经管领域中的应用概述  
综述:文本分析在市场营销研究中的应用
plotnine: Python版的ggplot2作图库
Wow~70G上市公司定期报告数据集
漂亮~pandas可以无缝衔接Bokeh  
YelpDaset: 酒店管理类数据集10+G  

    分享”和“在看”是更好的支持

good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter