11 KiB
XBPQ 引擎完全指南:TVBox 规则编写教程 一、XBPQ 是什么? XBPQ 是 TVBox 家族中的 「csp_XBPQ」引擎,专为影视 / 直播类 App 设计的规则解析工具,核心优势如下:
低门槛:纯字符串规则写法,无需 Python/JS 编程基础。
多场景适配:同一条规则可同时支持点播 App(TVBox、影视仓、Pluto 等)的网页刮削,以及直播源的自动分组与嗅探。
灵活高效:对比其他规则类型有明显优势:
vs drpy/py:学习成本最低,调试速度最快;
vs JSON 直连:支持逆向无接口的静态网页站点。
二、核心语法速查表
语法类型 写法示例 说明
基础截取 起点 && 终点 截取 “起点” 与 “终点” 之间的内容
二次截取 起点 && 终点 新起点 && 新终点 按顺序匹配,优先使用前序规则,匹配失败则用后续规则
内容拼接 "前缀"+ 变量 +"后缀" 支持字符串与变量(如 {wd})混合拼接
分类指定 默认–a&&b 电影–c&&d 电视剧–e&&f 为不同分类单独指定规则,第一段必须为 “默认–”
JSON 解析 data.list[1].name 提取 JSON 数据,下标从 1 开始(区别于常规 0 开始)
特殊字符转义 $、#、& 对保留字 $、#、&、*、[、] 需加反斜杠转义
内置变量 {cateId}、{catePg}、{wd} 等 常用变量:频道 ID、页码、搜索关键词、地区、年份等(详见字段清单)
内容筛选 类型$动作#年份2024 按 “键 值” 筛选,多条件用 # 分隔
播放嗅探词 m3u8#mp4#flv 嗅探指定格式的播放地址,多格式用 # 分隔
链接补全 前缀:http://cdn.xxx.com 自动补全相对路径(如 /play.html → http://cdn.xxx.com/play.html)
三、完整字段清单(ext 节点内)
字段 说明 示例
主页 url 站点入口地址 https://www.xxx.com
分类 url 列表页模板(支持变量) https://www.xxx.com/vodshow/{cateId}--{area}--{catePg}--{year}.html
分类 自建频道映射 电影$1#电视剧$2#综艺$3#动漫4( 后为频道 ID,与 {cateId} 对应)
筛选 筛选条件(可留空) 类型$动作#地区$中国 或 {}(自动识别)
数组 列表循环体(每部影片的外层容器)
标签内的线路名)
播放链接 单集真实播放地址 href="&&"
直接播放 直播开关(1 = 开启,0 = 关闭) 1(直播源必须设为 1,否则跳转 WebView)
链接前缀 / 后缀 补全相对路径 前缀:http://cdn.xxx.com;后缀:.m3u8
搜索 url 搜索入口模板 https://www.xxx.com/search.php?wd={wd}({wd} 为搜索关键词)
搜索数组 / 标题 / 图片 / 链接 搜索结果解析规则 同 “数组 / 标题 / 图片 / 链接” 逻辑
二次截取 多结构适配规则 默认–<ul>&&</ul> 电视剧–<ol>&&</ol>
四、极速入门:3 步搭建基础规则
- 极速模板(直接修改 3 处即可用) json { "key": "极速演示", "name": "极速┃BPQ", "type": 3, "api": "csp_XBPQ", "searchable": 1, "quickSearch": 1, "filterable": 1, "ext": { "主页url": "https://www.你的目标站.com", // 1. 修改为目标站点主页 "分类url": "https://www.你的目标站.com/vodshow/{cateId}--------{catePg}---.html", // 2. 修改为目标站列表页模板 "分类": "电影$1#电视剧$2#综艺$3#动漫$4", // 3. 匹配目标站频道ID "数组": "<div class="stui-vodlist__box">&&", "标题": "title="&&"", "图片": "data-original="&&"", "链接": "href="&&"", "副标题": "<span class="pic-text text-right">&&", "播放数组": "class="stui-content__playlist clearfix">&&", "播放列表": "<a&&/a>", "播放链接": "href="&&"", "嗅探词": "m3u8#mp4#flv" } }
- 关键步骤详解:分类 url 编写(3 步填空) 分类 url 是 “告诉 TVBox 点击频道时加载哪一页” 的模板,核心是用变量替换动态数字。 步骤 1:背模板(5 个核心符号) 符号 名称 作用 {} 占位符 TVBox 自动替换为真实值(如频道 ID、页码) cateId 频道号 对应 “分类” 字段中 $ 后的数字 catePg 页码号 翻页时自动 + 1 -/-- 分隔线 照抄目标站 URL 中的格式 .html 后缀 目标站页面后缀(如.asp、/ 等) 步骤 2:提取真实 URL 并替换变量 打开目标站 “电影” 频道第 2 页,复制地址栏 URL: https://www.80kv.com/vodshow/1--------2---.html 将动态数字(1 = 电影 ID,2 = 页码)替换为变量: https://www.80kv.com/vodshow/{cateId}--------{catePg}---.html 步骤 3:匹配 “分类” 字段 确保 “分类” 中$后的数字与{cateId}对应: "分类": "电影$1# 电视剧$2#综艺$3# 动漫 $4"\
- 关键步骤详解:数组与播放规则编写 核心口诀:先圈大盒子(数组),再圈小盒子(播放数组),最后拿链接(播放链接)。 (1)数组:定义列表循环体 数组是 “每部影片的最外层容器”,用于告诉 XBPQ “从哪开始循环解析单部影片”。 示例源码:
html 预览
规则写法: "数组": "<div class="stui-vodlist__box">&&" (将循环头和循环尾填入 “起点 && 终点”) (2)播放规则:解析线路与单集 播放规则需配合播放数组(线路块)+ 播放列表(单集)+ 播放链接(地址) 三字段。 示例源码:
html 预览
线路①
线路②
规则写法:
播放数组(线路块):"播放数组": "class="stui-content__playlist clearfix">&&" 播放列表(单集):"播放列表": "<a&&/a>"(匹配所有标签内的单集) 播放链接(地址):"播放链接": "href="&&""(提取 href 属性内的地址) 五、进阶技巧:二次截取与免嗅探
- 二次截取:适配多结构场景
当同一页面中不同分类 / 线路的 HTML 结构不同时,需用二次截取为每个场景单独指定规则。
(1)适用场景
不同分类结构不同(如电影用,电视剧用); 置顶推荐位与普通列表结构不同; 多播放线路的容器结构不同。 (2)语法格式 "字段名": "默认–起点&&终点||分类A–起点&&终点||分类B–起点&&终点"
用–分隔 “分类名” 与 “规则”; 用||分隔不同分类的规则; 第一段必须为 “默认–”(处理未匹配的场景)。 (3)实战示例:列表页多分类适配 源码简化:
html 预览
规则写法:
分类字段:"分类": "电影$1#电视剧$2" 数组字段(二次截取): "数组": "默认–<div class="m-box">&&||电视剧–<div class="tv-item">&&" 2. 免嗅探:0 秒启动播放(明文地址专用) 免嗅探让 TVBox 直接使用截取的地址播放,无需二次解析,适用于源码中直接可见完整播放地址的场景。 (1)适用条件(必须同时满足) 源码中直接出现完整地址(如https://cdn.xxx.com/a.m3u8); 地址无需跳转、解密或拼接。 (2)规则写法 播放链接字段末尾加;;m: "播放链接": "href="&&";;m" 或 "播放链接": "<video src="&&";;m" 开启 TVBox 全局开关:设置 → 播放器 → 免嗅探(打勾) (3)禁止使用场景 地址为相对路径(如/play/123.html); 地址为加密串(如 base64 编码)或参数(如/play.php?sign=xxx); 地址需 JS 动态生成。 六、排错指南:常见错误与解决方案 序号 错误字段 典型错误示例 TVBox 表现 解决方案 1 主页 url 漏写https://或多/ 加载主页失败 电脑访问 URL 确认是否返回 200 2 分类 url {page}替代{catePg} 翻页不动(始终显示第 1 页) 替换为正确变量,手动拼接 URL 测试 3 分类 用中文;分隔 左侧频道空白 改用英文#分隔 4 数组 起点 / 终点写反或漏&& 列表空白(日志显示 0 条数据) 用 Notepad++ 搜索特征串确认是否存在 5 标题 title=&&(漏引号) 片名显示 undefined 按源码补全引号(如title="&&") 6 图片 / 链接 相对路径未加前缀 封面裂图或 404 补充 “链接前缀”(如http://cdn.xxx.com) 7 搜索 url {WD}替代{wd} 搜索无结果 改用小写{wd},手动访问搜索 URL 测试 8 播放数组 包含
标签 只显示 1 条线路 仅保留线路容器的特征(如) 9 嗅探词 漏写m3u8 能嗅探但无法播放 抓包补充正确格式(详见 “嗅探词扩展”) 10 二次截取 漏写 “默认–” 未匹配分类空白 第一段添加 “默认–规则” 11 JSON 解析 下标从 0 开始(list[0]) 数据错位或 undefined 下标改为从 1 开始 12 转义 未转义" 规则无法导入(JSON 校验失败) 用"转义引号,在线 JSON 校验器验证格式 七、扩展技巧:嗅探词与广告屏蔽
- 嗅探词扩展(10 秒抓包法) 电脑 Chrome 打开播放页 → F12 → Network; 筛选框输入m3u8,点击播放; 复制抓到的地址后缀(如.m3u8、.mp4),用#添加到 “嗅探词” 字段; 建议保留 5-10 个常用格式(超过 20 个可能导致低端设备延迟)。
- 广告域名屏蔽 播放页 F12 → Network → 筛选框输入ad(或doubleclick等广告关键词); 复制广告域名(如ad.mgdmt.com); 将域名添加到 TVBox 的ads数组中,立即生效(无需重启)。