如何下载 M3U8 播放列表文件:分步指南
如果您曾尝试保存通过 M3U8 播放列表播放的视频,您一定体会过这种挫败感:没有明显的"下载"按钮,而您真正想要的文件不是一个整齐的视频——而是一个指向几十(或几百)个微小视频块的播放列表。
目录
什么是 M3U8 播放列表文件?
M3U8 播放列表文件是一个纯文本索引。它不包含视频本身,而是按播放顺序列出构成流的媒体分片(通常是 .ts 或 .m4s 文件)。可以把它看作视频的目录,而不是视频这本书。
当人们说"下载 M3U8 文件"时,实际上有两种含义:
- 保存 .m3u8 文本文件本身(简单,但单独看没有用)。
- 保存播放列表描述的实际视频——这意味着抓取所有分片文件并合并为一个可播放的文件,如 MP4。
在哪里找到 M3U8 URL
在下载任何内容之前,您需要播放列表 URL。以下是从几乎任何网站抓取它的最快方法:
- 1打开正在播放视频的页面。
- 2按 F12(或右键点击 → 检查)打开开发者工具。
- 3进入网络(Network)标签页并重新加载页面。
- 4在筛选框中输入 m3u8。
- 5查找以 .m3u8 结尾的请求,右键点击它,选择复制 → 复制 URL。
Tip: 提示:如果您看到多个 .m3u8,分片最多的那个(通常是"媒体播放列表")通常就是您想要的。"主播放列表"列出质量变体并指向媒体播放列表。
下载 M3U8 文件如何工作
在底层,下载 M3U8 流是一个三步过程:
- 1读取播放列表以找到每个分片 URL。
- 2下载每个分片文件(.ts 或 .m4s 块)。
- 3将分片合并为一个连续的视频文件(通常是 MP4)。
Tip: 有些流是加密的(AES-128),需要密钥才能解码。另一些是签名或快速过期的,这就是下载可能此刻成功下一刻失败的原因。
如何下载 TS 分片
拿到播放列表 URL 后,下一步是拉取所有分片文件。您可以手动用脚本完成,也可以让工具代为处理。需要注意的关键点:
- 分片通常按顺序命名(segment-001.ts、segment-002.ts …),这使得批量下载非常简单。
- 某些服务器要求与原始页面相同的 cookies、Referer 或 User-Agent,否则会拒绝请求。
- 如果某个分片缺失或返回错误,最终视频在该处可能会有瑕疵。
如何将 TS 分片合并为 MP4
单独的 TS 分片本身并不是方便的视频文件。要得到可观看和分享的内容,您需要将它们合并为单个 MP4。总体思路:
- 按播放列表顺序拼接分片。
- 将合并的流重新打包为 MP4 容器。
- 保留原始编解码器,以免在合并过程中损失质量。
Tip: 好的合并工具会保留现有的 H.264/H.265 视频和 AAC 音频,简单地将它们封装为 MP4——无需重新编码,无损画质。
修复下载时的 CORS 错误
CORS(跨源资源共享)是您会遇到的最常见障碍。视频服务器告诉浏览器"只有这个网站可以加载我的文件",因此从不同源直接下载会被阻止。
- 使用通过自身服务器或 Cloudflare Worker 代理请求的下载器。
- 在请求中带上原始页面的 Referer 和 User-Agent 请求头。
- 如果源严格阻止跨站访问,尝试不同的流或来源。
Tip: 这正是带有内置"加速"代理的工具存在的原因——它们在服务器端抓取分片(CORS 不适用),然后将合并后的文件交还给您。
方法 1:使用浏览器扩展
对于临时下载,最简单的方法是使用浏览器扩展来检测您正在观看页面上的 M3U8 流。
- 安装一个能捕获 HLS/M3U8 流的扩展。
- 打开视频页面,让扩展检测播放列表。
- 点击下载并选择输出格式(通常是 MP4)。
Tip: 扩展很方便但有局限:它们依赖页面允许请求,且可能无法处理加密或受保护的流。
方法 2:手动下载(FFmpeg / curl)
如果您熟悉终端,命令行工具能给您最大的控制权。FFmpeg 可以直接读取 M3U8 播放列表并输出合并后的文件:
ffmpeg -i "https://example.com/path/playlist.m3u8" -c copy output.mp4
Tip: 将 URL 替换为您的播放列表。如果源需要 Referer 或 User-Agent,请用 -headers 添加请求头。如果只想抓取分片,curl 可以循环抓取每个 .ts 文件。
方法 3:使用在线 M3U8 下载器
最友好的选择是使用在线 M3U8 下载器,它为您完成抓取、合并和转换——就在浏览器中,无需安装。
- 将 M3U8 URL 粘贴到下载器中。
- 可选启用代理以绕过 CORS 和防盗链保护。
- 选择 MP4 作为输出格式并开始下载。
- 将合并后的视频保存到您的设备。
Tip: 我们的免费 M3U8 下载器就是这样工作的:粘贴 URL,必要时打开加速开关,然后将结果下载为 MP4。
安全下载的最佳实践
一些习惯能让您的下载既可靠又得体:
- 仅下载您拥有或有权限保存的内容。
- 保留原始编解码器(复制模式)以避免质量损失。
- 当源阻止跨站请求时,使用代理或正确的请求头。
- 尽快行动——许多签名或临时 URL 会在几分钟内过期。
- 删除源分片前,先确认合并后的文件可以正常播放。
常见的 M3U8 下载问题
当下载失败时,几乎总是以下原因之一:
- CORS 被阻止——使用代理或正确的 Referer/User-Agent。
- URL 过期或已签名——获取新的播放列表 URL。
- 分片加密——您需要解密密钥。
- 需要认证——提供 cookies 或令牌。
- 分片缺失——源移除了某些块;尝试另一个流。