Skip to content

爬虫开发介绍

OmniBox 支持通过自定义爬虫脚本来扩展视频源,您可以使用 JavaScript 或 Python 编写爬虫脚本,实现自定义的视频采集功能。

什么是爬虫源?

爬虫源是 OmniBox 的核心功能之一,它允许您:

  • 自定义视频源:通过编写脚本从任意网站或 API 获取视频数据
  • 灵活扩展:支持 JavaScript 和 Python 两种语言
  • 统一接口:所有爬虫源遵循统一的接口规范
  • 可视化编辑:在管理后台可视化编辑和调试脚本
  • 实时调试:支持实时查看脚本执行日志和结果

支持的脚本语言

JavaScript

  • 使用 Node.js 运行时环境
  • 支持所有 Node.js 标准库和 npm 包
  • 通过 require() 导入模块
  • 支持 ES6+ 语法

Python

  • 使用 Python 3 运行时环境
  • 支持所有 Python 标准库和第三方库(pip install)
  • 支持异步编程(async/await)
  • 自动处理中文编码

核心接口

爬虫源按需实现以下 5 个接口方法,并非全部必选。例如推送类脚本只需实现 detailplay;常规影视源建议实现全部 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 获取,而不是从全局读取。

字段类型说明
baseURLstring当前请求的基础 URL(如 OmniBox 服务地址),可用于拼装链接
headersobject客户端请求头(如 User-Agent、Cookie),由调用端透传
sourceIdstring当前爬虫源 ID,调用网盘/历史等 API 时会用到
fromstring调用端标识: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 行内,可通过注释声明若干属性;其中部分会被后端解析并用于「检查更新」「从远端更新」、聚合搜索、推送源识别等。每个属性的含义、取值及示例见单独文档:脚本注释属性

开发流程

  1. 创建爬虫源:在管理后台创建新的爬虫源
  2. 编写脚本:实现所需的接口方法
  3. 调试测试:使用内置调试功能测试脚本
  4. 保存启用:保存脚本并启用源

下一步