通过m3u8文件下载合并ts视频文件案例

1.png
⼀般只需要关注EXT-X-KEY:这个有没有,有的话代表加密,后⾯URI对应⼀个⽹络请求,⼀般是根路径+URI;就是获取加密key的;⽽METHOD就是加密⽅式,读取下载好的⽂件然后反正解密⽣成新ts⽂件即可
main_page = , "html.parser")
src = main_page.find("iframe").get("src")
return src
# return "boba.52kuyun/share/xfPs9NPHvYGhNzFp"  # 为了测试
def get_first_m3u8_url(url):
resp = (url)
# )
obj = repile(r'var main = "(?P<m3u8_url>.*?)"', re.S)
m3u8_url = obj.).group("m3u8_url")
# print(m3u8_url)
return m3u8_url
def download_m3u8_file(url, name):
resp = (url)
视频文件加密with open(name, mode="wb") as f:
f.t)
async def download_ts(url, name, session):
async (url) as resp:
async with aiofiles.open(f"video2/{name}", mode="wb") as f:
await f.write(t.read())  # 把下载到的内容写⼊到⽂件中
print(f"{name}下载完毕")
async def aio_download(up_url):  # boba.52kuyun/20170906/Moh2l9zV/hls/
tasks = []
async with aiohttp.ClientSession() as session:  # 提前准备好session
async with aiofiles.open("越狱第⼀季第⼀集_", mode="r", encoding='utf-8') as f:            async for line in f:
if line.startswith("#"):
continue
# line就是xxxxx.ts
line = line.strip()  # 去掉没⽤的空格和换⾏
# 拼接真正的ts路径
ts_url = up_url + line
task = ate_task(download_ts(ts_url, line, session))  # 创建任务
tasks.append(task)
await asyncio.wait(tasks)  # 等待任务结束
def get_key(url):
resp = (url)
# 解密
async def dec_ts(name, key):
# 此处IV=b"0000000000000000"中0的个数对应key的字符串长度
aes = w(key=key, IV=b"0000000000000000", mode=AES.MODE_CBC)
async with aiofiles.open(f"video2/{name}", mode="rb") as f1,\
aiofiles.open(f"video2/temp_{name}", mode="wb") as f2:
bs = ad()  # 从源⽂件读取内容
await f2.write(aes.decrypt(bs))  # 把解密好的内容写⼊⽂件
print(f"{name}处理完毕")
async def aio_dec(key):
# 解密
tasks = []
async with aiofiles.open("越狱第⼀季第⼀集_", mode="r", encoding="utf-8") as f:        async for line in f:
if line.startswith("#"):
continue
line = line.strip()
# 开始创建异步任务
task = ate_task(dec_ts(line, key))
tasks.append(task)
await asyncio.wait(tasks)

本文发布于:2024-09-24 06:21:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/381893.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:加密   任务   下载
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议