关于网页视频下载方法(仅针对存在index.m3u8)

一、使用工具。

必备工具:迅雷、ffmpeg、python环境

选用工具:猫抓插件

二、获取m3u8、key和ts文件。

像腾讯课堂希望下载的课

1.下载m3u8文件。

首先使用【猫抓视频下载】的浏览器拓展,可以清晰地看到,它不抓到的内容。我们需要的就是这个 .m3u8 的文件。

ps:其中可以也将其中的一个ts文件下下来,主要需要的是它的下载连接地址。

(当然也可以用f12,然后点击网络查看监控到的元素,复制其中的URL,在新的页面粘贴就可以下载。ps:没有监控到可以试着刷新一下。)

2.解析m3u8文件。


用记事本打开m3u8文件。

通过上图可以看到,这个m3u8文件是经过加密的,这个key的url就是加密的路径。所以我们要将它复制,在浏览器打开并下载。

部分m3u8文件显示的key文件路径是不全的,所以就得通过f12去寻找key的url,又或者通过刚才下载到的ts文件,然后通过其的下载连接,比如这样:

假设它的url是这样:

https://1258712167.vod2.myqcloud.com/25121a6avodtransbj1258712167/ccc514e9387702297477389539/drm/v.f30742_0.ts

那么 v.f307422_0.ts 文件前面的就是它们的前缀,要复制出来,拼接好。就如上图所示的ts文件也是不完整的url的路径,所以需要补全。(当然我这里讲拼接key的前缀只是示范,m3u8文件里已经有完整的url了,所以我们要把它下下来。)

3.拼接ts文件完整路径。

由于迅雷复制打包url下载限制只能是1000个。所以,我们需要在拼接url的同时,还要对它分开成各个文件夹进行下载。在这里我采用python进行切片打包。

首先打开m3u8文件,之后在line中填入需要拼接的前缀内容。而i[0] == ‘v’,则是判定是ts文件的特征,所有的ts文件的前缀都是’v’。(见过有些是’\'。)

with open(r'C:\Users\victo\Desktop\voddrm.token.dWluPTI0MjQ1MTUyOTE7ZXh0PTtza2V5PUB6OUl6MWJoZnc7Y2lkPTI3Njk2MDk7dGVybV9pZD0xMDI4Nzc5OTI7dm9kX3R5cGU9MDtwbGF0Zm9ybT0z.v.f30742.m3u8') as f:a = []for i in f.readlines():a.append(i)def split_ts(a):line = 'https://1258712167.vod2.myqcloud.com/25121a6avodtransbj1258712167/ccc514e9387702297477389539/drm/'ts   = []for i in a:if i[0] == 'v':i = line + its.append(i)return tsts  = split_ts(a)def save_href(ts,i):print(i)with open(r'C:\Users\victo\Desktop\番{}.txt'.format(i), 'w') as w:w.writelines(ts)w.close()def thousand_href(ts):i = 0if len(ts) > 1000:i = 1save_href(ts[:1000],i)if len(ts[1000:]) > 1000:i = 2save_href(ts[1000:2000], i)if len(ts[2000:]) > 1000:i = 3save_href(ts[2000:3000], i)if len(ts[3000:]) > 1000:i = 4save_href(ts[3000:4000], i)if len(ts[4000:]) > 1000:i = 5save_href(ts[4000:5000], i)if len(ts[5000:]) > 1000:i = 6save_href(ts[5000:6000], i)if len(ts[6000:]) > 1000:i = 7save_href(ts[6000:7000], i)if len(ts[7000:]) > 1000:i = 8save_href(ts[7000:8000], i)if len(ts[8000:]) > 1000:i = 9save_href(ts[8000:9000], i)if len(ts[9000:]) > 1000:i = 10save_href(ts[9000:10000], i)if len(ts[10000:]) > 1000:i = 11save_href(ts[10000:11000], i)save_href(ts[1000*(i):], i+1)thousand_href(ts)

拼接完成后,打开文本,全选复制,如果开启迅雷会自动弹出新建任务组,合并任务即可。
现在新的问题来了,下载下来的ts文件,迅雷是采取,以’?'作为文件名的分割,这样会导致ts文件名都是一样的,重复文件名的下载自然会在后缀出现下标。

(不过一般m3u8文件里记录的ts文件都有自己的字符串名字的……吧?)

因此我这里对m3u8所有ts文件名进行了处理,所有ts文件以数字作为命名,进行了一次重命名。

那么相对应的,下载下来的文件也要重命名。一共5个文件夹,4125个ts文件。重命名脚本:

import os
path = 'D:\cookies\迅雷下载\视频任务组_20230412_1509'
files    = os.listdir(path)
newfiles = []#第一个:0;第二个:1000;第三个:2000.
order = 2000for file in files:print(file)if "(" in file:num = int(file.replace('v.f30742_0(','').replace(').ts','')) + order +1newfiles.append(str(num)+'.ts')else:num = str(0+order+1)newfiles.append(num+'.ts')for i in range(len(files)):os.rename(path+'\\'+files[i],path+'\\'+newfiles[i])

4.调用ffmepg合并所有ts文件生成mp4

  1. CMD打开命令提示符。

  2. 跳转到汇总所有ts文件的文件夹目录下。

  3. 输入命令:

    ffmpeg -allowed_extensions ALL -i index.m3u8 -c copy D:\cookies\迅雷下载\kecheng.mp4

    最后成功获得这节课程的文件!

5.结语。

以上的方法针对加密的视频爬取下载的性价比才高,对于那些没有加密的视频文件,其实直接用Neat Download Manager,或者IDM,又或者手机QQ浏览器都可以下载。

参考文章

ffmpeg详细安装教程:https://zhuanlan.zhihu.com/p/324472015

加密的m3u8、ts文件合并:https://www.cnblogs.com/f-ck-need-u/p/9033988.html

手把手教你下载浏览器上的视频:https://zhuanlan.zhihu.com/p/464729860

关于Neat Download Manager可以参考:https://zhuanlan.zhihu.com/p/187570397

关于网页视频下载方法(仅针对存在index.m3u8)相关推荐

  1. 4个简单有效的网页视频下载方法,超级简单好用

    有很多网站的视频是没有下载功能的,想要下载视频怎么办呢?今天就分享给大家4个简单有效的网页视频下载方法,多个平台都适用,而且操作简单,一看就会! 一.审查元素下载 一个简单快速的网页视频下载的方法,不 ...

  2. windows下浏览器网页视频下载方法

    参考这个链接, 并进行了一些改进:https://blog.csdn.net/lawyer110/article/details/91047726 文中Video DownloadHelper Com ...

  3. 网页视频下载方法汇总

    blob:https://...形式的video 1.浏览器切换到手机模式,重新查看媒体元素,即可正常看到媒体地址 m3u8媒体分片形式 有些情况是需要查看m3u8这样的媒体分片格式下载:(也是现在媒 ...

  4. TS型网页视频下载方法

    原文链接:https://zhuanlan.zhihu.com/p/97609880 如有侵权,联系删除 !!! ffmpeg 安装:(可以使用conda 安装) conda install ffmp ...

  5. 【实用教程】网页视频下载

    出于某种原因,有时候我们可能需要下载网页上的视频,下面我来分享一个简单的网页视频下载方法: 第一步:在电脑上下载安装这款4K Video Downloader这款软件 第二步:打开网站,找到你想要下载 ...

  6. 网页嵌套的视频下载方法

    找了一个晚上终于把网页中嵌套的一些视频下载方式总结出来了 主要有以下方面: 1. 利用网站解析下载地址 打开http://www.flvxz.com/网址,把你要视频地址的网页网址复制黏贴到http: ...

  7. 下载网页视频的软件 下载网页视频的方法

    视频已然成为一种非常有力的展示方式,我们想要下载视频内容,需要用到下载网页视频的软件,如今这类软件有很多.下载网页视频的方法,也因为使用的软件不同,方法各异.下面我们就来看详细介绍吧! 一.下载网页视 ...

  8. 网易云动态小视频下载方法

    网易云动态小视频下载方法 注:网易云音乐未提供任何官方下载方法,本文介绍的下载方法仅供视频收藏用,请勿违规使用,本文章不负任何责任. 要求:1.浏览器(谷歌内核):2. 浏览器插件:Fvd Downl ...

  9. Hololens2画面传输到电脑上的方法(Hololens2录视频下载方法)

    Hololens2画面传输到电脑上的方法(Hololens2录视频下载方法) 一.通过Microsoft Hololens: 1.首先到微软商店Microsoft Store搜索Microsoft H ...

最新文章

  1. 设计一个矩形类rectangle_万字长文带你捋清六种设计模式的设计原则(建议收藏)...
  2. CentOS: 将虚拟机迁移到 Azure (以阿里云为例)
  3. Hadoop源代码分析(四)
  4. JS 将负数转化为正数
  5. Go语言在Linux环境下输出彩色字符
  6. Hibernate数据保存操作方法的原理对比
  7. Android之Timer和TimerTask的介绍
  8. mc服务器word文件夹,我的世界服务器创建:MC个人服务器创建流程
  9. kali不支持yum_Kali之teamviewer安装
  10. wyse WES系统操作
  11. ofo在北京上线有桩模式,违规最高罚20元
  12. 这几种人往往能赚大钱
  13. 解决WEB页面上焦点控制一法
  14. 接口测试需要了解的八种数据类型
  15. 直流无刷电机工作原理
  16. CocosCreator接入穿山甲SDK(IOS)--激励视屏
  17. Vulnhub——JANGOW: 1.0.1
  18. 反向代理为何叫反向代理?
  19. [ Java面试题 ]Java 开发岗面试知识点解析
  20. EVE-NG Lab通过Cloud连接外网

热门文章

  1. 【数据结构】图—迪杰斯特拉(Dijkstra)算法
  2. 中学试卷上出现的爆笑答案
  3. Dubbo分布式日志追踪
  4. 网易视频云正式发布,移动直播将走向何处?
  5. MATLAB AWGN
  6. C语言实现单向循环链表
  7. 组织培训管理之新人练习计划
  8. git 使用教程(图文并茂)
  9. HTTP请求的状态码
  10. Maxthon显示界面问题