Python 简易下载m3u8 整理版
import requests import os class xiazai(): def __init__(self,url): self.url = url work_dir = os.getcwd() # print(work_dir) # 用来保存ts文件 file_dir = os.path.join(work_dir, 'file_tmp') if not os.path.exists(file_dir): os.mkdir(file_dir) self.headers ={ 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.116 Safari/537.36' } self.savefile(self.url) def savefile(self, file_url): r = requests.get(file_url, headers=self.headers) # 合成带有hls的m3u8地址 if r.text.split('\n')[-1] == '': hls_mark = r.text.split('\n')[-2] # 以防\n结尾 else: hls_mark = r.text.split('\n')[-1] url_m3u8_hls = file_url.replace('index.m3u8', hls_mark) file_m3u8 = url_m3u8_hls.split('/')[-1] self.duqu(url_m3u8_hls) #print(url_m3u8_hls) def duqu(self,url_m3u8_hls): r = requests.get(url_m3u8_hls, headers=self.headers).text text_bytes = r.split('\n') # 筛选以.ts结尾的行 # 有些情况下可能是以其他格式的文件,比如png,下载后修改后缀即可 # ts_name = [i for i in text_string if i.endswith('.ts')] ts_name = [i for i in text_bytes if i.startswith('#EXTINF')] ts_neirong = [i for i in text_bytes if not i.startswith('#')] ts_neirong.pop() self.xiazai(ts_neirong,url_m3u8_hls) # print(ts_neirong) def xiazai(self,ts_neirong, url_m3u8_hls): for i in range(len(ts_neirong)): hls_mark = url_m3u8_hls.split('/')[-1] url_xiazai = url_m3u8_hls.replace(hls_mark, ts_neirong[i]) print(url_xiazai) r = requests.get(url_xiazai, headers=self.headers) with open('file_tmp/'+ts_neirong[i], 'wb') as f:
f.write(r.content) f.close() if __name__=='__main__': xiazai('http://iqiyi.cdn9-okzy.com/20200907/15137_ed25d8c5/index.m3u8')
如果人生还有重来,那就不叫人生。

浙公网安备 33010602011771号