爬m3u8文件,解析所有ts的url,爬取ts保存至本地,合并为完整文件。
附上直接可以用的代码
import requests
import urllib3
import re
import os
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def getTsUrls(m3u8_url) -> list:
r = requests.get(m3u8_url, timeout=15)
m3u8_text = r.text
r.close()
ts_urls = re.findall(r"#EXTINF:.+?,\n(.+?)\n", m3u8_text)
parent = m3u8_url[:m3u8_url.rfind("/")]
if "http" not in ts_urls[0]: ts_urls = ["{}/{}".format(parent, url) for url in ts_urls]
return ts_urls
# 初步生成目标dir
###############################
m3u8_url = "https://www.baidu.com/movie.m3u8" # 假的视频地址
root_dir = "D:/movie" # 保存地址
url_dir = os.path.join(root_dir, "url")
ts_dir = os.path.join(root_dir, "ts")
aim_path = os.path.join(root_dir, "aim.ts")
if os.path.exists(root_dir): os.mkd