OpenAPI YAMLOpenAPI JSON问题 YAMLAPI 概览
此分组有 2 个操作,由 api/openapi.yaml 生成。可按路径、操作或认证筛选。每个端点都会列出其输入;展开后可查看请求模板和响应代码。模板需要您自己的值和符合架构的请求体。
用你的值替换大写占位符。对于JSON请求,请保存符合request.json模式的请求体。Cookie示例使用经过身份验证会话的本地Cookie存储。
持久项目事件
列出事件
按序列升序列出持久项目事件。
分页是连续的:将返回的 next_cursor 作为 after 传递,精确续接页面停止处。next_cursor 是最后返回事件的游标,当有更新事件存在时,历史末尾为 null。limit 默认为 50,接受 1-200;超出范围的值返回 invalid_request 和包含 limit 的 errors[]。
不支持偏移分页。source=log 列出播放器日志:按接收时间升序报告播放器发送的条件(runtime.reported),通过 screen_id 和严重级别过滤,时间窗口从至(默认最近 24 小时,最多 31 天)。
其游标不透明:lg1_ 或 ev1_,取决于服务器存储播放器日志的位置,故返回页面的游标应传回;其他类型游标拒绝,返回 invalid_request 并指明字段。播放器日志记录无序列,不在 GET /stream/project 上,也不传递给 webhook。
当播放器日志队列接受记录时,该记录被确认,并保留用于项目的事件保留。使用最后的游标和默认窗口进行轮询,跟踪日志。播放器日志记录不在默认(source=project)列表中。除非 source 是 log,否则 from 和 to 会被拒绝并返回 invalid_request。
项目列表使用 screen_id、playlist_id 和 application_id 读取一个屏幕、播放列表或应用程序的事件,所有事件均限定为凭证的项目(一个 ID 指定读取哪些事件,永不指定谁的):screen_id 保留资源为该屏幕的事件;playlist_id 保留资源为该播放列表的事件加上将其命名为 details.playlist_id(使用该播放列表的屏幕)的事件;application_id 保留资源为该应用程序的事件加上资源带有其为 application_id(其发布和键值条目)的事件。
非其类型 ID 的值被拒绝,返回 invalid_request 并指明字段;playlist_id 和 application_id 在 source=log 时被拒绝,日志记录仅属于屏幕。
两个来源都接受resource_id、类型和严重性(至少),彼此组合,并与 id 筛选和分页结合;播放器日志记录是runtime.reported记录,其资源为其屏幕,因此resource_id不是该屏幕或类型排除runtime.reported时,返回空页面。before(或 order=desc)分页为最新优先:next_cursor为返回结果中最旧项的游标,作为 before 继续查找更早的项。
无起始时间时,最新优先的 source=log 页面会超出默认的 24 小时,直到项目事件保留的最旧记录,每次请求最多 31 天。最新优先的 source=log 页面可能包含少于限制数的记录,甚至无记录,但带有 next_cursor;null 表示结束,位于保留日志末尾。
限定屏幕范围的调用方(docs/screen-scope.md)读取经过筛选的事件流:范围内屏幕的事件,其可见屏幕文件夹(自己的文件夹,以及上级和内部的文件夹;screen.moved 仅在目的地位于其范围内时)的事件,活动、播放列表、媒体、应用和卡片的事件,以及 playlist_change 审核。
其他所有事件都会被省略,因此一页可能少于 limit 个事件,甚至为空,但仍带有 next_cursor;请继续用它翻页。source=log 需要其范围内的 screen_id。不发送关于项目本身的事件。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| after | 查询 | 可选 | 先前响应的游标:ev1_ 用于项目事件(及事件流)。播放器日志(source=log)使用 lg1_ 或 ev1_ 游标分页,依据服务器存储位置;视为不透明并传回页面返回的游标。其他类型游标返回 invalid_request。 |
| before | 查询 | 可选 | 页面最新优先,严格早于此游标:最新优先页面的 next_cursor,或任何项目游标(ev1_ 用于项目事件;source=log 时为其项目携带的不透明游标)。order=desc 时为空或缺失,从最新项目开始。 |
| 顺序 | 查询 | 可选 | 升序分页,使用 after;降序分页,使用 before。before 表示降序;order=asc 与 before 一起使用将被拒绝。 |
| 限制 | 查询 | 可选 | 页面大小。超出 1-200 范围的值将被拒绝,返回 invalid_request 和包含字段 limit 的 errors[]。 |
| 来源 | 查询 | 可选 | 项目列出有序的项目事件。日志列出播放器日志:播放器状态报告(runtime.reported),按接收时间升序。 |
| resource_id | 查询 | 可选 | 仅限 resource.id 为此 ID(屏幕、播放列表、媒体、webhook、代理或应用 ID)的项目。source=log 时为记录的屏幕。 |
| 类型 | 查询 | 可选 | 精确事件类型,如 playlist.updated,或以点结尾的系列前缀,如 playlist.,适用于所有 playlist.* 类型。 |
| screen_id | 查询 | 可选 | 仅此屏幕的事件:source=project 时资源为屏幕,source=log 时为播放器日志记录。其他 ID 类型拒绝,返回 invalid_request。 |
| playlist_id | 查询 | 可选 | 使用 source=project 时,仅返回此播放列表的事件:资源为该播放列表的事件及以 details.playlist_id 命名的事件。使用 source=log 时拒绝。 |
| application_id | 查询 | 可选 | 使用 source=project 时,仅返回此应用的事件:资源为该应用的事件及资源带有 application_id(其发布和键值条目)的事件。使用 source=log 时拒绝。 |
| 严重性 | 查询 | 可选 | 最低严重级别:info 包含所有项,warning 保留警告和错误,error 仅保留错误。两个来源均适用。 |
| 起始 | 查询 | 可选 | 使用 source=log 时,窗口开始时间(含)。默认为结束时间前 24 小时;无起始时间的最新优先页面会回溯到项目的事件保留期。 |
| 至 | 查询 | 可选 | 使用 source=log 时,窗口结束时间(不含)。默认为当前时间。窗口最长为 31 天。 |
请求模板和响应
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/events'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 持久事件(source=project)或播放器日志记录(source=log) | EventList (application/json) |
| 403 | outside_screen_scope - 调用方限定于屏幕,且请求所指明或涉及的屏幕、屏幕文件夹、选择器或受众超出了这些屏幕(docs/screen-scope.md)。范围之外的 ID 和不存在的 ID 得到相同的答复;errors[0].screen_scope 携带调用方的范围,写入会被整体拒绝,绝不会被缩小范围。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
流事件
可重放的项目监听流。播放器日志记录(runtime.reported)通过 GET /api/events?source=log 读取,不在此流上。打开此请求会作为监听订阅消耗 1 个额度。额度响应头已省略。之后计费的事件每个消耗 1 个额度;screen.*、runtime.*、alert_mute.* 和 application.event 不计费。
心跳和重试前言不计费。stream.cursor 和 stream.resync_required 计费。借记幂等性为 sse-event:<project_id>:<sequence>,因此重新连接重放免费。未支付的计费事件不会写入,且流关闭。
用控制台会话打开的流不计费(打开及其事件都不计),与控制台的 API 请求一样;它仍占用项目的一个流名额。限定屏幕范围的调用方(docs/screen-scope.md)会收到与 GET /api/events 相同的筛选事件流:被丢弃的事件不发送帧,stream.cursor 继续推进位置。
范围在流打开时读取,文件夹树在移动或文件夹事件时再次读取;收窄的范围在已打开的流重新连接时生效。
参数
| 名称 | 发送 | 必需? | 描述 |
|---|---|---|---|
| ScreenRig-Project | header | 可选 | 已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。 |
| after | 查询 | 可选 | 先前响应的游标:ev1_ 用于项目事件(及事件流)。播放器日志(source=log)使用 lg1_ 或 ev1_ 游标分页,依据服务器存储位置;视为不透明并传回页面返回的游标。其他类型游标返回 invalid_request。 |
| Last-Event-ID | header | 可选 | 在 after 缺失时使用持久游标。 |
请求模板和响应
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/stream/project'响应
| 状态 | 含义 | 正文和头部 |
|---|---|---|
| 200 | 可重放的SSE流。查询游标优先于Last-Event-ID。无效、未来或保留期前的游标会收到stream.resync_required并关闭。无ScreenRig-Credits-*头。 | 字符串(text/event-stream) |
| 402 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |
| 默认 | 稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。 | 问题 (application/problem+json) |