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()
复制代码

 

posted @   ken-yu  阅读(811)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
点击右上角即可分享
微信分享提示