下载 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 删除。

发表于

我来说两句

2 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

Win10 UWP应用发布流程

简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变。 这篇博文记录了我们发布一款...

2165
来自专栏BY的专栏

利用 GitHub Pages 快速搭建个人博客前言快速开始写文章自定义域名进阶利用GithHub Desktop管理GitHub仓库修改个人介绍常见问题其他Star补充最后要说个事情

41410
来自专栏电光石火

SharpDevelop---精简的C#开发工具

一般试用C#语言来做开发,都会装个微软的virtual studio;但是作为业余爱好,想玩玩C#开发,但又不想装那么庞大的软件,那么就有这么一款精简(才十几...

19110
来自专栏前端知识分享

第211天:git和github的区别和使用详解

它是一个源代码管理工具,在一个项目中,凡是由开发人员编写的都算是源代码,源代码有必要管理起来,让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化。人为的...

1003
来自专栏bluesummer

打包dll发布到nuget服务器

1595
来自专栏FreeBuf

如何对iOS App进行打补丁和重新签名

有没有想过在非越狱设备上运行修改后的iOS二进制文件?比如,你可以使用该技术插装app,以进行动态分析。又或者你需要进行GPS欺骗,从而可以在锁区玩Pokemo...

2258
来自专栏杨建荣的学习笔记

在eclipse中配置MySQL源码环境(r12笔记第14天)

今天费了些周折,总算搭建好了MySQL源码的调试环境,主要的目的就是想在看代码的时候有一些头绪,让这些开发技巧派上用场。不至于盲人摸象一般的拿着命令肉眼扫...

3666
来自专栏丑胖侠

Intellj IDEA 设置默认maven版本

问题 最近更新到新版本Intellij idea,发现maven的版本配置总是出现问题。idea默认带有两个版本的maven,再加上自己配置的maven版本,总...

18610
来自专栏雪胖纸的玩蛇日常

django 发送手机验证码

2893
来自专栏BIT泽清

【iOS 开发】教你利用企业级开发者把你无法上架到App Store的北京赛车app

【iOS 开发】教你利用企业级开发者把你无法上架到App Store的北京赛车app

3449

扫码关注云+社区