m3u8网页视频文件爬取与视频合成
我们经常在网络上找到的自己想要的视频素材却无法下载,并且打开控制台一看视频是通过分割成一份份的.ts文件发送过来的。
下载m3u8文件
这时我们先双击下载m3u8文件, 这是一种用于传输流媒体的文本格式文件 , 主要用于描述和组织视频流的各个部分 。 m3u8文件作为播放列表,列出了构成视频流的所有TS(Transport Stream)片段。每个片段都是视频的一部分 。简单来说有了这些列表和对应的TS文件就可以合成完整的视频了。
下载m3u8文件列表所对应的ts文件
右键复制一个.ts文件的url。发现所有ts文件的url地址的前段一致,后缀不同。这时可以通过python进行url拼接然后批量化下载。
以下是完整python代码
# My Python
# 测试时间:2024/9/8 23:46
import os
import time
import requests
# 定义基本URL
base_url = 'https://vip.ffzy-play7.com/20221227/9993_9681b67b/2000k/hls/'
# 定义文件路径
file_path = r'D:\Desktop\video\mixed.m3u8'
output_dir = r'D:\Desktop\video\ts'
failed_urls_file = r'D:\Desktop\video\failed_urls.txt'
# 创建输出目录如果它不存在
if not os.path.exists(output_dir):
os.makedirs(output_dir)
if not os.path.exists(os.path.dirname(failed_urls_file)):
os.makedirs(os.path.dirname(failed_urls_file))
# 读取.m3u8文件
try:
with open(file_path, 'r', encoding='utf-8') as file:
lines = file.readlines()
except IOError as e:
print(f"无法打开文件 {
file_path}