【python爬虫】如何下载m3u8视频文件

865 阅读1分钟

前沿

看到一个视频课程,质量还不错,就想着要是能下载下来就好了。

下载流程

1.网页抓取m3u8地址

截屏2021-10-19 上午9.20.03.png

2.解析m3u8中的ts地址,iv和key

url = '******?sign=5300d63f160d0c422d3f7ec913ac792c&t=616d4808'
play_list = m3u8.load(url, headers=headers)
file_list = []
all_list = {}
for index, segment in enumerate(play_list.segments):
    print(segment.uri)
    iv = str(segment).split("IV=")[1].split("\n")[0]
    print(iv)

3.python下载encrypt的ts文件

def download_file(file_name):
    url = "https://****/" + file_name
    res = requests.get(url, headers=headers)
    with open(dir_name +"encrypt"+file_name, 'ab') as f:
        f.write(res.content)
        print("success..."+dir_name + "encrypt" + file_name)

4.python解密ts文件获取decrypt的ts文件

input_file = dir_name + 'encrypt' + item['uri']
output_file = dir_name + 'decrypt' + item['uri']
iv = item['iv'].split('x')[1]

output = os.system(
    'openssl aes-128-cbc -d -in ' + input_file + ' -out ' + output_file + ' -nosalt -iv ' + iv + ' -K ' + key + '')
print(output)

5.合并ts文件

截屏2021-10-19 上午9.25.22.png

cat /Users/developer/Desktop/source/0/decrypt/*.ts > /Users/developer/Desktop/source/video/0-.ts

6.最终成品

WechatIMG641.jpeg

说明:

key的获取 下载保存key的文件 vi -b xxx.key :%!xxd

文章主要做技术分享,建议看客不要用做其他用途,否则后果自负。