自定义源构建指南
嘿!不管是 CMS 还是直链站点,简单配置一下就能用啦!
01. 系统架构
( •̀ ω •́ )✧ 混合动力引擎
Baka 的解析引擎可是很聪明的哦!它知道怎么在速度和通过率之间找到平衡点。
Dio 极速模式
咻——!默认用 HTTP 请求直接拿源码,速度超级快,也不怎么费流量。
WebView 隐身模式
遇到 Cloudflare 或者 5秒盾这种“门卫”时,自动变身成浏览器混进去!
02. 基础配置
填好这些信息,App 就能找到你的网站啦!
| 字段 | 说明 |
|---|---|
name |
源名称 唯一哦 |
baseUrl |
站点主页,用来给相对路径补全 |
searchUrl |
搜索页面的链接模板 |
searchMethod |
请求方式:GET (默认) 或 POST |
searchParamName |
可选。如果无法使用模板,指定参数名来追加关键词 (如 wd) |
Search URL 小贴士 (o゚v゚)ノ
推荐使用
如果是 POST 模式,
推荐使用
{keyword} 当作占位符,比如:https://aa.com/search?wd={keyword}。如果是 POST 模式,
searchUrl 填接口地址,关键词会自动放入 Body 里 (默认参数名为 `keyword`,或者通过
`searchParamName` 指定)。
03. CSS 选择器
就像写 CSS 一样简单!告诉我们标题、封面都在哪里。
搜索列表解析
searchResultSelector: 每一个结果的小方块 .vod-list lisearchItemTitleSelector: 标题 a[title]searchItemLinkSelector: 详情页链接 a.postersearchItemImageSelector: 封面图 img.lazy
剧集列表解析
episodeListSelector: 选集列表的大容器 ul.play-listepisodeItemSelector: (可选) 每一集的小方块 liepisodeLinkSelector: (可选) 播放页链接 a
04. XPath 模式
如果你习惯用 Kazumi 的规则,我们也完全支持哦!
模式切换
只要把 useXPath 设置为 true 就行啦!开启后上面的 CSS 选择器就没有用了哦。
支持字段:xpathSearchList, xpathSearchName, xpathSearchResult
等等。
05. 播放解析 Core
怎么拿到视频地址呢?这里有三种办法!( •̀ .̫ •́ )✧
策略 A: Script 变量提取 推荐
CMS 站点最喜欢把数据藏在 <script> 里了。
playUrlPattern |
正则表达式,用来抓那个 JSON 或者 URL。 |
playerJsVar |
(可选) 变量名,比如 player_aaaa。如果是 MacCMS,系统会自动帮你解密(Base64/URLDecode)哦!✨ |
策略 B: Video 标签直链
直链站点专用。直接找到 <video> 或者 <source> 标签就好啦。
字段:videoSelector 例: #player video
策略 C: Iframe 嵌入
如果是云解析,就找 <iframe> 的 src 属性吧。
字段:iframeSelector 例: .player-box iframe
06. 高级玩法 Pro
遇到难搞的网站?这时候就需要拿出杀手锏了!(▀TB▀)ゞ
二次解析 (Second Parse)
有时候从详情页拿到的只是一个中间页地址,还需要再进去“剥一层皮”才能看到视频。
needSecondParse: 设置为true开启。secondParsePattern: 在中间页里找视频地址的正则。
解析 API (Parse API)
如果网站用了第三方解析接口,我们可以把视频地址传给 API。
parseApiUrl: API 地址,比如https://api.jiexi.com/?url=。会自动把视频链接拼在后面。
07. 反爬对抗
自动防御系统,启动!🛡️ 哪怕网站有验证也不怕。
自动触发条件
- HTTP 状态码是 403 或者 503
- 页面里有 "Just a moment" 或者 "Security check"
- 页面内容极短且包含重定向脚本
08. 常见问题 (FAQ)
Q: 搜索不到结果怎么办?
A: 先用浏览器 F12 看看网页结构变没变。有时候网站改版了,选择器也要跟着改哦!
另外,注意检查
A: 先用浏览器 F12 看看网页结构变没变。有时候网站改版了,选择器也要跟着改哦!
另外,注意检查
searchMethod 是否需要改为 POST。
Q: 视频有声音没画面/无法播放?
A: 很多时候是防盗链在作怪!试着在
A: 很多时候是防盗链在作怪!试着在
headers 里加上 Referer,把源站地址填进去试试看。
09. 完整范例
复制下面的 JSON,改改就能用啦!ヽ(✿゚▽゚)ノ
{
"id": "anime_demo_01",
"name": "示例动漫",
"baseUrl": "https://www.example.com",
"searchUrl": "https://www.example.com/search/wd/{keyword}.html",
"searchMethod": "GET",
"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)...",
"Referer": "https://www.example.com/"
},
"searchResultSelector": ".module-item",
"searchItemTitleSelector": ".module-card-item-title a",
"searchItemLinkSelector": "a.module-card-item-poster",
"searchItemImageSelector": "img.lazy",
"searchImageAttribute": "data-original",
"episodeListSelector": ".module-play-list",
"playUrlType": "script",
"playerJsVar": "player_aaaa",
"enableAntiBotBypass": true
}
10. 导入与导出
分享你的配置
做好的源怎么分享给朋友呢?我们支持好几种格式:
- 📄 JSON 原文: 直接复制那一串 JSON 代码。
- 🔗 baka://协议: App 生成的专用加密链接,看起来像乱码一样。
- 🌸 kazumi://协议: 如果你有 Kazumi 的源,也可以直接导入!