1.任务介绍
拿到每一集的m3u8文件后,可以根据文件内的若干链接下载到对应的ts片段,然后根据key对应的链接获得视频解码的密钥对所有下载的ts片段进行解码。最后将所有片段拼接起来得到完整的一集视频。
2.代码实现
import requests,re,aiohttp,aiofiles,asyncio,os
from Crypto.Cipher import AES
def decode_key(url):
key_url = url.replace('index.m3u8','key.key')
key_resp = requests.get(key_url)
key = key_resp.text
aes = AES.new(key=key, IV=b"0000000000000000", mode=AES.MODE_CBC)
return aes
def ts_urls(url):
resp = requests.get(url)
pattern = re.compile('.*?\n(?P<ts_url>https://.*?.ts).*?',re.S)