python合并大量ts文件_Python3 根据m3u8下载视频,批量下载ts文件并且合并
importos, shutilimporturllib.request, urllib.error, requests#打开并读取网页内容
defgetUrlData(url):try:
urlData= urllib.request.urlopen(url, timeout=20) #.read().decode('utf-8', 'ignore')
returnurlDataexceptException as err:print(f'err getUrlData({url})\n', err)return -1
#下载文件-urllib.request
defgetDown_urllib(url, file_path):try:
urllib.request.urlretrieve(url, filename=file_path)returnTrueexcepturllib.error.URLError as e:#hasttr(e, 'code'),判断e 是否有.code属性,因为不确定是不是HTTPError错误,URLError包含HTTPError,但是HTTPError以外的错误是不返回错误码(状态码)的
if hasattr(e, 'code'):print(e.code) #打印服务器返回的错误码(状态码),如403,404,501之类的
elif hasattr(e, 'reason'):print(e.reason) #打印错误原因
defgetVideo_urllib(url_m3u8, path, videoName):print('begin run ~~\n')#urlData = getUrlData(url_m3u8).readlines()
urlData =getUrlData(url_m3u8)
num=0
tempName_video= os.path.join(path, f'{videoName}.ts') #f'{}' 相当于'{}'.format() 或 '%s'%videoName
#print(urlData)
for line inurlData:#解码,由于是直接使用了所抓取的链接内容,所以需要按行解码,如果提前解码则不能使用直接进行for循环,会报错
#改用上面的readlines()或readline()也可以,但更繁琐些,同样需要按行解码,效率更低
url_ts = line.decode('utf-8')
tempName_ts= os.path.join(path, f'{num}.ts') #f'{}' 相当于'{}'.format()
if not '.ts' inurl_ts:continue
else:if not url_ts.startswith('http'): #判断字符串是否以'http'开头,如果不是则说明url链接不完整,需要拼接
#拼接ts流视频的url
url_ts = url_m3u8.replace(url_m3u8.split('/')[-1], url_ts)print(url_ts)
getDown_urllib(url_ts, tempName_ts)#下载视频流
if num ==0:#重命名,已存在则自动覆盖
shutil.move(tempName_ts, tempName_video)
num+= 1
continuecmd= f'copy /b {tempName_video}+{tempName_ts} {tempName_video}'res=os.system(cmd)if res ==0:
os.system(f'del {tempName_ts}')if num == 20: #限制下载的ts流个数,这个视频挺长有四百多个.ts文件,所以限制一下
breaknum+= 1
continue
print(f'Wrong, copy {num}.ts-->{videoName}.ts failure')returnFalse
os.system(f'del {path}/*.ts') #调用windows命令行(即cmd)工具,运行命令
filename = os.path.join(path, f'{videoName}.mp4')
shutil.move(tempName_video, filename)print(f'{videoName}.mp4 finish down!')if __name__ == '__main__':
url_m3u8= 'http://wscdn.alhls.xiaoka.tv/201886/2f5/75a/HoHdTc1LjUaBjZbJ/index.m3u8'path= r'E:\pydevworkspaces\project\product\epgw\videos'videoName= url_m3u8.split('/')[-2]
getVideo_urllib(url_m3u8, path, videoName)
python合并大量ts文件_Python3 根据m3u8下载视频,批量下载ts文件并且合并相关推荐
- python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载
每天一点点,记录学习 python 爬取菜鸟教程python100题 近期爬虫项目,看完请点赞哦: 1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载 2:pytho ...
- Python爬取m3u8格式视频并解密ts文件合并转为mp4格式
一. m3u8是什么格式 m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8. m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上 ...
- python批量下载网页文件夹_Python抓取网页批量下载文件方法初探(正则表达式+BeautifulSoup) (转)...
最近两周都在学习Python抓取网页方法,任务是批量下载网站上的文件.对于一个刚刚入门python的人来说,在很多细节上都有需要注意的地方,以下就分享一下我在初学python过程中遇到的问题及解决方法 ...
- python读取文件夹下所有txt_python如何批量读取txt文件
python批量读取txt文件的方法:首先导入系统模块:然后将文件夹路径更改为需要批量读取的txt文件存放的路径:再调用系统模块得到该文件夹下的所有文件名称:最后遍历文件夹,读取txt文件. 如果文件 ...
- 用Python下载视频,保存至文件的demo
def download_video(url):try:print('准备下载视频:'+url)response=requests.get(url,headers=headers)data=respo ...
- Python爬虫:给我一个链接,虎牙视频随便下载
1. 爬取的原理 我们来到虎牙视频主界面,链接为:虎牙视频主界面 然后随便点击一下某个视频的发布者,来到这个发布者的主界面,点击到视频,如下: 我们可以看到这个界面下有许多视频可以观看,那么怎样下载呢 ...
- 批量下载sra文件linux,Linux下从NCBI批量下载SRA数据的sra和aspera方法
Minus_yao 2018.04.25 yaoguocai_cool@163.com #从NCBI下载SRA数据,最近在疯狂下载宏基因组数据,试着解决一下这个问题~ 方法一: 软件准备: 使用n ...
- 实战python网络爬虫脚本之家_python爬虫实战,批量下载网站视频
pip3 install requests 测试样例 加上序言总共有16个视频,我们用python爬虫技术批量下载到本地. https://learning.dcloud.io/#/?vid=0 ...
- python自动批量下载_Python批量下载鼠标样式,自动化一条龙处理详解
前情提要 最近发现一款特别好看的壁纸软件,其中提供了鼠标样式,感觉很好看!很精致!心想肯定是请求下载然后启用鼠标样式, 那么发送请求,那不就可以用Python爬虫了吗? 其中鼠标样式下图: 爬虫环境 ...
- 更新!Python文献超级搜索工具,可关键词搜索并批量下载!
文献搜索对于广大学子来说真的是个麻烦事,如果你的学校购买的论文下载权限不够多,或者不在校园内,那就很头痛了.幸好,我们有Python制作的这个论文搜索工具,简化了我们学习的复杂性 2020-05-28 ...
最新文章
- SAP WM初阶之移动类型设置里的Additional Data?
- 帮你理解特征向量的几何意义?
- redhat 7 oracle 11,redhat7 搭建oracle 11g RAC 问题与处理
- leetcode刷题笔记(3)(python)
- echarts 柱状图 横坐标文字纵向展示(超出显示...)
- 【ReactJs学习笔记总目录】
- RK系列开发板音频驱动适配指南(二)
- day23 三升序列
- HIT信息安全概论复习:1~10
- unity产生阴影的几种方式
- 10个最佳PHP URL缩短器脚本
- 浅谈“高内聚,低耦合”
- EMC设计的四大技巧
- 互联网采集-互联网采集软件-互联网采集数据信息采集工具免费
- 2021最新 阿里云购买学生机服务器搭建部署一条龙服务
- 推荐系统第3、4周笔记
- 边缘计算网关已经量产的哪些网事
- 厚物科技PXIe/PXI一体化测控平台HW-1043d
- 用Python爬虫抓取免费代理IP
- 神策数据新 DEMO 上线,助力零售行业数据分析
热门文章
- 北大慕课(郭炜):程序设计与算法(一)编程题答案(全)
- 教育部更新学科目录!考研(与在读)的同学都需要知道!
- 【常用配置】——WPS文字常用快捷键大全【史上最全面】转
- 工序(过程)能力指数
- HFSS - 侧馈矩形微带天线设计与仿真
- 未处理的异常: 0xC0000091: Floating-point overflow 的解决办法
- MATLAB绘制统计折线图
- java计算机毕业设计教务排课系统源码+mysql数据库+系统+lw文档+部署
- 单侧CPK的计算方式
- BT.2020 新一代超高清UHD视频制作与显示系统标准