使用 Wget 和 Curl 下载 M3U8
6 min read
为什么用 Wget 或 Curl?
Wget 和 curl 是通用 HTTP 客户端。对 M3U8,它们适合检查播放列表、下载原始片段或脚本探测。它们不会把片段合并成可播放 MP4——合并请用 FFmpeg 或我们的在线下载器。
下载播放列表文件
# wget wget "https://example.com/stream.m3u8" # curl curl -L -O "https://example.com/stream.m3u8"
用文本编辑器打开以查看标签和片段 URL。阅读指南:把 M3U8 当文本读。
下载所有片段
wget "https://example.com/stream.m3u8"
grep -v "^#" stream.m3u8 | grep -v "^$" | while read url; do
case "$url" in
http*) wget "$url" ;;
*) wget "https://example.com/$url" ;;
esac
done然后用 FFmpeg concat 合并。相关:用 FFmpeg 合并 TS。
Curl + FFmpeg 组合
# 检查是否可访问 curl -I "https://example.com/stream.m3u8" # 完整下载 + 合并 ffmpeg -i "https://example.com/stream.m3u8" -c copy output.mp4
实用流程:curl 探测,FFmpeg 真正下载。
局限
- 没有自适应画质选择逻辑。
- 没有像 FFmpeg 那样的自动 AES 处理。
- 容易搞错相对 URL 基路径。
- 直播边缘跟踪弱于播放器/下载器。
常见问题解答
wget 能单独下完整 HLS 视频吗?
能抓文件,但本身产不出干净合并的 MP4。
该用 curl 还是 FFmpeg?
检查用 curl;完整下载/合并用 FFmpeg。
怎么只下载播放列表?curl -L -O url.m3u8
有不用命令行的选项吗?
有——我们的浏览器下载器。