一个功能强大的 M3U8 视频流分段提取工具,支持多线程下载、自动重试和浏览器伪装。
- ✅ 多线程下载:支持多线程并发下载,大幅提升下载速度
- ✅ 进度显示:实时显示下载进度、速度和剩余时间
- ✅ 自动重试:失败分片自动重试,最多重试 20 次
- ✅ 浏览器伪装:模拟真实浏览器行为,随机切换 User-Agent
- ✅ 嵌套 M3U8 支持:自动解析多层嵌套的 M3U8 播放列表
- ✅ 智能恢复:每次重试前模拟浏览器访问,提高成功率
- ✅ 自动合并:下载完成后自动合并所有分段
- ✅ 跨平台:支持 Windows、Linux 和 macOS
pip install requests tqdmpython download_video.py修改脚本中的以下参数:
# 视频URL
M3U8_URL = "https://example.com/video.m3u8"
# 输出文件路径
OUTPUT_FILE = r"C:\path\to\output.mp4"
# 线程数(建议 8-32)
MAX_THREADS = 16工具会在下载前和每次重试前访问页面上的其他资源:
- 主页
- CSS 样式文件
- JavaScript 文件
- Favicon 图标
每个资源请求之间有随机延迟(0.5-2秒),模拟真实用户行为。
支持多种浏览器类型:
- Chrome (多个版本)
- Firefox
- Safari
- Edge
每次请求都会随机选择浏览器类型和版本。
1. 模拟浏览器访问页面
2. 解析 M3U8 播放列表
3. 多线程下载所有分段
4. 检测失败的分段
5. 重试流程(最多20次):
- 模拟浏览器访问
- 切换浏览器类型
- 下载失败的分段
6. 合并所有分段
7. 清理临时文件
- 最多重试 20 次
- 每次重试都会:
- 访问页面资源
- 切换浏览器类型
- 使用新的 User-Agent
- 只下载失败的分段
- 请遵守当地法律法规
- 请尊重版权和知识产权
- 不要用于商业用途
- 不要用于下载受版权保护的内容
HEADERS = {
'User-Agent': '随机选择的浏览器UA',
'Accept': '*/*',
'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Referer': '原网站域名',
'Origin': '原网站域名',
'Connection': 'keep-alive',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'cross-site',
}使用 threading.Lock() 确保多线程环境下的数据安全。
禁用 SSL 证书验证(仅用于测试环境)
requests:HTTP 请求tqdm:进度条显示urllib3:SSL 处理
本工具仅供学习交流使用,请勿用于非法用途。使用本工具产生的一切后果由使用者自行承担。作者不对本工具的任何用途负责。
MIT License
欢迎提交 Issue 和 Pull Request!
Media-Segment-Grabber Team
- 初始版本发布
- 支持多线程下载
- 支持自动重试
- 支持浏览器伪装
- 支持嵌套 M3U8 解析