原创

下载 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 或者别的安全软件拦截,请一律允许)

解压缩

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

高级系统设置

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

环境变量

5. 在”用户变量”区域选择 PATH 条目。它位于环境变量窗口中的第一个框架内。点击编辑按钮。

  • 点击 “新建”,然后输入;c:\Huangxin_FFmpeg\bin
  • 点击确认保存更改。如果在这个窗口输入的内容有误,那么有可能会造成Windows无法正常启动。
  • 如果在”用户变量”设置下没有PATH条目,点击新建按钮创建。在变量名栏输入PATH,再进行上两步的操作。
添加系统变量

6. 确认已经保存以后,打开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 格式。

视频下载完成

效果如下:

播放视频

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用FFmpeg下载m3u8格式视频

    最近在看电视剧《百岁之好,一言为定》,昨天看到了24集,后面的4集只有超前点播才能看了!我还不想等着。作为一个程序员,必然会找资源、下载资源。哈哈!

    小白程序猿
  • TSINGSEE青犀视频Easy系列视频平台是如何输出HLS流的?HLS协议详解

    关于Easy系列的视频平台都可以输出几种不同的视频流,其中包括FLV、HLS。本文我们来讲一下Easy系列视频平台输出的HLS协议视频流。

    EasyNVR
  • 如何下载完整的HLS流视频

    需要从某网页下载一个视频文件,查看之后发现视频文件是用HLS视频流的,HLS全称Http Live Streaming,是由Apple公司定义的用于实时流传输的...

    李俊鹏
  • 多媒体文件格式剖析:M3U8篇

    M3U8,用 UTF-8 编码。"M3U" 和 "M3U8" 文件都是苹果公司使用的 HTTP Live Streaming(HLS) 协议格式的基础;是 Un...

    马上就说
  • 如何下载优酷 m3u8 格式的视频文件?

    平常最熟悉的视频文件格式就是mp4了,比如这个微博视频就是mp4格式https://weibo.com/tv/v/I6NlI3XNO?fid=1034:4416...

    苏生不惑
  • HTML5点播m3u8(hls)格式视频

    这两年来我们发现越来越多的视频应用使用了m3u8格式的视频,因为可以兼容PC、移动端。相比mp4等视频源,m3u8可以减轻服务器压力(按需加载)。HLS是由苹果...

    kirin
  • 浅析 HLS 流媒体协议

    在最近工作中接触到了视频点播和直播业务,也了解到了一些流媒体的后端技术,这段时间希望将了解到的一些知识总结下来,这篇文章主要介绍 HLS 流媒体协议 的基础知识...

    高楼Zee
  • Nginx+FFmpeg打造自己的视频直播服务

    现在很多项目都有视频实时播放的功能需求,例如监控,直播等,原始的摄像头采集的视频流协议一般都是 rtsp 协议,在旧版的浏览器中使用

    ruochen
  • python爬取视频网站m3u8视频,下

    最近发现一些网站,可以解析各大视频网站的vip。仔细想了想,这也算是爬虫呀,爬的是视频数据。

    py3study
  • 关于h5直播源码的技术扫盲

    到目前,h5似乎已经成为品牌宣传最重要的表现方式。h5技术开发简单,研发周期短,且成本低廉。尤其强化了web网页的表现性能,通过h5技术搭建的直播系统不仅能够在...

    云豹通讯员
  • vue使用video.js解决m3u8视频播放格式

    今天被这个关于m3u8视频播放不了搞了一下午,这个项目所有的视频流都是m3u8格式的,后台给我们返回的都是m3u8格式的视频流,解决了好长时间,看了好多博客,只...

    小周sri的码农
  • 多线程视频批量下载

    前一阵子我的一个好哥们小海知道我转行学了计算机,想要我帮忙下载某个网站的视频(因其只能在线观看,而且播放不够流畅~),本着男人不能说不行的原则,于是便有了本文...

    老肥码码码
  • 爬虫爬取m3u8视频文件

    小小咸鱼YwY
  • Nginx零成本、易操作实现网站视频加速

    最近有朋友做了个网站,网站上面放了几个视频,觉得视频播放慢、卡顿,想让我帮忙优化下,今天就介绍个零成本,操作又简单的方法优化网站上视频播放速度

    李俊鹏
  • 腾讯课堂点播上云客户端实践总结

    点播业务目前用的是 HLS 协议。HLS协议全称是 HTTP Live Streaming,它是一个由苹果提出的基于HTTP的流媒体网络传输协议。HLS协议规定...

    腾小云
  • 【腾讯课堂】视频点播上云实践

    腾讯课堂是一款通过线上的直播与点播向用户提供在线教育服务的产品,从 2014 年成立至今,已累计存储了 250 万个视频,共 600 TB,累计时长 150 万...

    IMWeb前端团队
  • 头条都在用的边下边播功能

    头条官方文档中对自己播放器的特色功能有这几点介绍,其中专门提到了“边下边播”的功能,边下边播的核心目的是:播放器提供视频播放时下载视频的选项,这样重复播放视频时...

    马上就说
  • RTSP 媒体协议流的录制方案及其覆盖策略详解(上)

    【自我介绍】大家好,我是 Data-Mining,别名 liuzhen007,中国邦德,一个敲代码的邦德,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音...

    liuzhen007
  • 头条都在用的边下边播方案

    头条官方文档中对自己播放器的特色功能有这几点介绍,其中专门提到了“边下边播”的功能,边下边播的核心目的是:播放器提供视频播放时下载视频的选项,这样重复播放视频时...

    马上就说

扫码关注云+社区

领取腾讯云代金券