番剧内容从哪来:规则检索、Bangumi 资料与视频嗅探
看懂这一页,后面遇到任何「搜不到 / 放不出」的问题都能自己定位到环节。内容从无到有,经过三条互相独立的通道:
通道一:规则管「从哪里看」
规则是几行 XPath 选择器或一段 JSON 接口描述,告诉应用两件事:
- 拿着关键词去哪个网站搜索、结果列表怎么定位(检索);
- 进入某部番的页面后,播放线路和剧集列表在哪里(选集)。
视频地址本身的获取不需要规则描述——应用会在你点开某一集后自动去嗅探真实的视频流,这是它的内部实现。所以写规则只需要引导到「播放页面」为止。
通道二:Bangumi 管「番剧是什么」
封面、简介、标签、角色、评分、评论区这些资料全部来自 Bangumi 开放 API,与视频源无关。这也解释了一个常见现象:搜番时看到的是 Bangumi 的资料库,点「开始观看」后才轮到规则出场。追番标记(想看 / 在看 / 看过等)默认也记在本地,登录 Bangumi 账号后可以同步到云端。
通道三:WebView 嗅探管「真实视频地址」
点开某一集后,应用会在后台拉起一个 WebView 组件访问播放页,监听其中加载的视频流地址,拿到后交给内置播放器。这个 WebView 是按需启动、用完即毁的,嗅探结束立即销毁,日常不常驻内存。各平台实现不同:Windows 用 WebView2,iOS 与 macOS 用 WKWebView 注入脚本,Linux 用 GTKWebKit;安卓平台受系统 WebView 能力限制走 JavaScript 方案,稳定性稍逊一筹——这也是为什么写规则的人被建议优先在安卓上测试。
三条通道串起来
| 环节 | 谁负责 | 典型故障 |
|---|---|---|
| 找到这部番 | Bangumi 资料 | 资料缺失 → 去 Bangumi 补条目 |
| 找到在哪看 | 规则 | 搜不出结果 → 规则的检索部分失效 |
| 拿到视频流 | 嗅探 + 播放器 | 有列表放不出 → 嗅探失败或源反盗链 |
故障定位口诀:资料页正常但搜不到 → 查规则检索;列表出得来但黑屏 → 查嗅探与视频源。对应的排查动作在规则调不通一页与播放排错一页展开。