当前位置: 首页 > news >正文

python下载m3u8格式视频

  一、安装 m3u8库

pip install requests 
pip install requests m3u8

 二、编码实现

import os
import re
import requests
import subprocess# 下载ts文件
def down_ts_file(base_url, m3u8_url, download_dir):# 从m3u8文件中获取所有ts的分片名称信息response = requests.get(base_url + m3u8_url)ts_urls = re.findall(r'(\S+\.ts)', response.text)ts_file_list = []for i, ts_url in enumerate(ts_urls):# ts网络地址全路径    response = requests.get(base_url + ts_url, stream=True)ts_file_list.append(download_dir + f'segment{i}.ts')filename = os.path.join(download_dir, f'segment{i}.ts')with open(filename, 'wb') as f:for chunk in response.iter_content(chunk_size=1024):if chunk:f.write(chunk)print("分片{}下载完成".format(i))return ts_file_list# 合并ts文件转成MP4
def merge_ts(ts_file_list, output_filename):args = '|'.join(ts_file_list)print("merge_ts args----"+args)command = f'ffmpeg -i "concat:{args}" -c copy {output_filename}'subprocess.run(command, shell=True)def do_crawler():m3u8_url = 'mixed.m3u8'base_url_list = ["https://v.cdnlz19.com/20241016/50350_17769e38/2000k/hls/"]base_download_dir = 'E:/usr/data/UserData/download/{}'for i, base_url in enumerate(base_url_list):download_dir = base_download_dir.format(i + 1) + "/"if not os.path.exists(download_dir):os.makedirs(download_dir)# 下载的ts分片数据地址,存放在列表中ts_file_list = down_ts_file(base_url, m3u8_url, download_dir)print(ts_file_list)# ts合并后文件的名称output_filename = base_download_dir.format(i) + ".mp4"merge_ts(ts_file_list, output_filename)os.remove(download_dir)


http://www.mrgr.cn/news/96261.html

相关文章:

  • 音视频基础知识
  • Linux驱动编程 - UVC驱动分析
  • 计算机二级(C语言)考试高频考点总汇(四)—— 内存管理、文件操作、预处理
  • 【Pandas】pandas Series to_sql
  • 深入理解 Linux 文件权限:从 ACL 到扩展属性,解剖底层技术细节与命令应用
  • VMware 安装 Ubuntu 实战分享
  • Web3.0合约安全:重入攻击防御方案
  • 标准库中有uint32_t类型吗?
  • Retinexformer:基于 Retinex 的单阶段 Transformer 低光照图像增强方法
  • 树莓派超全系列文档--(10)RaspberryOS上使用 Python
  • (UI自动化测试web端)第三篇:元素的常用操作方法_鼠标操作
  • 【AI学习】概念了解
  • 计算机控制系统-达林算法验证
  • 模拟电子技术-基本放大电路
  • b站c语言鹏哥课程代码内容
  • PostgreSQL数据库迁移到Docker拉取的pg镜像中的
  • STM32基础教程——定时器
  • PyQt6实例_批量下载pdf工具_exe使用方法
  • QCustomPlot入门
  • 【面试八股】:常见的锁策略