自定义源构建指南

嘿!不管是 CMS 还是直链站点,简单配置一下就能用啦!

01. 系统架构

( •̀ ω •́ )✧ 混合动力引擎

Baka 的解析引擎可是很聪明的哦!它知道怎么在速度和通过率之间找到平衡点。

Dio 极速模式

咻——!默认用 HTTP 请求直接拿源码,速度超级快,也不怎么费流量。

WebView 隐身模式

遇到 Cloudflare 或者 5秒盾这种“门卫”时,自动变身成浏览器混进去!

02. 基础配置

填好这些信息,App 就能找到你的网站啦!

字段 说明
name 源名称 唯一哦
baseUrl 站点主页,用来给相对路径补全
searchUrl 搜索页面的链接模板
searchMethod 请求方式:GET (默认) 或 POST
searchParamName 可选。如果无法使用模板,指定参数名来追加关键词 (如 wd)
Search URL 小贴士 (o゚v゚)ノ
推荐使用 {keyword} 当作占位符,比如:https://aa.com/search?wd={keyword}
如果是 POST 模式,searchUrl 填接口地址,关键词会自动放入 Body 里 (默认参数名为 `keyword`,或者通过 `searchParamName` 指定)。

03. CSS 选择器

就像写 CSS 一样简单!告诉我们标题、封面都在哪里。

搜索列表解析

  • searchResultSelector: 每一个结果的小方块 .vod-list li
  • searchItemTitleSelector: 标题 a[title]
  • searchItemLinkSelector: 详情页链接 a.poster
  • searchItemImageSelector: 封面图 img.lazy

剧集列表解析

  • episodeListSelector: 选集列表的大容器 ul.play-list
  • episodeItemSelector: (可选) 每一集的小方块 li
  • episodeLinkSelector: (可选) 播放页链接 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 看看网页结构变没变。有时候网站改版了,选择器也要跟着改哦!
另外,注意检查 searchMethod 是否需要改为 POST。
Q: 视频有声音没画面/无法播放?
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 的源,也可以直接导入!