基于 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 传入统一输出名(视链接类型而定)。
功能说明
链接类型与行为
.m3u8直链
使用 ffmpeg 拉流并 remux 为.mp4(-c copy)。- URL 中含
archives(归档站 / bl05 类页面)
请求页面,解析多个div.dplayer的data-config,得到多路 m3u8;按路依次下载,文件名一般为 页面标题 + 序号,并经safe_mp4_filename净化。 - 其它播放页(非 archives)
解析var cms_player = {...}的 JSON,取url作为 m3u8,再走 ffmpeg。 .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#


27 comments
emmm一楼嘛,看不懂干啥的,楼下解释一下
二楼也不懂,好像是看小电影的。具体楼下解释下。
不懂小电影,你解释下,哪里有小电影
路边小广告?
手机端,代码块内容跑出去了
修复了
这不巧了吗,三楼的我也不懂,原来技术文章可以这样回复
视频网站的视频都能下载吗?
这个不行,就是为了下载有播放地址的视频文件的。
如果下载视频网站的推荐lux。
还好还好,有一个应急就行,日常所需的资源大多有专门的工具下载
小电影下载器,我懂了。这是为博友造福呢。
大家好,好人有好报,推荐一个,你懂的
应该是下载某些网页上视频用的,比如爱优腾?
不过我也不看别的,就是👀一个哔哩哔哩,主要是它没什么广告,直接播放。
一些小网站的视频下载用的,之前为了下载一个教学视频折腾的。
以前折腾电视盒子的时候用过这个格式,应该是流媒体之类的?
嗯嗯,现在很多视频都是这个流格式。
包括iptv很多也是这种流媒体格式。
mu38以前看电影经常用
这个东西用的还蛮多的
很厉害的样子
我用 github 上这个 GUI 版本的,HeiSir2014/M3U8-Downloader,也很不错。
不错~试试看。
看意思自己实现的aes解密合并~~
等我两分钟。
付费下载?
?免费啊,免登陆需要我花钱,所以需要登录下载。
收藏备用
😁