python抓取m3u8文件,并提取.ts文件合成视频
本节抓取手机app视频,charles抓包部分就不演示了,抓包内容如下:
可以直接抓取到.ts视频文件,但全都是视频片段,如果要抓全部的视频,就要找m3u8文件,里边有所有的视频路径,在拼接url前缀,就可以拿到正确的视频url了。
以下是代码部分:
import requests import os,sys import re #读取m3u8文件并提取.ts文件路径 url="http://f1.thishs.com/578a7600fb83e8566227a90f3bd926b4/5E64C7E6/vod2/_definst_/mp4:2020/5/0227/STP12280/STP12280.mp4/chunklist.m3u8" res=requests.get(url).text print(res) url_prifix="http://f1.thishs.com" ts=re.findall(r"/.*?\.ts",res,flags=re.S) print(len(ts),ts) #分别获取.ts文件并以二进制保存 for i in ts: u=url_prifix+i r=requests.get(u).content print(i,u) filename=u[-4:] if u[-5:].startswith("_") else u[-5:] with open(filename,mode="wb") as file: file.write(r) #利用cmd命令将.ts文件合成为mp4格式 os.system("copy /b *.ts hello.mp4") print("转换成功")
运行程序,已经可以看到.ts文件被合成为一个.mp4格式的视频了,可以正常播放,就是视频时长不准确