diff --git a/xbpq最新笔记.txt b/xbpq最新笔记.txt deleted file mode 100644 index a3c5738..0000000 --- a/xbpq最新笔记.txt +++ /dev/null @@ -1,295 +0,0 @@ -1. XBPQ 是什么 -①、属于 TVBox 家族里的「csp_XBPQ」引擎,纯字符串规则写法,无需 Python/JS 基础。 -②、同一条规则既能让点播 App(TVBox、影视仓、Pluto)直接刮削网页,也能让直播源自动分组、嗅探。 -③、与 drpy、py 相比:学习成本最低,调试最快;与 JSON 直连相比:可逆向无接口站点。 -2. 核心语法一张图 -① 截取 : 起点&&终点 -② 二次截取 : 起点&&终点||新起点&&新终点 -③ 拼接 : '+' 前后可混写字符串 / 变量 -④ 分类指定 : 默认–a&&b||电影–c&&d||电视剧–e&&f -⑤ JSON : data.list[1].name 下标从 1 开始 -⑥ 转义 : 保留字 $ # & * [ ] 前加 \\ -⑦ 变量 : {cateId} {catePg} {area} {year} {class} {by} {act} {wd} -⑧ 筛选 : 类型$类型值#剧情$剧情值 … -⑨ 嗅探词 : 多个用 # 分隔,如 m3u8#mp4#flv -⑩ 链接前缀/后缀: 自动补全相对路径 -3. 字段清单(ext 内全部) - | 字段 | 说明 | 示例 | | | -| ------------- | -------- | -------------------------------------------------------------------------- | - | ----------------- | -| 主页url | 入口 | `https://www.xxx.com` | | | -| 分类url | 列表页 | `https://www.xxx.com/vodshow/{cateId}--{area}------{catePg}---{year}.html` | | | -| 分类 | 自建频道 | `电影$1#电视剧$2#综艺$3#动漫$4` | | | -| 筛选 | 可留空,自动识别 | `外部json 或 直接写{}` | | | -| 数组 | 列表循环体 | `
&&
` | | | -| 标题 | 片名 | `title="&&"` | | | -| 图片 | 封面 | `data-original="&&"` | | | -| 链接 | 详情页 | `href="&&"` | | | -| 副标题 | 更新集数 | `&&` | | | -| 嗅探词 | 正片格式 | `m3u8#mp4#flv#akamaized.net` | | | -| 播放数组 | 播放线路块 | `class="stui-content__playlist clearfix">&&` | | | -| 播放列表 | 单集 | `` | | | -| 播放标题 | 线路名 | `h3&&/h3` | | | -| 播放链接 | 真实地址 | `href="&&"` | | | -| 直接播放 | 直播开关 | `1` 开启,`0` 关闭 | | | -| 链接前缀/后缀 | 补全 | `http://cdn.xxx.com` / `.m3u8` | | | -| 搜索url | 搜索入口 | `https://www.xxx.com/search.php?wd={wd}` | | | -| 搜索数组/标题/图片/链接 | 同上逻辑 | … | | | -| 二次截取 | 不同页面不同规则 | \`电影– | | 电视剧–
    &&
\` | -4. 极速模板(直接改 3 处即可上线) -{ - "key": "极速演示", - "name": "极速┃BPQ", - "type": 3, - "api": "csp_XBPQ", - "searchable": 1, - "quickSearch": 1, - "filterable": 1, - "ext": { - "主页url": "https://www.你的目标站.com", - "分类url": "https://www.你的目标站.com/vodshow/{cateId}--------{catePg}---.html", - "分类": "电影$1#电视剧$2#综艺$3#动漫$4", - "数组": "
&&
", - "标题": "title=\"&&\"", - "图片": "data-original=\"&&\"", - "链接": "href=\"&&\"", - "副标题": "&&", - "播放数组": "class=\"stui-content__playlist clearfix\">&&", - "播放列表": "", - "播放链接": "href=\"&&\"", - "嗅探词": "m3u8#mp4#flv" - } -} - -分类url 就是: -“告诉 TVBox,点左边哪个频道,就去加载哪一页列表”的那串网址模板。 -写法只有 3 步 5 个符号,真的傻子也能会。 -一、先背模板(一共 5 个符号) -https://域名/目录/{cateId}--------{catePg}---.html -符号解释(按出现顺序): -| 符号 | 叫法 | 作用 | -| ---------- | --- | --------------------------- | -| `{}` | 大括号 | **占位符**,TVBox 会自动把里面文字换成真实值 | -| `cateId` | 频道号 | 对应你写的“分类”里 `$` 后面的数字 | -| `catePg` | 页码号 | 翻页时 TVBox 自动 +1 | -| `-` 或 `--` | 分隔线 | 照抄网站格式,几个横线就写几个 | -| `.html` | 后缀 | 网站是啥就写啥,也有 `.asp` 或 `/` | -二、3 步填空白(拿真实站点练手) -1、打开网站列表页,随便点“电影”→ 第 2 页,地址栏得到: -https://www.80kv.com/vodshow/1--------2---.html -2、把会变动的数字换成占位符: -原:/vodshow/1--------2---.html -模板:/vodshow/{cateId}--------{catePg}---.html -类型{cateid},剧情{calss},地区{area},年份{year},排序{by},{letter}字母,语言{lang},翻页{catepg} -3、把域名补全,放进规则: -"分类url": "https://www.80kv.com/vodshow/{cateId}--------{catePg}---.html" -三、对应“分类”写法(必须配对) -"分类": "电影$1#电视剧$2#综艺$3#动漫$4" -用英文 # 分隔,千万别用中文“#”,写死法(基础) - -一、先搞懂“数组”到底截什么 -1、打开列表页源码,找到“每一部影片”的最外层盒子。 - 目标:让 XBPQ 知道“从哪开始循环”。 - - - -2、写“数组”字段 -原则:把“循环头”和“循环尾”分别粘进去,中间内容任意,XBPQ 会自动把两段之间的所有片段当成一条记录。 -"数组": "
&&
" -二、再截“播放数据”——两大步 -播放数据 = 播放数组(线路块) + 播放列表(单集) + 播放链接(真实地址) -下面用“详情页”真实源码演示: - -

线路①

- - - -

线路②

- -1、先框住“线路块”——播放数组 -特征:每个线路最外层相同的 " -2、再框住“单集”——播放列表 -特征:每集都是 集名,用 最稳。 -"播放列表": "" -3、最后拿“真实地址”——播放链接 -特征:href="地址",把引号里的内容截出来。 -"播放链接": "href=\"&&\"" -4、(如果地址是相对路径,别忘了加前缀) -"链接前缀": "https://www.demo.com" -记住口诀: -“先圈大盒子(数组),再圈小盒子(播放数组),最后拿链接(播放链接)” - -下面把「写错一个字段」对应「TVBox 会怎么崩」全部列出来 -| # | 写错字段 | 典型错误写法举例 | TVBox 表现 / 报错特征 | 快速验证方法 | | | -| -- | ------- | --------------------------------- | --------------------------- | ----------------------------------- | - | ------- | -| 1 | 主页url | 漏写 `https://` 或末尾多一个 `/` | 首次加载就提示“获取主页失败” | 电脑直接访问该地址看是否 200 | | | -| 2 | 分类url | 占位符写错,如 `{catePg}` 写成 `{page}` | 点分类一直显示第 1 页,翻页不动 | 把 `{catePg}` 换成 2,手动拼 URL 看能否出第 2 页 | | | -| 3 | 分类 | 用了中文符号 `电影$1;电视剧$2` | 左侧频道列表直接空白 | 确认用英文 `#` 分隔 | | | -| 4 | 数组 | 前后特征串写反 / 中间缺 `&&` | 列表整页空白,日志提示“0 条数据” | 把源码粘到 Notepad++ 搜索特征串是否存在 | | | -| 5 | 标题 | 把 `title="&&"` 写成 `title=&&`(漏引号) | 所有片名显示 `undefined` 或整条 HTML | 看源码里引号到底包不包 | | | -| 6 | 图片 | 截到相对路径却忘记 `图片前缀` | 封面全部裂图 | 浏览器 F12 看图片地址是否完整 | | | -| 7 | 链接 | 详情页相对路径没加 `链接前缀` | 点片名直接 404 | 复制 TVBox 日志里的详情地址到浏览器 | | | -| 8 | 副标题 | 特征串换行符不同(Win vs Unix) | 更新集数那一行全空白 | 打开源码显示换行符,统一复制 | | | -| 9 | 搜索url | 用了 `{wd}` 却大小写写错 `{WD}` | 搜索任何关键词都“无结果” | 手动 `search.php?wd=长风渡` 看能否出结果 | | | -| 10 | 搜索数组 | 与主列表数组特征不同却直接复用 | 搜索页空白,日志显示“0 条” | 单独抓 `/search.php` 的 HTML 再写一套搜索特征 | | | -| 11 | 播放数组 | 把 `

` 一起圈进来当尾点 | 详情页只出现 1 条线路(实际多线路) | 看源码只数 `
    ` 尾巴,别用 `

` | | | -| 12 | 播放列表 | 用 `` 结果把 `` 也截入 | 每集标题出现两次“第01集第01集” | 改成 `&&` 或 `>&&<` | | | -| 13 | 播放链接 | 继续用相对路径却忘 `链接前缀` | 点击播放 404,日志地址缺域名 | 复制播放页源码里的 `href` 看是否完整 | | | -| 14 | 嗅探词 | 漏写 `m3u8` 只写 `mp4` | 能嗅到地址但无法播放(被 302 广告) | 在电脑抓包看实际返回是不是 `.m3u8` | | | -| 15 | 链接前缀 | 末尾多写 `/` 导致 `//play` | 播放 404,地址出现双斜杠 | 统一让前缀 **无末尾斜杠**,后缀自己补 `/` | | | -| 16 | 直接播放 | 直播源写成 `0` | 直播频道点进去却跳 WebView 解析 | 直播源必须 `1` | | | -| 17 | 筛选 | 把 `类型$动作片` 写成 `类型=动作片` | 筛选面板空白或无法勾选 | 确认用 `$` 分隔键值,用 `#` 分隔多选项 | | | -| 18 | JSON 数组 | 下标从 0 开始写 `data.list[0].name` | 片名全错位或 undefined | XBPQ 规定下标从 **1** 开始 | | | -| 19 | 二次截取 | 漏写“默认–”直接写 `电影–xxx` | 非电影分类全部空白 | 第一段必须写 \`默认–规则 | | 电影–规则\` | -| 20 | 转义 | 源码里已有 `"` 却忘了前加 `\` | JSON 校验直接失败,TVBox 无法导入 | 用在线 JSON 校验器先过一遍格式 | | | - -嗅探词: -10 秒「浏览器抓包」自己扩 -电脑 Chrome 打开影片播放页 → F12 → Network → 筛选框输入 m3u8 -点播放,抓到第一条 Name 列出现 xxxx.m3u8(或 .mp4/.ts) -把 网址最后一段 复制出来,例如 -https://cdn.xxx.com/202502/3f6e9.m3u8?authkey=1200 -只要域名后面 第一个“?”前的后缀 → .m3u8 -继续换不同站点抓 3-5 次,把新后缀累加进嗅探词,用 # 隔开即可。 -实测 90% 站点 5 个词以内就能命中。实测 ≤10 个几乎无感;超过 20 个才可能在低端盒子出现 1-2 秒延迟 - -自己抓“当天”广告域名 -电脑 Chrome 打开影片页 → F12 → Network → 点播放。 -筛选框输入 m3u8 前先输入 ad(或 doubleclick、googlesyndication 等广告关键字)。 -找到返回 302/200 且最前面带广告关键词的域名,例如 -https://ad.mgdmt.com/xxxx -把 ad.mgdmt.com 复制下来。 -直接扔进 ads 数组最前面,立即生效,不用重启盒子。 - -一、什么场景“必须”二次截取? -同一页里,不同分类的 HTML 结构完全不同 -例:电影模块每部片在
-  电视剧模块却用
-如果只写一条“数组”,必定有一类空白 → 要用二次截取给每类单独指定特征串。 -同一页里,置顶/推荐位结构跟普通列表不同 -例:前面 6 条是“大图”,后面是普通小图;大图多一层
-一次截取会把两种盒子混到一起 → 标题/图片字段错位 → 二次截取先砍掉“大图”区,再截普通区。 -详情页多线路区域结构不同 -例:线路①用
    -  线路②用
    -播放数组一次只能圈一种尾巴 → 必须二次截取按线路名分别给规则。 -二、语法格式(死记 5 秒) -"字段名": "默认–起点&&终点||分类A–起点&&终点||分类B–起点&&终点" -每一段用 两个减号 -- 把“分类名”和“规则”分开 -段与段之间用 两个竖线 || 分隔 -第一段必须写 默认–(否则“其他”情况会空白) -三、完整实战:列表页“电影 vs 电视剧”结构不同 -源码简化示意: - -
    - - -
    - - -
    - - -
    -1、分类字段(先给 ID 对应关系) -"分类": "电影$1#电视剧$2" -2、数组字段 —— 一次截取肯定不行,必须二次截取 -"数组": "默认–
    &&
    ||电视剧–
    &&
    " -解释: -当 TVBox 请求 cateId=1(电影)时,用第一段
    &&
    -当 cateId=2(电视剧)时,自动切换到第二段
    &&
    -如果以后新增“综艺”区,只要继续在后面 ||综艺–新起点&&新终点 即可 -四、播放页实战:多线路结构不同 -

    线路①

    - - -

    线路②

    - -二次截取写法: -"播放数组": "默认–
      &&
    ||线路②–
    &&
    " -标题同样可二次截取: -"播放列表": "默认–
  • &&
  • ||线路②–&&" - -记住核心:搜索数组 = “先圈每一块结果,再拿标题/图片/链接” 的圈地运动。 -一、搜索数组到底截什么? -打开站点搜索页,随便搜“成龙”,F12 看见的结构一定是: - - - - -搜索数组就是告诉 TVBox: -“把每一块
    先整体切下来,再逐条解析” -二、写搜索数组的 3 步(照抄即可) -1、圈整块(搜索数组) -"搜索数组": "
    &&
    " -2、再圈 4 个常用字段(都在同一块里) -"搜索标题": "title=\"&&\"", -"搜索图片": "data-original=\"&&\"", -"搜索链接": "href=\"&&\"", -"搜索副标题": "&&" -3、补前缀(相对路径时) -"搜索链接前缀": "https://www.demo.com" -一句话背下来 -“先圈块(搜索数组),再圈字(标题/图片/链接),相对路径加前缀。” - - -“免嗅探”= TVBox 不再自己去找真实播放地址,而是直接拿你“划红线”那段当最终地址。 -只有网页源码里一眼就能看见 .m3u8 / .mp4 绝对路径时才用;如果地址被 JS 加密、跳转、拼接,就绝对不能开,否则播放 404。 -正常嗅探(不开免嗅探) -播放链接截到: -/play.php?url=aHR0cHM6Ly9jZG4uY29tL2EubTN1OA== -TVBox 会继续访问 /play.php... → 再 302 跳转 → 才拿到真实 .m3u8 -(需要耗时 1-3 秒,可能跳到广告) -免嗅探(开免嗅探,且写 ;;m) -播放链接截到: -https://cdn.xxx.com/2025/06/a.m3u8;;m -TVBox 看见 ;;m 立刻停止,直接把前面当最终地址播放 -(0 秒启动,无广告) -三、什么时候可以写 ;;m(划红线为明文) -✅ 能用的场景 -网页源码里直接出现: -播放 -或者视频标签里: - -❌ 不能用的场景 -截出来是 相对路径 /play/123-1-1.html → 还要后端 302 跳转 -截出来是 加密串 aHR0cHM6Ly9jZG4uY29tL2EubTN1OA== → 还要 base64 解码 -截出来是 参数 /play.php?sign=xxx → 还要后端验签 -截出来是 只有一段 token var url = '/2025/a.m3u8'; → 还要 JS 拼接 -四、XBPQ 里具体怎么写 -先确认是明文 -浏览器 F12 → Elements 搜 .m3u8 或 .mp4,如果看见完整 https://... 就继续。 -写播放链接,尾巴加 ;;m -"播放链接": "href=\"&&\";;m" -打开 TVBox 全局开关 -设置 → 播放器 → 免嗅探 打勾 -(不开勾,写 ;;m 也无效) -"播放链接": "