猫抓如何用MPD解析下载DASH视频:完整指南
猫抓如何用MPD解析下载DASH视频完整指南【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch猫抓 cat-catch 是一款浏览器资源嗅探扩展其 MPD 解析器可以把 DASH 描述文件MPD解析成质量列表与分段地址再转成 M3U8 走现成的下载通道解决 DASH 视频需手动解析 XML、拼接分段 URL、音画分离下载的问题。痛点与背景看 DASH 视频时开发者工具网络面板里往往不是单个 mp4而是一个 .mpd 文件。你得手动打开 XML找到 SegmentTemplate把$Number$、$Bandwidth$这些占位符自己替换一段段拼出分段地址音轨和视频轨又是两条流各拼各的。手工解析 XML 慢且容易拼错站点还常校验 Referer漏一个请求头就 403。目前没有一个工具把解析 → 选清晰度 → 取分段 → 下载串成一条龙猫抓的 MPD 解析做的就是这件事。项目能力全景资源嗅探弹窗自动识别页面里的 .mpd 请求并标注不用自己去网络面板里翻MPD 一键解析js/mpd.js 调用 mpd-parser 把 XML 转成结构化 JSON列出每条视频流和音轨清晰度下拉每个档位直接显示码率、帧率、分辨率对照着选分段提取选中质量后列出全部分段 URL可一键复制M3U8 转换把选中的 DASH 流转成 M3U8 播放列表交给已有的 m3u8 下载器DRM 检测识别 Widevine / PlayReady / FairPlay 加密展示 pssh 信息并提前告知限制自定义请求头支持设置 Referer 等头部应对带访问限制的资源核心工作链路整条链路按输入 → 处理 → 输出走输入MPD 地址两条来源——弹窗自动嗅探或在 mpd.html 页面手动填入可同时设置 Referer 等请求头。处理拉取 XML 内容交给解析器视频表示落入playlists音轨落入mediaGroups.AUDIO。mpdJson mpdParser.parse(mpdContent, { manifestUri: _url }); // 来源js/mpd.js输出选定质量后点提取切片看分段列表点转换为M3U8则按标准播放列表格式拼装含 init 段map和每段的时长与地址m3u8Content #EXT-X-TARGETDURATION: items.targetDuration \n; for (let key in items.segments) { m3u8Content items.segments[key].resolvedUri \n; } // 来源js/mpd.js拼装好的内容通过标签页消息传给 m3u8.html进入现成的下载流程。实现亮点MPD 转 M3U8复用已有下载生态设计意图DASH 和 HLS 是两套流标准从零写一个 DASH 下载器成本太高。实现方式转换时把 DASH 的 init 段写进#EXT-X-MAP每段时长写入#EXTINF之后 hls.js 就能把它当普通 HLS 流处理。用户收益不用学新工具m3u8 页已有的进度条、下载范围、合并下载功能直接作用于 DASH 资源。DRM 检测独立于主解析流程设计意图加密内容无法直接下载不提前告知用户会白忙一场。实现方式isDRM()单独遍历 XML 中的ContentProtection节点按 UUID 映射出加密类型名。if (schemeIdUri.includes(edef8ba9-79d6-4ace-a3c8-27dcd51d21ed)) { return Widevine; } else if (schemeIdUri.includes(9a04f079-9840-4286-ab92-e65be0885f95)) { return Microsoft PlayReady; } // 来源js/mpd.js用户收益检测到加密时页面直接显示类型和 pssh一眼判断下不了也不影响无加密内容的正常解析。解析页与下载页解耦设计意图mpd.html 只管解析展示下载放在专门的 m3u8.html 页面各司其职。实现方式转换完成后 mpd.html 保存生成内容m3u8.html 打开时用标签 id 取回内容填入解析框并自动触发解析。用户收益点完转换直接落到下载页不用手工复制播放列表。典型场景场景一下载 DASH 课程视频课程站提供 360p 到 1080p 的 DASH 资源。弹窗自动嗅探到 .mpd 请求并标注需解析解析后下拉框显示各档码率与分辨率选 1080p转换 M3U8 后进入下载页选合并下载得到单个 mp4场景二带 Referer 限制的站点分段请求不带正确 Referer 就 403。在解析页 Referer 栏填入站点域名请求头会注入该标签页的所有 xhr解析通过转换后的 M3U8 下载沿用同一套头分段下载不被拦场景三分析码率结构流媒体工程师想看 CDN 的 DASH 布局。质量下拉框直接展示各档带宽kbps、帧率、分辨率分布提取切片后核对分段时长与命名规则信息栏显示分段总数与总时长便于估算文件大小工程细节解析器选型依赖 lib/mpd-parser.min.js把 SegmentTemplate / SegmentList / SegmentBase 三种分段方式统一成同一份分段列表不用自己兼容回退处理跨标签页读取消息失败chrome.runtime.lastError时退回手动输入表单解析流程不中断浏览器兼容Firefox 下跨域 blob 下载路径不同代码经 content-script 取回内容再加载多语言界面页面文案走 i18n 机制随扩展支持中文、日语、西班牙语等 10 种语言避坑 / FAQ解析成功但分段列表为空→ 多半填的是主 manifest只含档位信息换成子 MPD 的地址再解析。分段下载 403→ 基本是 Referer 校验在解析页填入站点域名后重新转换。页面提示 Widevine / PlayReady→ 内容受 DRM 保护无法直接下载pssh 仅用于标识加密类型别指望绕过。音画下成两个文件→ DASH 分离的正常结果下载完可用扩展的发送到 ffmpeg功能合成。只想先看看效果→ 用下载范围只下前几段验证画质确认后再整段下载。结尾猫抓把 MPD 解析、质量选择、分段提取、M3U8 转换串在一条链路上DASH 下载从读 XML 拼 URL变成选质量、点转换、等下载。配合资源嗅探和请求头自定义不带 DRM 的 DASH 资源基本都能直接处理是加密内容它也会提前把结果告诉你。【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考