import requests
import re
import os
from tqdm import tqdm
import _thread
import time
from tqdm import tqdmclass m3u8_down():   nameSeed = "my" //分段文件名target_name = "target" //目标文件名file_count = 0 //分段数目name_arr = [] //分段文件名delay_time = 0.1 //下载延迟headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'}def m3u8_par(self,o):m3u8_url = om3u8_content = open(o,'r').read()m3u8_content = re.sub('#EXTM3U','',m3u8_content)m3u8_content = re.sub('##EXT-X-VERSION:\d','',m3u8_content)m3u8_content = re.sub('#EXT-X-TARGETDURATION:\d','',m3u8_content)m3u8_content = re.sub('#EXT-X-MEDIA-SEQUENCE:\d','',m3u8_content)m3u8_content = re.sub('#EXTINF:\d\.\d+,','',m3u8_content)m3u8_content = re.sub('#EXT-X-VERSION:\d','',m3u8_content)m3u8_content = re.sub('#EXT-X-ENDLIST','',m3u8_content)m3u8_content = re.sub('#EXTINF:\d+\.\d+,','',m3u8_content)m3u8_content = re.sub('#EXTINF:\d+\.\d+,','',m3u8_content)m3u8_content = re.sub('#EXT-X-KEY:METHOD=AES-128.*','',m3u8_content).split()return m3u8_contentdef down1(self,m3u8,name):r = requests.get(url = m3u8,headers = self.headers)with open(name,"wb")as f:f.write(r.content)def fastDown(self,m3u8_content,nameList):count = 0for i in tqdm(m3u8_content):_thread.start_new_thread( self.down1, (i, nameList[count] ) )time.sleep(self.delay_time)count = count +1def getsegementName(self,nameSeed,count):arr = []for i in range(count):arr.append(nameSeed+str(i).zfill(3)+".ts")self.name_arr = arrreturn arr   def toV1(self):#shell_str = f'ffmpeg -loglevel quiet -y -i concat:"{title}{str(count-1)}.ts|{filename}" -acodec copy -vcodec copy {title}{str(count)}.ts'shell_str = f'copy /b *.ts {target_name}.mp4'os.system(shell_str)def remove(self):try:for i in self.name_arr:#print(self.name_arr)os.remove(i)except FileNotFoundError:passdef start(self,path):lis =  self.m3u8_par(path)   //分段地址列表   count = len(lis) //分段数字arr  = self.getsegementName(self.nameSeed,count ) //分段文件名self.fastDown(lis,arr)self.toV1()self.remove()

调用如下
start(m3u8_file) 可修改target_name 修改文件名

Python的m3u8下载器源码相关推荐

  1. 【已测】m3u8播放器源码,无后台,单页

    介绍: 使用方法: 源码上传好输入m3u8地址回车即可 接口测试:视频格式基本全部支持在线播放,不仅限于m3u8 使用方法:http://你的域名/?url=m3u8地址 网盘下载地址: http:/ ...

  2. 音乐下载器源码,需要自取

    用Python实现听歌自由 需要源代码私信 导入模块 import os import tkinter as tk import webbrowser import requests import t ...

  3. pythonddos攻击代码_【分享】Python简易DDos攻击器源码

    [Python] 纯文本查看 复制代码import socket import time import threading #Pressure Test,ddos tool #------------ ...

  4. python爬虫05 - BeautifulSoup4的安装,下载,源码简介,使用。

    1. bs4简介 1.1 基本概念 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的网页信息提取库 1.2 源码分析 • github下载源码 • 安装 • pip inst ...

  5. Discuz论坛web网页mp3音频播放器源码下载

    最近在做一个DZ论坛的搭建,在前几天的时候遇到Flash+Js的幻灯片的问题,特写了一篇<JS+Flash焦点图轮播源代码(2屏,3屏,多屏)>来记录论坛搭建过程遇到的一些技术性问题,以便 ...

  6. 庖丁解牛分词器---源码下载---错误问题解决

    庖丁解牛分词器---源码下载 地址:http://download.csdn.net/detail/u014737138/9349677 由于国内的环境限制,访问不了Google  ,同时网上那些下载 ...

  7. Asp.Net+Ajax实现的宝宝RSS阅读器源码下载

    Asp.Net+Ajax实现的宝宝RSS阅读器源码, 适合Ajax初学者学习,功能很简单,用户可以添加RSS地址到数据库,但没有实现RSS地址及名称删除与修改. 当阅读器页面打开时,从数据库获取RSS ...

  8. python设计模式pdf_精通Python设计模式 高清晰PDF+源码

    精通Python设计模式讲述了16种基本设计模式,轻松解决软件设计常见问题:借力高效的Python语言,用现实例子展示各模式关键特性. 本书用实际生活中的例子带你了解常用的设计模式,介绍了诸多有关编写 ...

  9. 【Python 笔记】Linux 下源码编译安装 python

    本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...

  10. 31_ElasticSearch 修改IK分词器源码来基于mysql热更新词库

    31_ElasticSearch 修改IK分词器源码来基于mysql热更新词库 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boo ...

最新文章

  1. erlang 二进制
  2. python定义一个字典并遍历字典中的键和值_python字典操作总结
  3. 微信小程序开发系列七:微信小程序的页面跳转
  4. 《在你身边,为你设计》-哪位知道下载、在线阅读地址啊?
  5. html动态日出,日出日落及方位角计算html
  6. vue引用jquery
  7. 学会c对java帮助大_20155206赵飞技能获取经验,C语言学习感想与对JAVA的学习目标...
  8. D-Genius‘s Gambit(构造)
  9. [blender]图片模糊不清楚怎么变清晰
  10. 前端缓存看这一篇就够了
  11. 33 | 如何做好验收测试?
  12. 【MATLAB】在MATLAB中用梯形法求一个表达式在某区间里的积分值
  13. QT实现固高运动控制卡示波器
  14. 游戏项目和开源项目调研
  15. 三级等保备案去哪查_民贷天下通过国家信息安全等级保护三级备案
  16. SQL map自动注入,利用工具注入
  17. 被字句15个_把字句改成被字句
  18. JDE(j的拼音格式怎么写)
  19. 2048小游戏的制作和算法思路讲解
  20. 高斯linux复制命令,高斯(Gaussian)软件linux下安装

热门文章

  1. Freeswitch 常用功能命令及配置详解2021-06-06
  2. unity mmd不支持android,MMD模型导入Unity的解决方案
  3. 华为OSN1500B故障应急处理
  4. 高等数学张宇18讲 第三讲 一元函数微分学的概念与计算
  5. LabVIEW基于Kvaser USBcan的UDS烧录Hex文件
  6. 并发测试工具(ubuntu 16.04)
  7. 根据经纬度获取地理位置 和 根据地址获取经纬度
  8. 一些div垂直居中的方法
  9. 深度学习软件安装及环境配置(Win10)
  10. PlaySound 播放内存中的音频数据