使用油猴脚本给猫抓发送资源
猫抓自带的深度搜索虽能满足大部分情况,对于特别保护的网站还是需要一些特殊处理,油猴脚本刚好能弥补猫抓的不足。这里示范如何给猫抓发送数据,以便大家自己写脚本。
通过 window.postMessage() 函数可以对猫抓发送一条资源或密钥。
发送资源
参数为对象,对象属性如下:
| 属性 | 值(示例) | 说明 |
|---|---|---|
| action | "catCatchAddMedia" | 固定 必须,告诉猫抓添加一条资源 |
| url | * | 资源的地址 |
| href | location.href | 当前页面的网址,让猫抓区分从哪里来的资源。一般为 location.href |
| ext | * | 资源的扩展,如果不填写,猫抓会从资源地址分析,可为空 |
| mime | * | 资源的mime类型 如: video/mp4,可为空 |
| referer | * | 打开资源所需的referer头属性,可为空 |
脚本示例
https://greasyfork.org/zh-CN/scripts/456150/code
javascript
window.postMessage({
action: "catCatchAddMedia",
url: "https://github.com/xifangczy/cat-catch",
href: location.href,
ext: "test",
mime: "test/text",
referer: "https://github.com",
});安装后回到本页面刷新,应该可以看到猫抓会多出来一条资源,这就是从油猴脚本发送的。
也可以用脚本把资源通过GM_xmlhttpRequest或者ajax/fetch方式下载到内存里,通过new Blob() 和 URL.createObjectURL() 创建一条blob网址发送给猫抓。
javascript
fetch("https://bmmmd.com/")
.then((response) => response.blob())
.then(function (blob) {
window.postMessage({
action: "catCatchAddMedia",
url: window.URL.createObjectURL(blob),
href: location.href,
ext: "html",
});
});发送密钥
部分网站的m3u8的密钥不在文件内,需要对网页进行分析得出,可以通过脚本获得密钥发送给猫抓m3u8解析器。详见 寻找到疑似key
| 属性 | 值(示例) | 说明 |
|---|---|---|
| action | "catCatchAddKey" | 固定 必须,告诉猫抓添加一个密钥 |
| key | * | 密钥数据,经过base64编码或arrayBuffer类型。 |
| href | location.href | 当前页面的网址,让猫抓区分从哪里来的密钥。一般为 location.href即可 |
| ext | "base64Key" / "key" | 密钥经过base64编码,填入
|
javascript
window.postMessage({
action: "catCatchAddKey",
key: "aHR0cHM6Ly9ibW1tZC5jb20=",
href: location.href,
ext: "base64Key",
});