外部调用
疯狂URL 5 5.x
数据源 API
让自己写的脚本或第三方程序,通过本机 HTTP 接口读取疯狂URL抓到的地址。
数据源 API 适合需要自动处理抓取结果的场景,例如用脚本把新地址交给自己的播放器或数据库。只是想把视频交给猎流下载,不需要它,用发送给猎流即可。
开启
- 打开“设置 → API”,开启“启用数据源 API”和“启用 HTTP API”。
- 确认“HTTP 端口”,默认 18910。
- 复制界面上的“API 地址”,在本机用 GET 请求读取。
curl http://127.0.0.1:18910/api/v1/urls只在本机访问时不需要令牌。
返回什么
接口只有一个:GET /api/v1/urls,返回最近抓到的地址数组。每条记录包含:
| 字段 | 说明 |
|---|---|
Timestamp | 抓到的时间 |
Url | 完整地址 |
Source | 抓取方式,例如代理、网卡 |
Direction | 请求或响应 |
Protocol、Method、StatusCode | 协议、请求方法、状态码 |
Host | 主机名 |
Headers | 抓到的请求头 |
Tags | 类型标签 |
ClientIp、ClientPort、ServerIp、ServerPort | 客户端和服务器地址 |
返回哪些记录由三项设置决定:
- API 过滤:默认“仅媒体”,也可选“全部记录”“仅 HTTP-FLV”“仅 RTMP”,或在过滤器中自定义。它和捕获列表的过滤互不影响。
- 限制记录数量:最多返回多少条,默认 20。
- 清空捕获列表时保留 API 数据:开启后,清空列表不会清掉 API 里的记录。
勾选“启用 JSON 持久化”并选好“输出路径”,API 数据会同时写入文件,重启后仍在;不开启时,重启应用后 API 数据清空。“清空 API 数据”可以随时清掉。
让局域网里的其他设备读取
开启“允许局域网访问”后,其他设备可以访问这台电脑的 API,但每个请求都必须带访问令牌:
curl -H "Authorization: Bearer <访问令牌>" http://<电脑的局域网IP>:18910/api/v1/urls令牌在“访问令牌”处复制;怀疑泄露时点“重新生成令牌”,旧令牌立即失效。
返回内容可能包含登录凭据
Headers 会原样带出抓到的请求头,其中可能有 Cookie 和授权令牌。只在可信的网络中开放局域网访问,不要把令牌和返回内容发给别人;不用时关掉“允许局域网访问”。
常见错误
| 状态码 | 原因 |
|---|---|
| 401 | 局域网访问时没有带令牌,或令牌不对 |
| 403 | API 未开启、未授权,或在本机访问时用了 localhost / 127.0.0.1 以外的主机名 |
| 404 | 路径不是 /api/v1/urls |
| 405 | 用了 GET 以外的方法 |
| 503 | 服务正在重启或数据暂时不可用,稍后重试 |