import requests,re
from tkinter.filedialog import asksaveasfile
from time import sleep
savef=asksaveasfile('wb')
url_ts2=input('输入一个源地址:')
def f_m3u8(url_m3u8):
print('m3u8 called')
try:
r = requests.get(url_m3u8,timeout=30,headers={'Connection':'close'})
except:
num_count=0
while 1:
sleep(0.5)
num_count+=1
try:
print('m3u8 retry {}'.format(num_count))
r = requests.get(url_m3u8,timeout=30,headers={'Connection':'close'})
if r.status_code == 200 :
break
except:
continue
list_ts=re.findall('\n.*?\.ts|\n.*?\.jpg',r.text)
list_ts = list(map(lambda x:x[1:],list_ts))
print('ts连接数量:',len(list_ts))
return list_ts
def f_host_parse(url,url2):
list_url=url.split('/')[:-1]
list_url2 = url2.split('/')
pandin = list_url2[0]
if len(pandin) == 0:
pandin = list_url2[1]
list_url3=[]
for i in list_url:
if i == pandin:
break
else:
list_url3.append(i)
url3 = '/'.join(list_url3+list_url2)
return url3
def f_down(url_ts2):
print('down called')
list_ts = f_m3u8(url_ts2)
for i in list_ts:
## url_ts = url_ts.replace('index.m3u8',str(i))
url_ts = f_host_parse(url_ts2,i)
#手动换反斜杆
## url_ts = url_ts.replace('https://video.twimg.com//','https://video.twimg.com/')
url_ts = url_ts.replace('//','/')
url_ts = url_ts.replace(':/','://')
try:
print('{}开始下载'.format(url_ts))
r = requests.get(url_ts,timeout=30,headers={'Connection':'close'})
except:
num_count=0
while 1:
sleep(0.5)
num_count+=1
try:
print('m3u8 retry {}'.format(num_count))
r = requests.get(url_ts,timeout=30,headers={'Connection':'close'})
if r.status_code == 200 :
break
except Exception as e:
print(e)
continue
print(len(r.content))
savef.write(r.content)
savef.flush()
if __name__ == '__main__':
f_down(url_ts2)
视频下载半自动
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 5月以来,哪怕对市场风向再不敏感的人,也感觉到阵阵凉意。二级市场连续下挫,一级市场融资环境恶化,不论企业融资数量还...