IDM 下载 m3u8 视频时会提示由于 xx 原因,IDM 无法下载此受保护的数据。
m3u8DL
我们需要用到一个工具 : m3u8DL,该工具开源于 Github.com/nilaoda/N_m3u8DL-CLI
releases : Github.com/nilaoda/N_m3u8DL-CLI/releases
下载 : 猪盘
我们下载这个 zip 文件
使用
m3u8DL 需要安装依赖 .NET Framework 4.6
解压,运行 N_m3u8DL-CLI_v2.9.9.exe
其中,N_m3u8DL-CLI-SimpleG.exe 是该程序的 GUI 版本,拥有图形化操作界面,但我却觉得这样更加繁琐,所以还是使用命令行
将刚刚 IDM 嗅探到的 m3u8 链接直接粘贴在命令窗口中,回车
m3u8DL下载的是视频文件分片,例如此次下载有5072个分片
默认线程下载较慢,可以查看下面的命令行选项来调大线程数,不过可能部分站点会因为线程过多而将你的 IP 封禁
64线程
合成
下载完成后 m3u8DL 会自动调用 FFmpeg 来将文件分片合成成视频
完成
合成完成的文件保存在 m3u8DL目录/Downloads 格式为 MP4
其中,文件分片保存在 m3u8DL目录/Downloads/index_20220404100937/Part_0
命令行选项
m3u8DL 提供了许多命令行参数
N_m3u8DL-CLI.exe <URL|File|JSON> [OPTIONS]
--workDir Directory 设定程序工作目录
--saveName Filename 设定存储文件名(不包括后缀)
--baseUrl BaseUrl 设定Baseurl
--headers headers 设定请求头,格式 key:value 使用|分割不同的key&value
--maxThreads Thread 设定程序的最大线程数(默认为32)
--minThreads Thread 设定程序的最小线程数(默认为16)
--retryCount Count 设定程序的重试次数(默认为15)
--timeOut Sec 设定程序网络请求的超时时间(单位为秒,默认为10秒)
--muxSetJson File 使用外部json文件定义混流选项
--useKeyFile File 使用外部16字节文件定义AES-128解密KEY
--useKeyBase64 Base64String 使用Base64字符串定义AES-128解密KEY
--useKeyIV HEXString 使用HEX字符串定义AES-128解密IV
--downloadRange Range 仅下载视频的一部分分片或长度
--liveRecDur HH:MM:SS 直播录制时,达到此长度自动退出软件
--stopSpeed Number 当速度低于此值时,重试(单位为KB/s)
--maxSpeed Number 设置下载速度上限(单位为KB/s)
--proxyAddress http://xx 设置HTTP代理, 如 http://127.0.0.1:8080
socks5://xx 设置SOCKS5代理, 如 socks5://127.0.0.1:8080
--enableDelAfterDone 开启下载后删除临时文件夹的功能
--enableMuxFastStart 开启混流mp4的FastStart特性
--enableBinaryMerge 开启二进制合并分片
--enableParseOnly 开启仅解析模式(程序只进行到meta.json)
--enableAudioOnly 合并时仅封装音频轨道
--disableDateInfo 关闭混流中的日期写入
--noMerge 禁用自动合并
--noProxy 不自动使用系统代理
--disableIntegrityCheck 不检测分片数量是否完整
关键词:m3u8 下载m3u8视频 IDM 无法下载受保护的 m3u8 视频 m3u8DL n_m3u8dl-cli
本文作者 : 肥猪qwq 转载请注明出处
4 条评论
博主我出现了error in reading file然后就0kb了
同问啊,用这种主流方法已经下载不下来了OωO
链接怎么抓包的啊OωO
F12