天天看點

python下載下傳m3u8位址_python 下載下傳M3U8檔案對應的視訊

下載下傳視訊 ,并儲存在腳本目錄下對應的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")