前言

本文仅作学习和交流目的,不提倡和鼓励下载具有法律风险文件的行为。推荐阅读本站的 下载的时候,你有考虑过安全、监控和法律问题吗?,以尽可能地做到合法合规地下载。

IDM 也不是万能的

作为 Windows 平台必装应用之一,IDM (Internet Download Manager) 集 MacOS 上 Folx + Downie 之大成,视频嗅探和下载文件一气呵成。除了颜值稍逊于竞争对手之外(这也是很多 Windows 应用的通病,功能强大,但对于 UI 却不太上心),几乎无可挑剔。

对于 99% 的网络视频来说,IDM 都能轻松嗅探出真实地址且全速下载,唯一的例外则是 M3U8 格式的流媒体视频。IDM 可以嗅探出视频的下载地址,但是当你点击“开始下载”按钮时,就会遇到这个恼人的错误提示:

IDM 官网明确指出,不支持通过 playlist(也就是 M3U8 文件)指向视频类别的下载。根据上图的错误提示和 M3U8 常用于受版权保护视频内容这一特点来看,IDM 官方大概率是为了避免任何可能的法律风险,从而做出了封禁这个功能的决定。

如果你使用的是 MacOS,那么恭喜你,Downie 不存在上述问题,M3U8 下载轻松无压力;可是对于 Windows 用户来说,这可是一个连平台最强下载工具 IDM 都没法搞定的大难题。

什么是 M3U8

在给出解决方案之前,让我们先来说道说道这神秘的 M3U8 格式。M3U8 隶属于 HTTP Live Streaming (HLS)协议的一部分,而 HLS 则是苹果公司提出的流媒体网络传输协议,常用于一些网站的直播或直播录像。某些网站为了防止用户随意下载文件,也会采用该格式。HLS 会把视频流分为一小个一小个的子文件,类似于优酷的视频分段,从而达到分散服务器压力、提高加载速度的效果。

严格来说,M3U8 并不是视频文件本身,而是一个包含元数据的 playlist(播放列表)。视频开始时,浏览器或客户端会下载并解析 playlist 中指向的真实视频文件的地址(一般为 ts 格式),从而实现视频播放的效果。

M3U8 Downloader 拯救世界

那么在 Windows 上有办法下载 M3U8 格式的视频吗?答案是肯定的。在确定下载视频的行为合规合法的情况下,你可以使用 FFmpeg、you-get 或 youtube-dl 这样的命令行工具来进行下载。具体教程可参见 干货分享 | 如何下载各大网站的视频

使用命令行进行下载,优雅是优雅了,但是也有几个麻烦:

  1. 对于不会使用命令行工具的人来说,增加了新的学习成本;
  2. 每次需要去浏览器开发者工具中手动提取 M3U8 文件的地址,非常繁琐;

这个时候就需要小弟 N_m3u8DL-CLI 出场了,配合老大哥 IDM 的地址嗅探,可以做到省心下载 M3U8 视频。

关于 N_m3u8DL-CLI

N_m3u8DL-CLI 是由开发者 nilaoda 编写的一款开源命令行 HLS 下载工具,最近刚刚更新了 2.7.1 版本,已在 Github 上获得两千个 star。相比于其他 M3U8 下载工具,N_m3u8DL-CLI 功能更加强大,支持自动解密(优酷视频外)、多线程、限速、断点续传、自动合并文件等。更重要的是,作者提供了一个配套的图形界面应用,让下载流程变得更加简单。

准备工作

工欲善其事必先利其器,首先我们需要设置好两款软件。

你需要购买并安装 IDM,并按照提示配置好相应的浏览器插件。以 Edge 浏览器为例,在地址栏输入 edge://extensions/ 进入拓展界面,找到 IDM Integration Module,确保该拓展处于工作状态(如下图)。

至于 N_m3u8DL-CLI,你可以在 这个页面 下载。我推荐下载带"with_ffmpeg_and_SimpleG"后缀的版本,它集成了图形界面和ffmpeg(用于合并视频),否则你还需要手动安装 FFmpeg 且必须使用命令行操作。

将下载好的压缩包解压,此时所有准备工作完成。

开始下载

当你打开视频页面后,IDM 会自动嗅探出视频并显示一个悬浮组件,点击绿色的播放图标,调出下载界面。

在下载界面中,我们可以看到 IDM 已经帮我们嗅探出了 M3U8 文件的真实地址,我们将 URL 的地址复制进我们的剪贴板备用。

打开 “N_m3u8DL-CLI-SimpleG.exe” 进入图形界面,我们看到程序会自动将地址粘贴到“M3U8地址”栏中,如果粘贴不成功,你也可以手动操作。在这个界面,你可以自定义视频下载文件夹以及对文件进行重命名。一切设置完成后,点击右下角的“GO”即可开始下载。

此时程序会弹出一个命令行窗口用于监控下载进程。你可以在这里查看下载速度、下载进度、文件编码信息等。你可以最小化窗口然后离开座位喝杯咖啡,下载无需人工干预,结束后会自动关闭命令行窗口。

值得一提的是,N_m3u8DL-CLI 是支持多个进程同时下载的,因此你可以回到刚刚的图形界面,输入另一个视频的地址和文件名,同时进行多个文件的下载。

结语

至此,IDM 的最后一块短板已经圆满补上,虽然相比 Downie 仍不够完美,但已经是目前(IDM 短期内不会开放 M3U8 下载的情况下)最好的解决方案了。最后也希望大家安全、合法、愉快地下载!

参考文献

  1. https://www.jianshu.com/p/e97f6555a070
  2. https://developer.apple.com/streaming/