import os
import requests
"""
下载M3U8文件里的所有片段"""
def download(url):
download_path= os.getcwd() + "\download"
if not os.path.exists(download_path):
os.mkdir(download_path)
all_content= requests.get(url).text# 获取M3U8的文件内容
file_line= all_content.split("\r\n") # 读取文件里的每一行
# 通过判断文件头来确定是否是M3U8文件
# if file_line[0] != "#EXTmp4":
# raise BaseException(u"非M3U8的链接")
# else:
unknow= True # 用来判断是否找到了下载的地址
for index, linein enumerate(file_line):
if "EXTINF" in line:
unknow= False
# 拼出ts片段的URL
pd_url= file_line[index+ 1]
res= requests.get(pd_url)
# c_fule_name = str(index)+ '.ts'
c_fule_name= "%(index)02d" % {'index': index} + '.ts'
with open(download_path+ "\\" + c_fule_name, 'ab') as f:
f.write(res.content)
f.flush()
if unknow:
raise BaseException("未找到对应的下载链接")
else:
print("下载完成")
# 合并的时候名字要有规律,从前往后排
def merge_file(path):
os.chdir(path)
os.system("copy /b * new.mp4")
if __name__== '__main__':
download(
"https://vd2.bdstatic.com/mda-pa3e8zh51t7y2db7/sc/cae_h264/1672899441559507828/mda-pa3e8zh51t7y2db7.mp4?v_from_s=hkapp-haokan-nanjing&auth_key=1676274138-0-0-46066e672de1f107f328c1b3119a8ab0&bcevod_channel=searchbox_feed&pd=1&cd=0&pt=3&logid=0738510073&vid=11362852989718343440&abtest=&klogid=0738510073")
merge_file(os.getcwd() + "\download")
网友评论