Python的m3u8下载器源码
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下载器源码相关推荐
- 【已测】m3u8播放器源码,无后台,单页
介绍: 使用方法: 源码上传好输入m3u8地址回车即可 接口测试:视频格式基本全部支持在线播放,不仅限于m3u8 使用方法:http://你的域名/?url=m3u8地址 网盘下载地址: http:/ ...
- 音乐下载器源码,需要自取
用Python实现听歌自由 需要源代码私信 导入模块 import os import tkinter as tk import webbrowser import requests import t ...
- pythonddos攻击代码_【分享】Python简易DDos攻击器源码
[Python] 纯文本查看 复制代码import socket import time import threading #Pressure Test,ddos tool #------------ ...
- python爬虫05 - BeautifulSoup4的安装,下载,源码简介,使用。
1. bs4简介 1.1 基本概念 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的网页信息提取库 1.2 源码分析 • github下载源码 • 安装 • pip inst ...
- Discuz论坛web网页mp3音频播放器源码下载
最近在做一个DZ论坛的搭建,在前几天的时候遇到Flash+Js的幻灯片的问题,特写了一篇<JS+Flash焦点图轮播源代码(2屏,3屏,多屏)>来记录论坛搭建过程遇到的一些技术性问题,以便 ...
- 庖丁解牛分词器---源码下载---错误问题解决
庖丁解牛分词器---源码下载 地址:http://download.csdn.net/detail/u014737138/9349677 由于国内的环境限制,访问不了Google ,同时网上那些下载 ...
- Asp.Net+Ajax实现的宝宝RSS阅读器源码下载
Asp.Net+Ajax实现的宝宝RSS阅读器源码, 适合Ajax初学者学习,功能很简单,用户可以添加RSS地址到数据库,但没有实现RSS地址及名称删除与修改. 当阅读器页面打开时,从数据库获取RSS ...
- python设计模式pdf_精通Python设计模式 高清晰PDF+源码
精通Python设计模式讲述了16种基本设计模式,轻松解决软件设计常见问题:借力高效的Python语言,用现实例子展示各模式关键特性. 本书用实际生活中的例子带你了解常用的设计模式,介绍了诸多有关编写 ...
- 【Python 笔记】Linux 下源码编译安装 python
本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...
- 31_ElasticSearch 修改IK分词器源码来基于mysql热更新词库
31_ElasticSearch 修改IK分词器源码来基于mysql热更新词库 更多干货 分布式实战(干货) spring cloud 实战(干货) mybatis 实战(干货) spring boo ...
最新文章
- erlang 二进制
- python定义一个字典并遍历字典中的键和值_python字典操作总结
- 微信小程序开发系列七:微信小程序的页面跳转
- 《在你身边,为你设计》-哪位知道下载、在线阅读地址啊?
- html动态日出,日出日落及方位角计算html
- vue引用jquery
- 学会c对java帮助大_20155206赵飞技能获取经验,C语言学习感想与对JAVA的学习目标...
- D-Genius‘s Gambit(构造)
- [blender]图片模糊不清楚怎么变清晰
- 前端缓存看这一篇就够了
- 33 | 如何做好验收测试?
- 【MATLAB】在MATLAB中用梯形法求一个表达式在某区间里的积分值
- QT实现固高运动控制卡示波器
- 游戏项目和开源项目调研
- 三级等保备案去哪查_民贷天下通过国家信息安全等级保护三级备案
- SQL map自动注入,利用工具注入
- 被字句15个_把字句改成被字句
- JDE(j的拼音格式怎么写)
- 2048小游戏的制作和算法思路讲解
- 高斯linux复制命令,高斯(Gaussian)软件linux下安装