iPhone 怎么下载流媒体视频(HLS、m3u8、blob)
想在 iPhone 上下载流媒体视频,你需要一款能读取视频流、并把它重新合成一个文件的浏览器。Safari 做不到:大多数网站会把视频切成数百个小片段,用一个 .m3u8播放列表(HLS)列出来,或者通过 blob: 地址播放,所以根本没有一个完整的文件可以下载。像 Kipzy 这样能保存视频的浏览器会在视频播放时找到视频流,下载各个片段,并在你的手机上把它们合并成一个 MP4。受保护(DRM)的视频和直播,任何浏览器都无法保存。
本指南会告诉你怎么分辨流媒体视频和普通视频文件,怎么保存嵌入视频、HLS 视频和 blob 视频,以及网站不提供下载时该怎么办。如果视频有普通的下载链接,可以看看iPhone 怎么下载视频,里面介绍了 Safari 的“下载链接文件”以及文件保存在哪里。
怎么判断视频是不是流媒体
iPhone 上打不开开发者工具,但有几个迹象可以帮你判断:
- 没有“下载链接文件”。按住视频或它的链接。如果菜单里没有下载链接文件,说明它背后没有可下载的文件。
- 播放时清晰度会变化。刚开始模糊、几秒后变清晰,这就是自适应流媒体在起作用。
- 播放器有清晰度菜单,提供“自动”、480p、1080p 等选项。
- 视频嵌在另一个播放器里。新闻网站、课程页面和博客里的嵌入视频通常来自单独的视频托管平台,几乎都是流媒体。
只要符合其中任何一条,Safari 的下载选项就帮不上忙,下面的方法才管用。
为什么 Safari 无法下载流媒体视频
流媒体并不是网站用来阻止你下载的手段,而是现代网页播放视频的标准方式:
- HLS 和 .m3u8 播放列表。HLS(HTTP Live Streaming)会把视频切成很短的片段,每段通常只有几秒,并提供多种清晰度。一个以 .m3u8 结尾的播放列表文件会列出这些片段,播放器再逐个获取。只保存播放列表,你得到的只是一个很小的文本文件,而不是视频。
- blob: 地址。有些播放器会用 JavaScript 下载片段,再通过一个以 blob: 开头的地址交给视频元素播放。这个地址只存在于当前打开的页面中,所以复制它或在新标签页中打开都看不到任何内容。
- 嵌入式播放器。从其他网站嵌入的视频位于独立的框架中,所以长按它只会碰到播放器,而不是视频本身。
这三种情况下,视频仍然由普通的片段组成,而你的手机为了播放它本来就在下载这些片段。只要有工具能盯住播放列表,就能获取同样的片段,再把它们拼回一个完整的视频。
方法 1:用 Kipzy 保存视频流
Kipzy 是一款内置视频保存功能的免费 iPhone 浏览器。页面加载 HLS 播放列表和视频文件时它就能察觉到,包括嵌入式播放器中和 blob: 地址背后的视频,并显示存储视频按钮。
- 把网页地址粘贴到 Kipzy 的地址栏中打开。如果你把 Kipzy 设为默认浏览器,在其他 App 中点按的链接都会直接在 Kipzy 中打开。
- 先播放视频几秒钟。很多播放器只有在开始播放后才会加载视频流。
- 点按存储视频。
- 选择视频和清晰度。Kipzy 会读取视频流提供的清晰度,并在下载前显示文件大小。
- 点按下载。
Kipzy 会在后台下载各个片段,把它们合并后保存成一个 MP4 文件。下载完成的视频会出现在 Kipzy 的“下载项”页面,可以离线播放。要把视频存到“照片”或“文件”,点按它的“共享”按钮,选择存储视频或存储到“文件”。
保存面板里列出了多个视频怎么办
一个页面经常会播放不止一个视频流:正片前的广告、鼠标悬停时的预览,或者页面下方的其他短片。Kipzy 会为每个视频单独列出一项,并显示缩略图和时长,选择和你看过的视频相符的那一项即可。很短的片段通常是广告或预览。
没有出现“存储视频”按钮怎么办
- 播放视频,并等片头广告播完。真正的视频流往往在广告结束后才加载。
- 刷新页面后再播放一次。Kipzy 只能识别页面在打开期间加载的视频流。
- 打开视频自己的页面。如果视频嵌入自某个视频托管平台,点按播放器中该平台的标志或标题,通常就能打开视频页面,在那里视频流往往加载得更稳定。
- 看看这个网站是否属于 Kipzy 不支持保存的网站,下一节有列表。
哪些流媒体视频无法保存
有些视频始终无法保存,Kipzy 会直接告诉你原因,而不是下载一个损坏的文件:
- 受保护(DRM)的视频。Netflix、Disney+、Prime Video 等付费流媒体服务会对视频加密,只能在经过授权的播放器中播放。Kipzy 会显示“受保护的视频,无法存储”。请改用该服务自带的下载按钮。
- 直播。还在进行中的直播没有结尾,无法保存。请等直播结束、回放发布后再保存。
- DASH 视频流。有些播放器使用 DASH(播放列表以 .mpd 结尾)而不是 HLS。Kipzy 能保存 HLS 和普通视频文件,但不支持 DASH。
- 主流社交和视频平台。Kipzy 不支持在 YouTube、TikTok、Instagram、Facebook、X、Vimeo、Twitch、Reddit 等网站上保存视频。这些平台的 App 有自己的离线功能,详见iPhone 怎么保存视频离线观看。
请只保存你有权保留的视频,比如你自己上传的视频、允许下载的课程视频或采用开放许可的素材,并遵守各网站的条款。
方法 2:录屏
如果视频流无法保存,而你又有权保留一份副本,可以用 iOS 的录屏作为备选方案。打开控制中心,点按“屏幕录制”,然后全屏播放视频。录制的内容会保存到“照片”中。
录屏是实时录制的,画质通常比原视频差,受保护的视频录下来是黑屏。开始前请先开启专注模式,以免通知被录进视频。完整步骤请看我们的iPhone 下载视频指南。
m3u8 下载器 App 和网站好用吗?
在线 HLS 和 m3u8 下载器需要你粘贴 .m3u8 播放列表的地址。这在 iPhone 上很难做到:没有开发者工具,你看不到页面发出的请求,也就根本找不到播放列表的地址。而且这类网站很多都充斥着广告和弹窗。
播放列表地址还经常会过期。网站通常会在链接里加一个有效期很短的令牌,现在复制的地址可能几分钟后就失效了。直接在打开的页面中保存视频流的浏览器可以同时避开这两个问题,因为它用的是和播放器一样的最新地址。如果 Kipzy 的下载因为“链接已过期”而停止,重新打开页面再开始下载即可。
在电脑上找到了视频?
如果你在电脑上看视频,又想把它存到 iPhone 上,可以用 Kipzy Chrome 扩展程序。当页面中有视频时,它的将此视频存储到 iPhone按钮会显示一个二维码。用 iPhone 相机扫描后,页面会在 Kipzy 中打开,随时可以保存。其他方法请看如何把网页从电脑发送到 iPhone。
Kipzy:哪些免费,哪些需要 Pro
Kipzy 无需注册账号。免费版包括浏览器、标签页、无痕标签页、广告与弹窗拦截,以及每天 2 次视频下载,还可以观看一段短广告来额外解锁一次,每天可解锁几次。Kipzy Pro 取消每日限制,以视频流提供的最佳画质保存,还增加了一个用 Face ID 锁定的私密视频文件夹。广告拦截在视频页面上也很有用,因为这类页面往往是网上广告最多的页面,详见iPhone 怎么屏蔽广告。
常见问题
不装 App 能在 iPhone 上下载流媒体视频吗?
无法下载成文件。Safari 和“文件”App 只能下载有直接链接的视频。不借助其他 App 的话,只能用录屏,而录屏是实时录制的,画质也更低。
iPhone 怎么下载 m3u8 视频?
在支持 HLS 的浏览器(比如 Kipzy)中打开播放该视频的页面,播放视频,然后点按“存储视频”。浏览器会下载 .m3u8 播放列表中列出的每个片段,并合并成一个 MP4。直接下载 .m3u8 文件只会得到播放列表,而不是视频。
iPhone 怎么下载 blob 视频?
blob: 地址本身无法下载,因为它只存在于页面内部。你需要保存的是播放器正在读取的视频流。大多数 blob: 播放器都基于 HLS,视频播放时 Kipzy 就能捕捉到这个视频流。如果播放器使用 DASH 或 DRM,则无法保存。
iPhone 怎么下载网页中的嵌入视频?
在 Kipzy 中打开页面并播放嵌入的视频。Kipzy 不仅会检查页面本身,也会检查页面中的框架,所以从其他平台嵌入的视频也会出现在“存储视频”面板中,除非它们来自 Kipzy 不支持保存的平台。
保存一个流媒体视频需要多长时间?
通常比视频本身的时长短得多,具体取决于你的网速和所选的清晰度。一段 10 分钟的 720p 视频通常在 100 到 300 MB 之间。下载会在后台继续进行,Kipzy 的仅通过 Wi-Fi 下载开关可以避免消耗移动数据流量。
下载流媒体视频合法吗?
这取决于视频本身、网站条款以及你所在的地区。你自己的视频、网站允许下载的视频以及采用开放许可的素材,一般都没有问题。不要保存或分享你无权使用的视频。