FluxDown 媒体嗅探 — HLS/DASH 视频流一键抓
为什么浏览器抓不到流媒体
现在的视频网站(B站、YouTube、腾讯视频、爱奇艺等)几乎都用 HLS(.m3u8)或 DASH(.mpd)流媒体——视频被切成几百个小片段,浏览器只是逐个拉片段再拼起来播。浏览器的下载管理器只能看到片段,看不到整体。你想离线保存就得找专门的嗅探工具或命令行。
FluxDown 的浏览器扩展把这个嗅探做进了浏览器本身——你打开一个视频页,扩展自动识别出页面里的所有流媒体清单,一键送入 FluxDown 下载。
嗅探怎么做
扩展监听浏览器的网络请求(Network Observer),识别以下特征:
| 特征 | 识别什么 |
|---|---|
Content-Type = application/vnd.apple.mpegurl | HLS .m3u8 清单 |
URL 以 .m3u8 或 .m3u 结尾 | HLS 清单 |
Content-Type 包含 mpegurl | HLS 清单 |
URL 以 .mpd 结尾 | DASH 清单 |
找到清单后,扩展会:
- 解析清单里的片段列表(不下载片段本身)。
- 识别主清单的多档画质(bitrate / resolution)。
- 识别清单里的
#EXT-X-STREAM-INF标记来区分视频组、音频组、广告组。 - 把所有发现按 tab 分组显示在扩展弹窗里。
按 tab 分组
一个浏览器窗口开了三个 tab(B站视频页 + YouTube 视频页 + 普通文本页),扩展会按 tab 分别列出:
Tab: B站 - 某某视频
├─ 视频流.m3u8 (1080p / 5.2 Mbps)
├─ 音频流.m3u8 (AAC / 320kbps)
└─ 广告流.m3u8 (可以不抓)
Tab: YouTube - 某某视频
├─ DASH video.mp4 (1440p)
└─ DASH audio.m4a (opus 160kbps)
Tab: 普通网页
└─ (无媒体)
每个条目旁边一个发送按钮——点一下就送给 FluxDown。
送给 FluxDown 后
FluxDown 引擎解析清单、弹出画质选择(多档时)、开始并行拉分片、边下边解密(AES-128)、最后合并成一个完整文件——全流程和 HLS/DASH 流媒体 里描述的一样。
权限说明
浏览器扩展需要以下权限(安装时会列出来):
- Read your browsing history — 用于识别当前页是否正在播放媒体。
- Read and change all your data on the websites you visit — 监听网络请求、嗅探清单、读取 Cookie。
- Native Messaging — 与 FluxDown 桌面端通信(Chrome 称 "Connect to native applications")。
FluxDown 不开源的部分(扩展本身)不会存储任何浏览历史,嗅探数据只在当前浏览器会话里存在,送给 FluxDown 后就从扩展内存清掉。