diff --git a/1.md b/1.md new file mode 100644 index 0000000..d98a352 --- /dev/null +++ b/1.md @@ -0,0 +1,196 @@ +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} 对应) +筛选 筛选条件(可留空) 类型$动作#地区$中国 或 {}(自动识别) +数组 列表循环体(每部影片的外层容器)
&&
+标题 影片名称 title="&&"(截取 title 属性内内容) +图片 封面图片地址 data-original="&&" +链接 影片详情页地址 href="&&" +副标题 更新状态 / 集数 && +嗅探词 正片格式筛选 m3u8#mp4#flv#akamaized.net +播放数组 播放线路外层容器 class="stui-content__playlist clearfix">&& +播放列表 单集容器 (匹配所有 标签内的单集) +播放标题 线路名称 h3&&/h3(截取

标签内的线路名) +播放链接 单集真实播放地址 href="&&" +直接播放 直播开关(1 = 开启,0 = 关闭) 1(直播源必须设为 1,否则跳转 WebView) +链接前缀 / 后缀 补全相对路径 前缀:http://cdn.xxx.com;后缀:.m3u8 +搜索 url 搜索入口模板 https://www.xxx.com/search.php?wd={wd}({wd} 为搜索关键词) +搜索数组 / 标题 / 图片 / 链接 搜索结果解析规则 同 “数组 / 标题 / 图片 / 链接” 逻辑 +二次截取 多结构适配规则 ` 默认–
    &&
电视剧–
    &&
` +四、极速入门:3 步搭建基础规则 +1. 极速模板(直接修改 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 + "数组": "
&&
", + "标题": "title=\"&&\"", + "图片": "data-original=\"&&\"", + "链接": "href=\"&&\"", + "副标题": "&&", + "播放数组": "class=\"stui-content__playlist clearfix\">&&", + "播放列表": "", + "播放链接": "href=\"&&\"", + "嗅探词": "m3u8#mp4#flv" + } +} +2. 关键步骤详解:分类 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"\ +3. 关键步骤详解:数组与播放规则编写 +核心口诀:先圈大盒子(数组),再圈小盒子(播放数组),最后拿链接(播放链接)。 +(1)数组:定义列表循环体 +数组是 “每部影片的最外层容器”,用于告诉 XBPQ “从哪开始循环解析单部影片”。 +示例源码: + +html +预览 +
+ + +规则写法: +"数组": "
&&
" +(将循环头和循环尾填入 “起点 && 终点”) +(2)播放规则:解析线路与单集 +播放规则需配合播放数组(线路块)+ 播放列表(单集)+ 播放链接(地址) 三字段。 +示例源码: + +html +预览 + +

线路①

+ + +

线路②

+ + +规则写法: + +播放数组(线路块):"播放数组": "class=\"stui-content__playlist clearfix\">&&" +播放列表(单集):"播放列表": ""(匹配所有标签内的单集) +播放链接(地址):"播放链接": "href=\"&&\""(提取 href 属性内的地址) +五、进阶技巧:二次截取与免嗅探 +1. 二次截取:适配多结构场景 +当同一页面中不同分类 / 线路的 HTML 结构不同时,需用二次截取为每个场景单独指定规则。 +(1)适用场景 +不同分类结构不同(如电影用
,电视剧用
); +置顶推荐位与普通列表结构不同; +多播放线路的容器结构不同。 +(2)语法格式 +"字段名": "默认–起点&&终点||分类A–起点&&终点||分类B–起点&&终点" + +用–分隔 “分类名” 与 “规则”; +用||分隔不同分类的规则; +第一段必须为 “默认–”(处理未匹配的场景)。 +(3)实战示例:列表页多分类适配 +源码简化: + +html +预览 + + + + + + + +规则写法: + +分类字段:"分类": "电影$1#电视剧$2" +数组字段(二次截取): +"数组": "默认–
&&
||电视剧–
&&
" +2. 免嗅探:0 秒启动播放(明文地址专用) +免嗅探让 TVBox 直接使用截取的地址播放,无需二次解析,适用于源码中直接可见完整播放地址的场景。 +(1)适用条件(必须同时满足) +源码中直接出现完整地址(如https://cdn.xxx.com/a.m3u8); +地址无需跳转、解密或拼接。 +(2)规则写法 +播放链接字段末尾加;;m: +"播放链接": "href=\"&&\";;m" 或 "播放链接": "