根据M3U8文件地址下载网站上的视频

无聊自学爬虫,想追剧,找到了在线观看的网址,然后想有什么办法能把网站上播放的视频下载下来。

我的m3u8格式是这样的(链接已打码),用的AES128加密

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:9
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="https:********/hls/key.key"
#EXTINF:5,
https://********hls/aGmWudvF.ts
#EXTINF:3.52,
https://********/hls/1JAJqOdf.ts

首先获取m3u8文件中的信息,提取出所有的ts文件链接地址和加密秘钥

def get_ts(url_m3u8):
    d_m3u8 = requests.get(url=url_m3u8,headers=header).content.decode('utf-8')   # 访问网页获取返回信息
    ts_list = re.findall(r'(.*?\.ts)', d_m3u8)     # 正则提取出列表
    key_url = re.findall(r'URI="(.*?)"',d_m3u8)[0] #正则提取出秘钥
    return ts_list,key_url

下载单个tsw文件代码,在使用的时候前面加上retry装饰符,遇上网络不好执行出错的时候可以重复几次

def download_one_file(ts_url,download_path,index):
    ts_path = download_path + "/{:0>4d}.ts".format(index)
    file_name = ts_url.split("/")[-1]
    if not os.path.isfile(ts_path):
        # print("ts_url", ts_url)
        #print("开始下载 %s" % file_name)
        time.sleep(2)  # 防止爬虫间隔时间过短被禁止请求
        try:
            #随机挑选一个代理,以防被锁断开连接
            headers = {'User-Agent': str(UserAgent().random
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值