一些網站會將視頻分割成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