目前的问题是只爬取出来一个30分钟部分乱拼接的视频|可能是加密了但是加密协议和密钥被隐藏了|附网站地址
https://www.daquan5.net/play/?293798-14-0.html

Preview Name Headers Response Initiator X Timing
index.m3u8 1 #EXTM3U
2
index.m3u8
#EXT-X-VERSION:3
3 #EXT-X-TARGETDURATION:5
4 #EXT-X-MEDIA-SEOUENCE:
5 #EXTINF:4.166667,
6 66384547730000000.ts
7 #EXTINF:4.166667,
8 66384547730000001.ts
9 #EXTINF:4.166667,
10 66384547730000002.ts
11 #EXTINF:3.958333,
12 66384547730000003.tS
有一篇关于
下载并解密的ts文件,发现一部分ts文件能播放,一部分不能播放的博客,但是此文章没有告诉隐藏的加密协议和密钥,如何处理,此章博客如下:
https://blog.csdn.net/weixin_41956627/article/details/125722027
本人参照处理过的代码如下:
import requests
import subprocess
# 获取 m3u8 文件内容
url = 'https://cdn16.yzzy-kb-cdn.com/20230726/14089_b68b569c/2000k/hls/index.m3u8'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36 Core/1.94.201.400 QQBrowser/11.9.5325.400'}
response = requests.get(url,headers=headers)
m3u8_content = response.text
# 解析 m3u8 文件,获取视频片段 URL
base_url = url.rsplit('/', 1)[0]
video_urls = []
index = 0
for line in m3u8_content.split('\n'):
if line.startswith('#EXTINF:'):
for i in video_urls:
video_url = base_url + '/' + m3u8_content.split('\n')[index+1]
video_urls.append(video_url)
# 下载视频片段并合并成一个完整的视频文件
with open(f'g:/234/output.ts', 'wb') as f:
for video_url in video_urls:
response = requests.get(video_url)
f.write(response.content)
# 使用 ffmpeg 合并视频片段
subprocess.call(['ffmpeg', '-i', 'g:/234/output.ts', '-c', 'copy', 'g:/234/output.mp4'])