爬虫开发介绍
OmniBox 支持通过自定义爬虫脚本来扩展视频源,您可以使用 JavaScript 或 Python 编写爬虫脚本,实现自定义的视频采集功能。
什么是爬虫源?
爬虫源是 OmniBox 的核心功能之一,它允许您:
- 自定义视频源:通过编写脚本从任意网站或 API 获取视频数据
- 灵活扩展:支持 JavaScript 和 Python 两种语言
- 统一接口:所有爬虫源遵循统一的接口规范
- 可视化编辑:在管理后台可视化编辑和调试脚本
- 实时调试:支持实时查看脚本执行日志和结果
支持的脚本语言
JavaScript
- 使用 Node.js 运行时环境
- 支持所有 Node.js 标准库和 npm 包
- 通过
require()导入模块 - 支持 ES6+ 语法
Python
- 使用 Python 3 运行时环境
- 支持所有 Python 标准库和第三方库(pip install)
- 支持异步编程(async/await)
- 自动处理中文编码
核心接口
爬虫源按需实现以下 5 个接口方法,并非全部必选。例如推送类脚本只需实现 detail 和 play;常规影视源建议实现全部 5 个。每个方法的推荐签名为 (params, context):params 为本次调用的业务参数,context 为运行器注入的请求上下文(见下文)。
| 方法 | 说明 | 推荐签名 |
|---|---|---|
home | 获取首页数据(分类列表和推荐视频) | (params, context) |
category | 获取分类数据(分页列表) | (params, context) |
detail | 获取视频详情 | (params, context) |
search | 搜索视频 | (params, context) |
play | 获取播放地址(可含弹幕列表 danmaku、解析标识 parse) | (params, context) |
请求上下文 context
运行器在每次调用上述方法前,会通过标准输入传入 context,并由 Runner 注入到脚本环境。脚本应使用第二个参数 context 获取,而不是从全局读取。
| 字段 | 类型 | 说明 |
|---|---|---|
baseURL | string | 当前请求的基础 URL(如 OmniBox 服务地址),可用于拼装链接 |
headers | object | 客户端请求头(如 User-Agent、Cookie),由调用端透传 |
sourceId | string | 当前爬虫源 ID,调用网盘/历史等 API 时会用到 |
from | string | 调用端标识:web(默认)/ tvbox / uz / catvod / emby,可按端做差异化逻辑;未传时默认为 web |
JavaScript 示例:async function home(params, context) { const from = context?.from; ... }
Python 示例:async def home(params, context): from_val = (context or {}).get("from"); ...
详见 API 参考 - 请求上下文。
脚本注释属性
在脚本前 50 行内,可通过注释声明若干属性;其中部分会被后端解析并用于「检查更新」「从远端更新」、聚合搜索、推送源识别等。每个属性的含义、取值及示例见单独文档:脚本注释属性。
开发流程
- 创建爬虫源:在管理后台创建新的爬虫源
- 编写脚本:实现所需的接口方法
- 调试测试:使用内置调试功能测试脚本
- 保存启用:保存脚本并启用源
下一步
- 快速开始 - 了解如何创建第一个爬虫源
- SDK(JS / Python) - 按函数对照 JavaScript 与 Python 用法
- API 参考 - 查看完整的 API 文档
