最近想下m3u8格式视频流但是网址太卡好慢看不了所以搞了个python脚本下载 ,给有需要的也用用 ,可以有点小问题大家可以改改,搬或者移到其他视频流下载上,不要嫌弃

# 自己定义start ,url,key变量     在E下建立目录dowload目录和name0.txt ,name1.txt,   在 dowload目录下建立q1目录
import importlib
import os
import sys
import _thread
import requests
import time
import shutil
import datetime
import string
#from Crypto.Cipher import AES
# pycryptohome
from Crypto.Cipher import AES
from binascii import b2a_hex, a2b_hex

importlib.reload(sys)

#sys.setdefaultencoding('utf-8')

def download(url,num,open1,end1,pathend):
    global xie
    global cuocu #判断出错最后不合并
    global okok
    global start
    #num=t 
    download_path = os.getcwd() + r"\download"
    download_path1=download_path
    download_path0 = os.getcwd()
    if not os.path.exists(download_path):

        os.mkdir(download_path)
    download_path = os.path.join(download_path, datetime.datetime.now().strftime('%Y%m%d_%H%M%S'))
    os.mkdir(download_path)

    all_content = requests.get(url).text
    file_line = all_content.split("\n")
    zb=0    
    for index, line in enumerate(file_line): # 第二层   
      
        if "EXTINF" in line: # 找ts地址并下载
             if     file_line[index + 1].rsplit("/", 1)[-1]==open1:
                  zb=1
             elif  file_line[index + 1].rsplit("/", 1)[-1]==end1 or open1=="EXT-X-ENDLIST"  or open1=="die":
                  zb=0
                  break
             elif  file_line[index + 1].rsplit("/", 1)[-1]!=end1 and end1=="EXT-X-ENDLIST" and zb==1 :  #返回过载任务
                  try:
                       start=file_line[index + 2001].rsplit("/", 1)[-1]
                  except:
                       start="die"
                  print("返回下个线程中"+start)
                  end1=start   
                  # ""一个线程
        if zb==1 and "EXTINF" in line:
            
            pd_url = url.rsplit("/", 1)[0] + "/" + file_line[index + 1] # 拼出ts片   
           # res = requests.get(pd_url)
            res=dowfile(pd_url,0)
            num=num+1
            c_fule_name =str(num)+ ".ts"
            print("准备解密"+c_fule_name)       
            # 定义文件名
            #无密钥处理
            #with open(os.path.join(download_path, c_fule_name),'ab') as f:
            #             f.write(res.content)
            #            f.flush() '''
            #密钥处理
            # 密钥 处理225419579aaeeeeb
            key= '225419579aaeeeeb&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值