基于 Rust 开发的 m3u8 下载器:支持断点续传、边下边播 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
liubsyy

基于 Rust 开发的 m3u8 下载器:支持断点续传、边下边播

  •  
  •   liubsyy 18 天前 1478 次点击

    基于 Rust 开发的 m3u8 下载器:支持断点续传、边下边播

    背景

    在访问 M3U8类网站的视频时,有时我们想下载视频到本地。

    市面上有 Chrome 类插件或脚本支持 m3u8 下载,但是不能断点续传和边下边播,也不太方便查看和管理下载过的视频。 还有一些 m3u8 类下载软件,需要手动去找 m3u8 地址手填下载,不是很方便。

    于是我开发了 m3u8 播放器M3U8 Quicker,将两者结合起来,非常方便灵活下载 m3u8 视频并转成 mp4 ,安装包仅 2M 左右( 1.0.0 版本)。

    M3U8 Quicker 基于 Tauri + Rust + React + TypeScript 构建,支持 Windows 、macOS 和 Linux 。无论是日常保存课程视频、整理网络媒体资源,还是处理需要额外请求头的流媒体地址,它都能提供更直接、更稳定的使用体验。

    img

    特性

  • 支持 M3U8 视频下载与任务管理
  • 支持多线程下载,提升下载效率
  • 支持 AES-128 / AES-192 / AES-256 加密流的密钥拉取与解密
  • 支持暂停、继续下载、失败分片重试
  • 支持边下边播,下载过程中也能直接打开播放器
  • 支持自动合并 ts 并转成 mp4
  • 支持设置代理
  • 支持 Chrome 自动识别 m3u8 地址一键跳转新建下载任务
  • 它不是一个只负责“把文件拉下来”的小工具,而是一个更完整的 M3U8 媒体处理入口。

    从新建下载任务到播放,一条链路打通

    使用 M3U8 Quicker 的过程非常直接。打开应用后,点击“新建下载”,输入 M3U8 地址即可创建任务。如果资源依赖 refererorigin 等附加请求头,也可以在创建任务时一并补充。

    新建下载

    任务开始后,下载列表会持续展示当前状态、下载进度和下载速度。你可以随时暂停任务、恢复任务、重试失败分片。

    下载中

    也可以在下载过程中直接打开播放器,边下载边观看,播放过程中跳转任务进度,系统会优先下载当前播放进度附近的分片

    播放窗口

    Chrome 扩展

    除了桌面端本身,项目还提供了一个可选的 Chrome 扩展。打开 M3U8 Quicker->设置->安装 Chrome 扩展,按引导可安装 Chrome 扩展。

    安装后,扩展会在网页中扫描 .m3u8 链接和视频地址,右上角提供快捷入口,点击自动新建下载任务,自动带入常见请求信息,例如 urlrefereroriginuser-agent,可以减少手动复制和整理参数的步骤。

    Chrome 扩展安装引导

    技术栈

    前端:React 19 、TypeScript 、Vite 8 、Ant Design 6 桌面端:Tauri 2 后端逻辑:Rust

    地址

    源码地址: https://github.com/Liubsyy/M3U8Quicker

    可前往Release页面下载安装包。

    19 条回复    2026-04-09 12:23:40 +08:00
    zhangchongjie
        1
    zhangchongjie  
       18 天前 via Android
    后续会支持火狐吗
    liubsyy
        2
    liubsyy  
    OP
       18 天前   1
    @zhangchongjie 可以的,常用的浏览器后续会考虑支持
    lukaz
        3
    lukaz  
       18 天前
    很不错,已 star
    liubsyy
        4
    liubsyy  
    OP
       18 天前
    @lukaz 感谢支持,后续会持续优化
    liubsyy
        5
    liubsyy  
    OP
       18 天前   1
    @zhangchongjie 已支持 Chrome 扩展、Firefox 扩展和 Microsoft Edge 扩展。另外基于 Chromium 的浏览器 Brave / Vivaldi / Opera / Arc 都支持直接安装 Chrome 扩展。
    zyxk
        6
    zyxk  
       18 天前
    如果用扩展也必须下载软件吗?
    liubsyy
        7
    liubsyy  
    OP
       18 天前
    @zyxk 扩展和软件本体是一套的,扩展只是为了快速新建下载任务
    liuxyon
        8
    liuxyon  
       18 天前 via Android
    能下 qiyi 么
    zhangchongjie
        9
    zhangchongjie  
       18 天前 via Android
    感谢,我最近在学习 rust 了,学习下。可以打包到 nixos 仓库吗
    playniuniu
        10
    playniuniu  
       17 天前
    感觉很不错,已 Star 。

    顺便问一下,是否增加对代理的支持
    liubsyy
        11
    liubsyy  
    OP
       17 天前
    @playniuniu 支持的
    zhoudaniu
        12
    zhoudaniu  
       17 天前
    加油 加油
    iorilu
        13
    iorilu  
       16 天前
    能下一些成人网站比如 porhhub, xvideo 吗
    liubsyy
        14
    liubsyy  
    OP
       16 天前
    @iorilu 试试就知道了
    liubsyy
        15
    liubsyy  
    OP
       16 天前
    @iorilu 访问外网要设置里打开代理
    iorilu
        16
    iorilu  
       16 天前
    https://www.ted.com/talks/yi_li_the_missing_piece_in_climate_action_it_s_not_what_you_think


    @liubsyy 测试了个 ted 视频, 抓下来合并得 mp4 好像没有音频
    liubsyy
        17
    liubsyy  
    OP
       16 天前
    @iorilu 试了下,ted 网站是音频和视频分离的只下载了视频,我后续会兼容音视频分离的网站,还有各种格式、各种加密网站
    iorilu
        18
    iorilu  
       16 天前
    @liubsyy 可以, 如果能兼容性强, 兼容网站多, 还是有价值得
    liubsyy
        19
    liubsyy  
    OP
       15 天前
    @iorilu 是的,必须得来点黑科技才能和类似软件区分开来
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1573 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 55ms UTC 16:41 PVG 00:41 LAX 09:41 JFK 12:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86