news 2026/9/6 22:42:30

一条MPD地址到完整视频:cat-catch的DASH解析下载实操指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一条MPD地址到完整视频:cat-catch的DASH解析下载实操指南

一条MPD地址到完整视频:cat-catch的DASH解析下载实操指南

【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch

cat-catch(猫抓)是一个浏览器资源嗅探扩展,能把DASH/MPD流解析成可直接下载的MP4。打开一个播放DASH视频的页面,点一下工具栏的猫图标,弹窗里列出当前页的资源;选中一条MPD地址,质量列表、分段列表和下载按钮就都摆好了。

🆚 手动提取MPD vs 用cat-catch一键解析

没有扩展时,流程是:打开开发者工具,在Network面板里筛出.mpd请求,把地址复制出来;再下载这份XML,对着SegmentTemplate里的$Number$占位符手算分段URL;最后还得自己写脚本循环下载几十上百个切片。

用cat-catch时:嗅探列表里出现MPD资源,点它的解析按钮,新标签页里选一下质量,点"转为M3U8",下载页自动打开,剩下的是点"合并下载"。

⚙️ MPD解析走读:从XHR嗅探到切片下载

跟着一条请求的旅程走一遍。

嗅探:内容脚本扫描XHR响应

内容脚本catch-script/search.js挂到每个页面的XHR和fetch上,响应文本会被扫描媒体特征。命中MPD的规则有两条:URL以.mpd结尾,或响应里带urn:mpeg:dash:schema:mpd声明。

if (ext == 'mpd') { let url = URL.createObjectURL(new Blob([new TextEncoder("utf-8").encode(text)])); postData({ action: "catCatchAddMedia", url: url, href: location.href, ext: ext }); return; }

作用:MPD文本未必有可公开访问的地址,所以把整份内容打成本地blob地址交给后台,保证来源在哪都能解析。

MPD相当于一份目录:它列出每个TS分段的地址和时长,本身不含视频内容。

解析:XML变成质量下拉框

点开弹窗里的MPD资源会打开mpd.html?url=…js/mpd.js先fetch到MPD文本,再交给lib/mpd-parser.min.js(来自videojs/mpd-parser)的mpdParser.parse转成结构化JSON:视频轨放进playlists,每条带码率、帧率、分辨率;音轨按语言组放进mediaGroups.AUDIO。解析页把这两个下拉框渲染出来。

渲染前还有一步DRM检查:isDRM扫MPD里的ContentProtection节点,按schemeIdUri匹配出Widevine、PlayReady、FairPlay,命中就在页面上直接展示pssh并提示这是加密流。

下载:M3U8接棒

M3U8是cat-catch下载流水线的通用语言——线程、密钥解密、mp4重封装全都建在它上面。点"转为M3U8"时,选中质量的分段被拼成一份标准播放列表:

m3u8Content += '#EXT-X-MAP:URI="' + items.segments[0].map.resolvedUri + '"\n'; for (let key in items.segments) { m3u8Content += "#EXTINF:" + items.segments[key].duration + ",\n" m3u8Content += items.segments[key].resolvedUri + "\n"; } m3u8Content += "#EXT-X-ENDLIST";

作用:先写初始化分段MAP,再逐条列出每个分段的时长和地址,把DASH目录变成m3u8解析器能读的播放列表。

随后打开m3u8.html?getMpdId=<当前标签ID>js/m3u8.js识别到这个参数:

if (_getMpdId) { chrome.tabs.sendMessage(_getMpdId, "getM3u8", function (result) { $("#m3u8Text").val(result.m3u8Content); $("#parse").click(); $("#info").html(result.mediaInfo); }); }

作用:向MPD解析标签发消息取回播放列表,填进输入框并自动触发解析,完成MPD到M3U8的交接。

之后hls.js载入源,页面显示分段列表、总时长和估算大小,默认32线程"合并下载"把切片拼成一个MP4。

🎬 一个场景从头走到尾:下载一条10分钟的DASH流

打开嗅探列表

打开视频页面,让视频播放一次以触发资源加载。点工具栏猫图标:弹窗列表里勾着4条MP4,从14.1MB到125.2MB;下方详情区显示标题、MIME、时长00:28、分辨率1280x720、直连URL,还有一段可播放的预览。

选质量并转为M3U8

点资源行上的解析按钮,MPD资源打开MPD解析页:视频下拉框里每条质量都标着名称、码率(kbps)、帧率和分辨率,音频下拉框按语言列出各条音轨。点一下"提取切片",文本框里逐行列出分段地址,并标注"共64个文件,总时长10:34"。

点"转为M3U8",m3u8解析器页自动打开:64个TS地址、总时长10:34、分辨率1280x720一目了然。勾选"mp4格式"、下载线程保持32,点"合并下载",进度条走完得到一个MP4文件。

其他适用场景各一句

带DRM的流解析到一半就停,页面只展示pssh不做解密;多音轨流在音频下拉框里逐条列出可选;只要分段地址不下载,"提取切片"按钮直接给你。界面随系统有西班牙语等10种语言版本,m3u8解析器布局完全一致:

🧰 进阶配置与踩坑记录

可能用到的两个配置

  • MPD地址要带Referer:MPD解析页有一个Referer输入框,手填地址解析时它会被打包进请求头(js/mpd.js里拼成requestHeaders参数)。不少站点会拒绝无来源的请求。
  • 下载范围:下载页有两个"下载范围"输入框,默认1-64即全量。只要前2分钟就填1-12,分片数对着列表数就行。

三个常见坑

  • 加密流别浪费时间:解析时检测到Widevine/PlayReady/FairPlay,页面展示pssh并告警,cat-catch不做DRM解密,这类资源直接放弃。
  • 线程与重封装:下载线程默认32,弱网服务器调小;勾选"mp4格式"后切片会重封装为MP4而不是TS直接拼接。
  • 内核版本:1.0.17之后要求Chromium内核93以上,完整功能需要104以上(见README兼容性说明),Firefox可用但部分功能被隐藏。

🚪 收尾

cat-catch的MPD解析本质是一次接力:内容脚本抓住MPD,mpd-parser把它变成JSON,再拼成M3U8复用整套m3u8下载流水线。 下一步:打开任意一个DASH演示页面,点弹窗里的MPD资源,点"转为M3U8",走完上面这条流程。

【免费下载链接】cat-catch猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

地下车库结构设计全解析:体系选型、荷载取值与抗浮设计要点

简介&#xff1a;这份土木工程毕业设计文档以某大学地下车库建筑结构设计为对象&#xff0c;完整呈现了单建式地下二层停车场与地上儿童乐园相结合的综合设计方案&#xff0c;适合土木工程专业学生及从事地下结构设计的工程技术人员参考。文档为单个doc文件&#xff0c;整体大小…

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

(免费领源码)在线考试系统开题报告‑ 计算机毕设 JAVA、PHP、python、数据集、APP、小程序、C# C++、单片机、网络工程、大数据、全套文案

毕业设计&#xff08;论文&#xff09;开题报告题 目在线考试系统学生姓名学 号指导教师吴勇所在单位重庆邮电大学一、选题背景&#xff08;综述本课题研究现状、选题目的及意义&#xff09;针对当前在线考试系统需求日益增多&#xff0c;各大教育机构在采用传统考试管理…

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

FCQA-6431处理器串口调试与参数整定实战指南

简介&#xff1a;FCQA-6431声音处理器是面向电影放映系统与数字影院音频工程师的专业调试图文资料&#xff0c;覆盖该设备的接口定义、连接方法与软件调试要点&#xff0c;适合影院音频系统安装与运维人员对照查阅。包体为单个PDF文档&#xff0c;大小约1.19MB&#xff0c;内容…

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

原电池原理太难教?动态图拆解微观过程,突破电极反应教学难点

简介&#xff1a;选修四《原电池原理》PPT课件&#xff0c;面向高中化学教师及备考学生&#xff0c;聚焦原电池这一将化学能转化为电能的核心装置。课件以铜锌原电池为典型案例&#xff0c;配合详细动态图演示负极锌片失电子发生氧化反应、正极氢离子得电子被还原&#xff0c;并…

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

2023西门子PLC考试题解析:覆盖S7-1200、博途组态与通信排障

简介&#xff1a;2023年西门子PLC知识考试题&#xff08;附含答案&#xff09;是一份面向工业自动化初学者、电气工程师和备考人员的测评复习资料。题目围绕PLC组成、计数器与定时器、I/O点数划分、执行流程、顺序控制等核心知识展开&#xff0c;包含150道单选题与35道判断题&a…

作者头像 李华