下载盗版网站视频并将.ts视频文件合并

本文介绍了如何通过分析视频请求中的M3U8文件获取.ts文件片段,利用正则表达式提取.ts文件名,并使用Python实现多线程下载和拼接这些文件,最终将它们合并为一个视频文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.分析视频请求

1

在这里插入图片描述

通过抓包观察我们发现视频是由.ts文件拼接成的每一个.ts文件代表一小段

2

在这里插入图片描述
在这里插入图片描述

通过观察0.ts和1.ts的url我们发现他们只有最后一段不同我们网上找到url获取的包

3

在这里插入图片描述
我们发现index.m3u8中储存着所有的.ts文件名在拼接上前面固定的url就可以获取到.ts文件

2.数据获取和拼接

import shutil
import requests
import re
import os
from multiprocessing.dummy import Pool

url ='https://vip.lz-cdn.com/20221109/37176_faf59775/1200k/hls/mixed.m3u8' # m3u8网址

res = requests.get(url).text
print(res)
# 正则提取内容
ts=re.findall(r",\n(.*?)\d+.ts",res,flags=re.S)[0]
print(ts)
ts2=re.findall(r"(\d+).ts",res,flags=re.S)
print(ts2)
start=int(ts2[0])
end=int(ts2[-1])
def xlx(i):
    i=ts+str(i)
        # 拼接完整的ts文件下载链接
    u = 'https://vip.lz-cdn.com/20221109/37176_faf59775/1200k/hls/' + i + ".ts"#拼接url
    r = requests.get(url=u).content
    print(i, u)
        # 二进制写入到本地

    with open('./nihao/' + i + '.ts', mode="wb") as file:
        file.write(r)


if not os.path.exists('./nihao'):
    os.mkdir('./nihao')
else:
    shutil.rmtree('./nihao')
    os.mkdir('./nihao')



pool = Pool(100)                                     #开启线程池
        # 定义循环数
origin_num = [ x for x in range(start,end+1)]

pool.map(xlx, origin_num)

os.system('copy /b ' + r'E:\python\xinfadi\nihao\*.ts ' + r'E:\python\xinfadi\new.mp4')
print("合并成功")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我把把C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值