一些网站会将视频分割成n个ts文件。
用猫抓chrome插件,抓取index.m3u8,可得到众多ts文件下载地址。
可用迅雷打包下载ts文件以及index.m3u8文件,但有时会出现下载不了的情况,怀疑是请求报头的问题上。
若迅雷下载不了,则尝试改用命令curl下载。
用以下Python脚本批量生成curl命令(urls.txt内含ts下载网址,从猫抓插件那里获取的)。
import ostemplate = \
'''curl -L "%s" -o "%s" --create-dirs -H "Accept: image/*,*/*;q=0.8" -H "Connection: keep-alive" -H "Accept-Encoding: gzip, deflate, sdch" -H "Accept-Language: zh-CN,zh,en,ja;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36" -k --retry 4\n'''workDir = "E:\\a\\"
os.chdir(workDir)with open("urls.txt", "r", encoding="utf-8") as fi:with open("out.txt", "w", encoding="utf-8") as fo:for line in fi.readlines():#print(line)line = line.strip()if line.endswith("ts"):url = linefilename = line.split("/")[-1]print(template % (url, filename), file=fo)
生成后的命令在bash或cmd运行,开始下载文件。下载任务可能过多,单一窗口会很耗时,可新开几个窗口,分派下载任务,并行下载。
最后,在bash或cmd运行以下命令,将同一目录下众多ts文件合成单一mp4文件(事先要下载ffmpeg软件并配置环境变量)。
ffmpeg -i index.m3u8 -vcodec copy -acodec copy a.mp4