使用 FFmpeg 下载 m3u8 视频流

简介

M3U是一种播放多媒体列表的文件格式,它的设计初衷是为了播放音频文件,比如MP3,但是越来越多的软件现在用来播放视频文件列表,M3U也可以指定在线流媒体音频源。很多播放器和软件都支持M3U文件格式。M3U8是Unicode版本的M3U,用UTF-8编码。"M3U"和"M3U8"文件都是苹果公司使用的HTTP Live Streaming格式的基础,这种格式可以在iPhone和Macbook等设备播放。

到现在,非常多的视频网站都是利用 m3u8 格式的特性,把一段视频分成多段,进而增加各类软件下载网页上视频的难度。

在最近,在【维棠软件用户交流群】内,许多人反馈无法使用软件下载 iguxuan(爱股轩) 这个网站上的视频。而这个网站甚至对在线播放的音频使用了加密格式,让一般的浏览器抓包根本无法获取视频文件。

经过 @a'ゞ手机配件、下载视频 大佬的提醒,我们可以使用另外一种思路来下载 iguxuan 上的视频。即:抓取视频的 m3u8 地址,然后下载这个 m3u8 里面隐藏着的视频。

这篇文章特别针对 iguxuan 而写,但是同时使用其他使用 m3u8 格式的视频网站(只要你能抓到 m3u8 的地址)。

抓取 m3u8 地址

准备工作

在开始以前,请确认你所使用的系统为稳定的、适合生产环境使用的系统。推荐使用 Windows 10 / 7 64位 系统,Google Chrome 浏览器。

Chrome 浏览器可以通过 HXCO Get 下载最新版本:https://get.js.org/chrome 。安装文件将从 dl.google.com 北京服务器加载,理论上中国大陆的访客都可以正常下载;如果万一不可以(即你点开上面的网址以后没有开始下载安装包),请使用 新浪软件中心 的下载点:点击下载 。如果你是 32 位系统,请下载 32 位版本:点击下载。如果你是 macOS 系统用户,请你直接访问 https://get.js.org/chrome 下载即可。

下载的是离线安装包,下载完毕直接双击,稍等几秒便可完成安装,自动打开 Google Chrome。

如何抓取

经过几次试验,抓取 iguxuan 的 m3u8 需要达成以下条件:

  1. 使用手机访问
  2. 登陆网站

那么首先你需要去注册一个账户。我目前已经注册了一个。

这网站不知道为什么貌似换了东家,不过不用管,一样下载

然后我们通过 首页推荐 / 搜索 等方式找到想要下载的网页,点击地址栏全选网址,快捷键 Ctrl + C 复制到剪贴板。

这网站不知道为什么貌似换了东家,地址变得比较奇怪,不过不影响我们的下载。

点击地址栏全选网址

然后我们点击浏览器标签页旁边的小方块,新建一个标签页。

新建一个标签页

在新标签页的任意空白处右键,点击菜单最下面的 “检查” 或者 “审查元素”。这里显示不一样是因为我的系统语言是英语。

审查元素

点击以后会弹出来一个操作面板,是全英文的,不过不用慌,一步一步来:先点击上面的 “Network” 标签,再点击 左边的 “手机” 标签。

操作步骤

以上步骤操作完了以后,浏览器就会模拟出一个手机屏幕的样子,箭头所指的地方可以切换设备(非必要)。

Chrome 模拟手机浏览

然后我们在地址栏里面复制进视频地址,按 回车键。等网站的手机版加载完毕以后,点击下方的登陆 进行登陆操作。注意,如果你在正常的电脑版网页里登陆过,你还是需要在手机版里面重新登陆一次。

进行登陆操作

登陆完毕。会重定向回视频页面。

登陆完毕

先在 Network 标签 下方的 Filter(过滤)框框里面输入m3u8

然后点击播放视频(不知道为什么这里他提示我无法播放),可以看到网页已经加载了两个一模一样的 m3u8 文件。

播放视频

在 m3u8 文件上方右键,"Copy",“Copy link address”,这样,我们就成功获取了这个视频的 m3u8 地址。

成功获取了这个视频的 m3u8 地址

这是我抓出来的:

http://hls.videocc.net/05714ecace/b/05714ecace60df265fe0f0f4df60d9fb_1.m3u8?pid=1529352573724X1532482

下载 m3u8

准备工作

简介

我决定使用 FFmpeg 下载 m3u8 视频流,因为这是最为可靠的方式。

FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能[2],包含了libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。

FFmpeg 完全开源免费,并且使用方便,支持多个系统。

macOS 安装

如果你在使用 macOS,安装 FFmpeg 的最简单方式是使用 Homebrew 安装。在 “终端” 里面输入以下命令安装 Homebrew。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装完毕以后,使用以下命令安装 FFmpeg。

brew install ffmpeg

Windows 安装

如果你在使用 Windows,推荐使用我为你准备好的安装方式:

  1. 通过 Onedrive For Business 下载 Huangxin_FFmpeg.exe

  2. 请双击打开 [Huangxin_FFmpeg.exe],然后将解压路径修改成 c:/  然后点击 “Extract”解压缩。(可能需要管理员权限,请允许;也有可能被 Windows Smart Screen 或者别的安全软件拦截,请一律允许)

解压缩

  1. 以Windows10为例,点击小娜,搜索 “高级系统设置”。然后点击。

高级系统设置

  1. 然后请在弹出的窗口最下方找到 “环境变量”,点击进入。

环境变量

  1. 在”用户变量”区域选择 PATH 条目。它位于环境变量窗口中的第一个框架内。点击编辑按钮。
  • 点击 “新建”,然后输入;c:\Huangxin_FFmpeg\bin
  • 点击确认保存更改。如果在这个窗口输入的内容有误,那么有可能会造成Windows无法正常启动。
  • 如果在”用户变量”设置下没有PATH条目,点击新建按钮创建。在变量名栏输入PATH,再进行上两步的操作。

添加系统变量

  1. 确认已经保存以后,打开cmd,(win+r 输入cmd然后回车),输入 ffmpeg –version 。如果出现版本信息,则安装成功。

安装成功

使用方式

通用命令如下:

ffmpeg -i 视频地址.url "文件名.mp4"

我们刚刚抓出来的视频地址如下:

http://hls.videocc.net/05714ecace/b/05714ecace60df265fe0f0f4df60d9fb_1.m3u8?pid=1529352573724X1532482

那么完整的命令就是:

ffmpeg -i http://hls.videocc.net/05714ecace/b/05714ecace60df265fe0f0f4df60d9fb_1.m3u8?pid=1529352573724X1532482 "文件名.mp4"

先别急,想好你要放视频的位置 - 比如我们在桌面新建一个叫 iguxuan 的文件夹

新建一个叫 iguxuan 的文件夹

然后双击进入文件夹,在顶部地址栏单击,全选地址,Ctrl + C 复制到剪贴板。

复制到剪贴板

然后我们回到黑糊糊的 CMD 命令提示符 窗口(Win + r,输入 cmd,回车),输入以下命令:

cd C:\Users\imhx\Desktop\iguxuan

注意,C:\Users\imhx\Desktop\iguxuan 是我选择的文件夹路径,请输入你自己的路径。效果如下:

CMD CD 命令

这样我们就在命令行里面进入了我们刚刚的文件夹。接下来我们输入刚刚的命令:

ffmpeg -i http://hls.videocc.net/05714ecace/b/05714ecace60df265fe0f0f4df60d9fb_1.m3u8?pid=1529352573724X1532482 "爱股轩视频01.mp4"

然后按回车,程序就会自动开始下载。视频下载速度取决于你的网络环境。

下载视频中

片刻以后,视频自动下载完成,并且转换为了 .mp4 格式。

视频下载完成

效果如下:

播放视频

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据