m3u8 解密
import wget import requests from Crypto.Cipher import AES#pip install pycryptodome headers = {} headers['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36' headers['accept'] = '*/*' headers['Connection'] = 'keep-alive' headers['Pragma'] = 'no-cache' ts_list = [] url = "https://dash.maadd.club/videos/60b8802069f3cb0c5717b834/" key_url = "https://dash.maadd.club//videos/60b8802069f3cb0c5717b834/ts.key" iv = b'0000000000000000' key = requests.get(url=key_url, headers=headers).content
# AES解密需要的Key文件 print(key)
# 已经下载好了m3u8文件,将此文件打开并读里面的内容。
# 将正确的ts文件放入到列表中备用 def read_file():#只留下ts文件放到ts_list列表中。 with open("index.m3u8","r") as files: file1 = files.readlines() for ts in file1: ts.split("\n") if ts.endswith(".ts\n"): ts_list.append(ts) def download_ts(): for i in range(1,len(ts_list)): # 从第1个开始, print(ts_list[i]) ts_list1 = ts_list[i].strip("\n") # 放入列表中的代码,没有清洗干净。 ts_data = requests.get(url = url+ts_list1, headers = headers).content #下载ts文件。 aes = AES.new(key=key, mode = AES.MODE_CBC,iv=iv) #准备使用AES解密。iv偏移量就是bite形式的16个0 desc_data = aes.decrypt(ts_data) # 开始对二进制的ts文件进行解密。然后保存ts文件。 ts_name = "{}.ts".format(i) with open(ts_name,'wb') as fp: fp.write(desc_data) read_file() print(ts_list) download_ts()
终于成功了,远程调试代码真的很麻烦。maadd==madou
import re import wget import os ts_list= [] def demo():#完美处理了m3u8文件中的多余的部分。保留真正的ts文件的地址。 with open("index.m3u8","r") as file: ts_data = file.readlines() for ts in ts_data: ts_data = re.sub("#EXT.*","",ts).strip() if not ts_data == '': ts_list.append(ts_data) def download(): if not os.path.exists("./move"): os.mkdir("move") local_path = "./move" for i in ts_list: wget.download(i,out=local_path) demo() #print(ts_list) #download()
import re import wget import os #隐入尘烟 #影片讲述西北农村,两个被各自家庭抛弃的孤独个体, #在日复一日的耕耘中相濡以沫的故事, #武仁林与海清展现了一对底层农民夫妇从陌生到熟悉,从相知到相守的心路历程 #网页 #http://www.btdpf.org.cn/vodplay/yinruchenyan-1-1/ ts_list= [] url = "https://wolongzywcdn3.com:65/20220809/Qp1jma9E/2000kb/hls/" #ts文件拼接网址 def demo():#完美处理了m3u8文件中的多余的部分。保留真正的ts文件的地址。 wget.download("https://mgtv.sd-play.com/20220809/25wSZ4BK/1200kb/hls/index.m3u8",out="index.m3u8") with open("index.m3u8","r") as file: ts_data = file.readlines() for ts in ts_data: ts_data = re.sub("#EXT.*","",ts).strip() if not ts_data == '': ts_list.append(ts_data) def download(): if not os.path.exists("./movie"): os.mkdir("movie") local_path = os.path.join(os.path.abspath('.'),"movie") print("下载的电影存放的位置是:"+local_path) os.chdir(local_path) for i in range(len(ts_list)): # ts_file = "{}.ts".format(i) ts_file = os.path.join(local_path,"{}.ts".format(i)) wget.download(url+ts_list[i],out=ts_file) print("第{}个下载完成!".format(i)) demo() print(len(ts_list)) download()
分类:
Python
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!