news 2026/9/6 16:27:29

猫抓如何用MPD解析下载DASH视频:完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
猫抓如何用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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 16:24:56

英语打字比中文还慢?这款免费键盘输入训练工具值得试试

英语打字比中文还慢?这款免费键盘输入训练工具值得试试 【免费下载链接】qwerty-learner 为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers 项目地址: https://gi…

作者头像 李华
网站建设 2026/9/6 16:24:08

电梯控制流程图全解读:状态机模型、调度算法与PLC实现

简介:这是一份面向电气自动化、楼宇智能化及电梯控制教学场景的PDF文档,系统讲解电梯控制流程图的核心知识点。内容涵盖电梯上下行流程、外呼响应流程、开关门控制流程三大模块,并给出最远反向呼梯响应、平层开关门延时等关键逻辑说明&#x…

作者头像 李华
网站建设 2026/9/6 16:23:18

通达信分时操盘实战:涨幅、大趋势、资金流与逃顶信号详解

简介:面向通达信软件使用者与股票技术分析爱好者,这份资料是一套分时操盘手指标公式源码文档,聚焦涨幅监控、大趋势判断、资金流观察与逃顶信号识别,适合有一定看盘基础、希望自定义技术指标的投资者参考。包内仅有 1 个 doc 文档…

作者头像 李华
网站建设 2026/9/6 16:22:56

从Vibe Coding到Agentic Coding:AI编程范式进化与超级个体崛起

简介:在AI编程领域,从辅助生成代码到自主执行工程任务,正在经历一场深刻的范式变革。Vibe Coding强调开发者用自然语言描述意图,让大模型生成代码,而Agentic Coding则更进一步,赋予AI智能体规划、执行、验证…

作者头像 李华
网站建设 2026/9/6 16:21:41

Cap 怎么用:免费开源的桌面录屏工具上手说明

Cap 怎么用:免费开源的桌面录屏工具上手说明 【免费下载链接】Cap Open source Loom alternative. Beautiful, shareable screen recordings. 项目地址: https://gitcode.com/GitHub_Trending/cap1/Cap Cap 是一款免费开源的桌面录屏工具,定位是 …

作者头像 李华
网站建设 2026/9/6 16:14:41

自顶向下设计方法实战:以3D打印机骨架模型驱动设计变更

简介:这是一份面向三维数字化产品设计学习者的ProE/Creo案例课件,围绕Top-down自顶向下设计方法展开。案例以产品外壳建模为主线,完整呈现主模型(骨架模型)绘制、边界混合曲面与镜像曲面、曲面加厚与分割、前/后/下盖拆…

作者头像 李华