粘贴 m3u8 视频链接,一键下载整部视频。支持:
- 普通 m3u8 和加密 m3u8(AES-128 / SAMPLE-AES)
- 多线程并发下载,速度更快
- 自定义请求头,应对需要登录或 Referer 验证的视频源
- 下载后自动合并为 mp4
把多个视频片段拼接成一个完整视频。支持:
- 按顺序批量合并多个 mp4 文件
- 正则匹配批量导入(如
video_01.mp4~video_20.mp4) - 合并时可调整分辨率、帧率、码率
从长视频中截取精彩片段。只需设置起始时间和持续时长,秒出结果。
将视频转换为不同格式或画质。支持自定义:
- 视频编码(H.264 / H.265)
- 分辨率(4K / 1080p / 720p 等)
- 码率、帧率
- 音频编码(AAC / MP3 / Opus)、音频码率、声道、采样率
内置视频播放器,直接输入 m3u8 链接在线观看,粘贴即播。
提供 macOS / Windows / Linux 桌面客户端,图形化操作,无需敲命令。
下载对应平台的安装包,开箱即用。界面美观,任务可视化,实时查看下载/处理进度。
- macOS:
.dmg安装包 - Windows:
.msi/.exe安装包 - Linux:
.AppImage/.deb安装包
安装包可在 GitHub Releases 页面下载。
⚠️ macOS 用户注意:如果安装后打不开 App,提示"无法验证开发者"或"已损坏",请在终端执行以下命令清除隔离标记:xattr -cr /Applications/Media\ Tool.app这是因为应用未经过 Apple 官方签名,macOS Gatekeeper 默认会阻止运行。
也支持直接在终端中使用:
# 下载视频
media-tool-rs download --url "https://example.com/video.m3u8"
# 合并视频
media-tool-rs combine --reg-name "clip_(.*).mp4" --reg-name-start 1 --reg-name-end 10
# 截取片段
media-tool-rs cut --input "video.mp4" --start 30 --duration 60
# 转码视频
media-tool-rs transcode --input "video.mp4" --video-codec h265 --resolution 1080p
# 启动 Web 服务(配合前端界面使用)
media-tool-rs serve --port 8080本项目使用 Rust 编写核心逻辑,前端基于 React + Material UI + Tauri 构建桌面应用。
如需从源码运行,请确保已安装 Rust 和 Node.js,然后:
# 启动后端服务
cargo run -- serve --port=0
# 启动前端开发服务器(另一个终端)
cd desktop
npm install
npm run dev:with-servernpm run dev:with-server 会自动启动后端并配置好代理,打开浏览器即可使用。
如需构建桌面安装包:
cd desktop
npm run tauri buildLinux 用户需先安装 GTK / WebKit 等系统依赖。
- 修复 下载任务中部分 TS 分片下载失败时仍会继续合并的问题,现在会检测每个分片的下载结果并在失败时返回具体错误信息
- 新增 详细的错误信息传递链路,下载失败时前端可看到具体原因(如 HTTP 状态码异常、网络超时、URL 等)
- 修复 请求未携带
User-Agent导致部分 CDN 拒绝访问的问题,现默认使用 Chrome UA - 修复 TLS 指纹(JA3)被部分 CDN 拦截的问题,将 TLS 后端从 rustls 切换为 native-tls
- 修复 下载完成后的 MP4 文件点击播放报 "format is not supported" 的问题,统一使用
serve-videoAPI 精确定位输出文件 - 优化 worker 线程在下载任务完成后能正常退出,不再阻塞等待
MIT License