下載下傳視訊 ,并儲存在腳本目錄下對應的download目錄
實測:python2.7 + win10
通過分析M3U8檔案内的内容,實作此功能!
# -*- coding: utf-8 -*-
# Created on 2018/3/22
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] != "#EXTM3U":
raise BaseException(u"非M3U8的連結")
else:
unknow = True # 用來判斷是否找到了下載下傳的位址
for index, line in enumerate(file_line):
if "EXTINF" in line:
unknow = False
# 拼出ts片段的URL
pd_url = url.rsplit("/", 1)[0] + "/" + file_line[index + 1]
res = requests.get(pd_url)
c_fule_name = str(file_line[index + 1])
with open(download_path + "\\" + c_fule_name, 'ab') as f:
f.write(res.content)
f.flush()
if unknow:
raise BaseException("未找到對應的下載下傳連結")
else:
print u"下載下傳完成"
if __name__ == '__main__':
download("http://hzresource.cdn.bcebos.com/hls/geruikldsl/hls.m3u8")