Skip to content

ZapcoMan/Media-Segment-Grabber

Repository files navigation

Media-Segment-Grabber

一个功能强大的 M3U8 视频流分段提取工具,支持多线程下载、自动重试和浏览器伪装。

功能特性

  • 多线程下载:支持多线程并发下载,大幅提升下载速度
  • 进度显示:实时显示下载进度、速度和剩余时间
  • 自动重试:失败分片自动重试,最多重试 20 次
  • 浏览器伪装:模拟真实浏览器行为,随机切换 User-Agent
  • 嵌套 M3U8 支持:自动解析多层嵌套的 M3U8 播放列表
  • 智能恢复:每次重试前模拟浏览器访问,提高成功率
  • 自动合并:下载完成后自动合并所有分段
  • 跨平台:支持 Windows、Linux 和 macOS

安装依赖

pip install requests tqdm

使用方法

基本使用

python download_video.py

自定义配置

修改脚本中的以下参数:

# 视频URL
M3U8_URL = "https://example.com/video.m3u8"

# 输出文件路径
OUTPUT_FILE = r"C:\path\to\output.mp4"

# 线程数(建议 8-32)
MAX_THREADS = 16

功能说明

1. 浏览器模拟

工具会在下载前和每次重试前访问页面上的其他资源:

  • 主页
  • CSS 样式文件
  • JavaScript 文件
  • Favicon 图标

每个资源请求之间有随机延迟(0.5-2秒),模拟真实用户行为。

2. User-Agent 池

支持多种浏览器类型:

  • Chrome (多个版本)
  • Firefox
  • Safari
  • Edge

每次请求都会随机选择浏览器类型和版本。

3. 下载流程

1. 模拟浏览器访问页面
2. 解析 M3U8 播放列表
3. 多线程下载所有分段
4. 检测失败的分段
5. 重试流程(最多20次):
   - 模拟浏览器访问
   - 切换浏览器类型
   - 下载失败的分段
6. 合并所有分段
7. 清理临时文件

4. 重试机制

  • 最多重试 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 验证

禁用 SSL 证书验证(仅用于测试环境)

依赖库

  • requests:HTTP 请求
  • tqdm:进度条显示
  • urllib3:SSL 处理

免责声明

本工具仅供学习交流使用,请勿用于非法用途。使用本工具产生的一切后果由使用者自行承担。作者不对本工具的任何用途负责。

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

作者

Media-Segment-Grabber Team

更新日志

v1.0.0

  • 初始版本发布
  • 支持多线程下载
  • 支持自动重试
  • 支持浏览器伪装
  • 支持嵌套 M3U8 解析

About

来自一个盗版网站的爬取脚本 本意是爬取 《惊蛰无声》的枪版电影

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages