使用浏览器开发者工具获取index.m3u8文件,直接复制访问路径进行请求即可下载相应的m3u8文件,文件里是ts视频的路径,一般长这样:

每一个.ts路径都是一段流视频访问地址,拼接主域名可以直接下载到相应的视频片段

执行步骤:

1、下载好.m3u8文件

2、使用代码将.m3u8文件内容进行下载、合并成mp4文件

下载代码如下:

# 将m3u8地址文件下载、合成为mp4文件import requests
import re
import osdef download_ts(path: str, headers: dict, main_url: str, dir_ts: str):""":param dir_ts: 用于保存ts视频文件:param path: .m3u8文件路径:param headers: 配置的浏览器请求头:param main_url: 域名主地址:return: 返回ts文件下载的文件夹"""# 在当前路径下创建一个与m3u8文件同名的文件夹用来保存所下载的.ts文件if not os.path.exists(dir_ts):os.mkdir(dir_ts)# 提取m3u8文件中的ts文件请求地址with open(path, mode="r") as file:all_url = file.read()all_url = re.findall(r"(.*?)ts", all_url)num = 1for url in all_url:url = main_url + url + "ts"    # 拼接成完整的请求路径response = requests.get(url=url, headers=headers)with open(f"./{dir_ts}/{num}.ts", "wb") as file1:    # 请求后直接将ts视频写入到文件中,文件命名为自增数字.ts,方便后续拼接file1.write(response.content)num += 1return dir_tsdef to_mp4(file_path):""":param file_path: ts文件所在的文件夹路径"""ts_all = sorted(os.listdir(f"./{file_path}"), key=lambda x: int(x.replace(".ts", "")))  # 列出文件夹内所有的ts文件并排序print(ts_all)with open(f"./{file_path}/{file_path}.mp4", "wb+") as mpf:  # 以追加形式创建mp4文件for ts in ts_all:with open(f"./{file_path}/{ts}", "rb") as tsb:  # 循环遍历读取ts文件并写入mp4文件(合并ts到mp4中)mpf.write(tsb.read())# os.system(f"rm ./{dir_ts}/*.ts")  # 删除冗余的ts视频文件if __name__ == "__main__":main_url = "主域名,m3u8文件中一般只有相关的路径参数,没有主域名"headers = {"配置相关的": "浏览器请求头"}path = ".m3u8文件路径"dir_ts = "保存ts文件的路径"to_mp4(file_path=download_ts(path=path, headers=headers, main_url=main_url, dir_ts=dir_ts))

代码只是将视频片段进行简单拼接

python下载合并m3u8文件相关推荐

  1. python中大批量m3u8文件合并总结

    python中大批量m3u8文件合并总结 该函数合并,适应于大批量m3u8文本合并m3u8文件 合并m3u8文件函数实现如下 def merge_ts():name_list = []with ope ...

  2. 合并时显示是无效的m3u8文件_m3u8合并,如何合并m3u8文件

    如何合并m3u8文件 这个你可以下专门的制作软件,然后进行合并,在论坛里面找一下,这和浏览器没有关系的,主要是文件的格式问题,其实手机qq浏览器我也在用,挺不错,无论在运行.还是界面的设计方面都非常的 ...

  3. 合并时显示是无效的m3u8文件_合并M3U8文件方法

    在线合并M3U8文件方法:(文件小的时候适用) 1.获取m3u8文件 https://xxxx.com/hls/2019/02/07/6GAWrlaM/playlist.m3u8 2.打开看到里面的文 ...

  4. 合并m3u8文件 okfun文件夹 .ok文件

    合并m3u8文件 okfun文件夹 .ok文件 下载ffmpeg 下载地址https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full.7z 解压下载的 ...

  5. 一文教会你如何用 Python 分割合并大文件

    有时候,我们需要把一个大文件发送给别人,但是限于传输通道的限制,比如邮箱附件大小的限制,或者网络状况不太好,需要将大文件分割成小文件,分多次发送,接收端再对这些小文件进行合并.今天就来分享一下用 Py ...

  6. python 横向合并_使用Python横向合并excel文件的实例

    起因: 有一批数据需要每个月进行分析,数据存储在excel中,行标题一致,需要横向合并进行分析. 数据示意: 具有多个 代码: # -*- coding: utf-8 -*- "" ...

  7. m3u8下载合并图片文件(但实际上还是ts文件)

    m3u8合并图片类型 如图可见,当要下载某个视频文件时发现是m3u8类型的.已知其会将视频划分为ts类型文件,具体原因不在此赘述. 但是发现我们获取到的是png图片类型文件,怎么回事呢? 使用hexd ...

  8. python下载ts视频文件_Python3爬虫通过m3u8文件下载ts视频 Python爬虫

    什么是m3u8文件?M3U8文件是指UTF-8编码格式的M3U文件. M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放. ...

  9. 图解python pdf_Python合并同一个文件夹下所有PDF文件的方法

    一.需求说明 下载了网易云课堂的吴恩达免费的深度学习的pdf文档,但是每一节是一个pdf,我把这些PDF文档放在一个文件夹下,希望合并成一个PDF文件.于是写了一个python程序,很好的解决了这个问 ...

最新文章

  1. 快速理解编码,unicode与utf-8
  2. MSM8974 fastboot烧写软件
  3. django 迁移工程数据库无法创建的问题
  4. html表单复选框样式,美化表单——自定义checkbox和radio样式
  5. 管理项目的问题跟踪器的提示
  6. Python入门基础学习记录(二)汇率案例学习记录
  7. C/C++ 命令行参数的实现方法
  8. Java开发笔记(一百三十二)Swing的表格
  9. 信息安全系统设计基础实验四:外设驱动程序设计
  10. Linux 下 svn 恢复到指定版本
  11. 解决wget下载过慢的问题
  12. 解题:CEOI 2017 Mousetrap
  13. 关于BOM表的一些事
  14. 从导数到方向导数和梯度,一步步理解深度学习中的梯度下降算法
  15. 世上安得两全法,不负如来不负卿?
  16. ERP IPQC是什么意思 IPQC工作职责和IPQC工作流程
  17. Linux 下FTP的安装与配置教程详解
  18. Java之应何时调用close()方法?
  19. uboot mailbox
  20. java研发简历怎么写_Java研发实习生入党个人简历怎么写

热门文章

  1. HTTP状态码详解大全
  2. Java中IO流(3).
  3. Edge导航网址变成了毒霸的,如何改动?
  4. 大连海事大学信息与通信工程系808考研上岸经验分享
  5. dhu复试基础——36 水果价格
  6. Windows下 Cppcheck 的使用教程
  7. STM32_HAL库—PWM产生指定个数
  8. 华为云服务产品之精华问题大集烩(一)
  9. Java官方教程(七-3)Using Objects 使用对象(2021.4.10)
  10. 大数据java篇——集合类