m3u8 downloader v26.03.28

基于 ffmpeg 的 m3u8 / 归档页解析下载工具,支持单链接、批量 CSV/文本、自定义输出目录与 ffmpeg 路径。

参数 说明
-i 输入:直链 m3u8、含 archives 的归档详情页、或带 cms_player 的播放页;也支持 .mp4 / .avi / .mov / .mpeg 直链(走 HTTP 分段下载,非 ffmpeg)
-o 输出文件名(自动补 .mp4);对部分模式用于覆盖默认标题名
-p 输出目录;可为本机路径或 UNC(如 \\服务器\共享\目录
-f 批量输入文件:.csv 或纯文本(每行一个链接)
-m 指定 ffmpeg 可执行文件路径

注意: 必须提供 -i 或 -f 之一。

单条示例

python m3u8_downloader.py -i "https://example.com/video.m3u8?token=xxx" -o myvideo -p D:\Videos

 

批量 CSV

 

  • 编码建议 UTF-8(含 BOM 亦可),表头需包含列 link;可选列 name(用于在部分逻辑里拼接输出名后缀,空单元格按空字符串处理,不会出现 nan 文件名)。
  • 会跳过空的 link 或内容为 link 的占位行。
  • 按行 顺序执行:上一任务结束(含 ffmpeg)后才会处理下一行。
python m3u8_downloader.py -f list.csv -p "\\192.168.1.12\media\Videos"

 

纯文本列表

 

每行一个 URL,行为与逐次 -i 类似;可通过 -o 传入统一输出名(视链接类型而定)。

功能说明

 

链接类型与行为

 

  1. .m3u8 直链
    使用 ffmpeg 拉流并 remux 为 .mp4-c copy)。
  2. URL 中含 archives(归档站 / bl05 类页面)
    请求页面,解析多个 div.dplayer 的 data-config,得到多路 m3u8;按路依次下载,文件名一般为 页面标题 + 序号,并经 safe_mp4_filename 净化。
  3. 其它播放页(非 archives)
    解析 var cms_player = {...} 的 JSON,取 url 作为 m3u8,再走 ffmpeg。
  4. .mp4 等直链
    使用 requests 分段下载(file_download.download_from_url),带 tqdm 进度条,不经过 ffmpeg

页面编码

 

抓取 HTML 时依次尝试 UTF-8 → UTF-8-sig → gb18030,减轻标题乱码。

输出文件名

 

  • 去除 Windows 非法字符,过长截断并可带 crc 后缀兜底。
  • 对「UTF-8 被误当成 latin-1」类乱码标题做启发式纠正(日志中可能出现 [F] 标题疑似 UTF-8/latin-1 乱码,已尝试纠正)。

覆盖策略

 

  • 若目标 .mp4 已存在os.path.isfile),跳过该次下载。
  • 调用 ffmpeg 时带 -n:不在终端交互询问覆盖;若因路径编码等导致检测不一致,ffmpeg 侧也会拒绝覆盖而非静默覆盖。

本地 m3u8 文件

 

-f 指向 .m3u8 / .m3u 时,当前代码分支为占位(pass),尚未实现。

目录说明

 

路径(相对程序目录) 用途
bin/ffmpeg.exe Windows 打包/放置 ffmpeg 的常见位置
download/m3u8_files 内部与 make_dir 相关的子目录逻辑
download/mp4 未指定 -p 时的默认输出目录

下载地址:

https://www.123912.com/s/ucY7Vv-njQAA?pwd=HwGK#



闺蜜圈APP

You may also like

35 comments

  1.  Level 3
    Google Chrome 131.0.6778.200 Google Chrome 131.0.6778.200 Android 16 Android 16 cn中国–湖南省–永州市–道县–中国联通–3GNET网络 IPv6

    二楼也不懂,好像是看小电影的。具体楼下解释下。

  2. Level 3
    WebView 4.0 WebView 4.0 Android 16 Android 16 cn中国–湖北省–武汉市–洪山区–中国联通–3GNET网络 IPv6

    手机端,代码块内容跑出去了

  3. Level 3
    Google Chrome 146.0.0.0 Google Chrome 146.0.0.0 Mac OS X  26.4 Mac OS X 26.4 cn中国–山东–临沂 移动 IPv4

    这不巧了吗,三楼的我也不懂,原来技术文章可以这样回复

    1.  公主 Queen Queen 
      Google Chrome 142.0.0.0 Google Chrome 142.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7 cn中国–山东省–青岛市–李沧区–中国联通–3GNET网络 IPv6

      这个不行,就是为了下载有播放地址的视频文件的。
      如果下载视频网站的推荐lux。

      1. Level 4
        Google Chrome 146.0.0.0 Google Chrome 146.0.0.0 Windows 11 x64 Edition Windows 11 x64 Edition cn中国–江苏 移动 IPv4

        还好还好,有一个应急就行,日常所需的资源大多有专门的工具下载

  4. Level 3
    Microsoft Edge 147.0.0.0 Microsoft Edge 147.0.0.0 Android 10 Android 10 cn中国–上海市–中国电信–公众宽带 IPv6

    应该是下载某些网页上视频用的,比如爱优腾?
    不过我也不看别的,就是👀一个哔哩哔哩,主要是它没什么广告,直接播放。

    1.  公主 Queen Queen 
      Google Chrome 142.0.0.0 Google Chrome 142.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7 cn中国–山东省–青岛市–李沧区–中国联通–3GNET网络 IPv6

      一些小网站的视频下载用的,之前为了下载一个教学视频折腾的。

  5. Level 2
    Google Chrome 146.0.0.0 Google Chrome 146.0.0.0 GNU/Linux x64 GNU/Linux x64 cn中国–河南省–郑州市–中原区–中国联通–公众宽带 IPv6

    以前折腾电视盒子的时候用过这个格式,应该是流媒体之类的?

    1.  公主 Queen Queen 
      Google Chrome 142.0.0.0 Google Chrome 142.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7 cn中国–山东省–青岛市–李沧区–中国联通–3GNET网络 IPv6

      嗯嗯,现在很多视频都是这个流格式。
      包括iptv很多也是这种流媒体格式。

    1.  公主 Queen Queen 
      Google Chrome 142.0.0.0 Google Chrome 142.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7 cn中国–山东省–青岛市–李沧区–中国联通–3GNET网络 IPv6

      这个东西用的还蛮多的

    1.  公主 Queen Queen 
      Google Chrome 142.0.0.0 Google Chrome 142.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7 cn中国–山东省–青岛市–李沧区–中国联通–3GNET网络 IPv6

      看意思自己实现的aes解密合并~~

    1.  公主 Queen Queen 
      Google Chrome 142.0.0.0 Google Chrome 142.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7 cn中国–山东省–青岛市–李沧区–中国联通–3GNET网络 IPv6

      ?免费啊,免登陆需要我花钱,所以需要登录下载。

  6. Level 2
    Google Chrome 146.0.0.0 Google Chrome 146.0.0.0 Windows 11 x64 Edition Windows 11 x64 Edition cn中国–陕西省–西安市–莲湖区–中国电信–公众宽带 IPv6

    收藏备用

  7. Level 4
    Google Chrome 109.0.0.0 Google Chrome 109.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition cn中国–上海–上海 腾讯云 IPv4

    这个是小红帽还是圣诞主题

    1.  公主 Queen Queen 
      Google Chrome 146.0.0.0 Google Chrome 146.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition cn中国–山东–青岛 联通 IPv4

      可以的,多数加密都是aes,本身ffmpeg可以带密钥处理,如果不是标准流就得自己解密了。

  8. Level 1
    Google Chrome 137.0.0.0 Google Chrome 137.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition cn中国–浙江–绍兴 电信 IPv4

    都用python了,搞个图形界面用起来更舒服,输命令还是太难为小白们了

    1.  公主 Queen Queen 
      Google Chrome 146.0.0.0 Google Chrome 146.0.0.0 Mac OS X  10.15.7 Mac OS X 10.15.7 cn中国–山东省–青岛市–胶州市–中国联通–3GNET网络 IPv6

      额,界面不方便批量操作,命令行更自由

      1. Level 1
        Google Chrome 137.0.0.0 Google Chrome 137.0.0.0 Windows 10 x64 Edition Windows 10 x64 Edition cn中国–浙江–绍兴 电信 IPv4

        你的意思是图形化界面不方便用批处理脚本吗?那就在图形化界面里把批量的逻辑写进去好了呀

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注