You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome declarativeNetRequest API无法拦截YouTube的问题求助

关于Chrome declarativeNetRequest API无法拦截YouTube及嵌入视频的解决方案

一、为什么declarativeNetRequest无法拦截YouTube主页面?

核心问题在于规则匹配精度或优先级不足:

  1. URL匹配范围过窄:原规则urlFilter: "youtube.com"仅做子串匹配,无法覆盖带www前缀或特定路径的YouTube主页面请求;
  2. 优先级设置过低:默认priority:1可能低于浏览器内置的允许规则,导致拦截规则被覆盖。

修复方案

修改拦截扩展的规则,提升优先级并使用更精确的URL匹配:

// 拦截扩展规则 rules_1.json
[
    {
        "id": 1,
        "priority": 1000, // 扩展规则最高优先级为1000,确保覆盖内置规则
        "action": { "type": "block" },
        "condition": {
            "urlFilter": "*://*.youtube.com/*", // 匹配所有YouTube子域名及路径
            "resourceTypes": ["main_frame"]
        }
    },
    {
        "id": 2,
        "priority": 1000,
        "action": { "type": "block" },
        "condition": {
            "urlFilter": "*://youtube.com/*",
            "resourceTypes": ["main_frame"]
        }
    },
    {
        "id": 3,
        "priority": 1000,
        "action": { "type": "block" },
        "condition": {
            "urlFilter": "google.com",
            "resourceTypes": ["main_frame"]
        }
    }
]

现有manifest权限配置已满足要求,无需额外修改。

二、如何拦截嵌入的YouTube视频?

嵌入视频通常以sub_frame(iframe嵌入)、media(视频资源)或script(播放器脚本)类型加载,需要扩展规则覆盖这些资源类型,并匹配YouTube的嵌入路径(如/embed/)。

实现方案

更新拦截规则,添加针对嵌入资源的拦截逻辑:

// 更新后的拦截扩展规则 rules_1.json
[
    // 拦截YouTube主页面
    {
        "id": 1,
        "priority": 1000,
        "action": { "type": "block" },
        "condition": {
            "urlFilter": "*://*.youtube.com/*",
            "resourceTypes": ["main_frame"]
        }
    },
    // 拦截iframe嵌入的视频页面
    {
        "id": 2,
        "priority": 1000,
        "action": { "type": "block" },
        "condition": {
            "urlFilter": "*://*.youtube.com/embed/*",
            "resourceTypes": ["sub_frame"]
        }
    },
    // 拦截YouTube视频媒体资源
    {
        "id": 3,
        "priority": 1000,
        "action": { "type": "block" },
        "condition": {
            "urlFilter": "*://*.youtube.com/*",
            "resourceTypes": ["media"]
        }
    },
    // 拦截谷歌主页面(保留原有规则)
    {
        "id": 4,
        "priority": 1000,
        "action": { "type": "block" },
        "condition": {
            "urlFilter": "google.com",
            "resourceTypes": ["main_frame"]
        }
    }
]

关键说明

  • 若需更彻底拦截,可在resourceTypes中添加script、xmlhttprequest,阻止YouTube播放器的脚本及数据请求;
  • 通配符*确保匹配所有子域名和路径,避免遗漏边缘场景。

内容的提问来源于stack exchange,提问作者Milo Lynch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:53:19