如何强制下载受保护的m3u8视频 IDM提示,由于xx原因,IDM无法下载此受保护的数据。

IDM下载m3u8视频时会提示由于xx原因,IDM无法下载此受保护的数据。
1

m3u8DL

我们需要用到一个工具 : m3u8DL,该工具开源于 github.com/nilaoda/N_m3u8DL-CLI
releases : github.com/nilaoda/N_m3u8DL-CLI/releases

下载 : 猪盘

我们下载这个zip文件
2

使用

m3u8DL需要安装依赖 .NET Framework 4.6
解压,运行 N_m3u8DL-CLI_v2.9.9.exe
3
其中,N_m3u8DL-CLI-SimpleG.exe 是该程序的GUI版本,拥有图形化操作界面,但我却觉得这样更加繁琐,所以还是使用命令行

将刚刚IDM嗅探到的m3u8链接直接粘贴在命令窗口中,回车
4
m3u8DL下载的是视频文件分片,例如此次下载有5072个分片
默认线程下载较慢,可以查看下面的命令行选项来调大线程数,不过可能部分站点会因为线程过多而将你的ip封禁

64线程

qw

合成

下载完成后m3u8DL会自动调用ffmpeg来将文件分片合成成视频

完成

合成完成的文件保存在 m3u8DL目录/Downloads 格式为MP4
5
其中,文件分片保存在 m3u8DL目录/Downloads/index_20220404100937/Part_0

命令行选项

m3u8DL提供了许多命令行参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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

本文作者 : 肥猪qwq 转载请注明出处