API 参考

播放计数 API

播放汇总

HTTP 参考。 由后端契约生成。浏览以下端点或下载 OpenAPI。

此分组有 4 个操作,由 api/openapi.yaml 生成。可按路径、操作或认证筛选。每个端点都会列出其输入;展开后可查看请求模板和响应代码。模板需要您自己的值和符合架构的请求体。

用你的值替换大写占位符。对于JSON请求,请保存符合request.json模式的请求体。Cookie示例使用经过身份验证会话的本地Cookie存储。

播放汇总

GET/api/playback

列出播放汇总

每日播放汇总。

JSON 最多返回 200 行且无速率限制。format=csv(或 Accept text/csv 无 application/json)流式传输 day_from 到 day_to(含 UTC 天;默认 day_to 为今天,day_from 为 30 天前;最多 366 天,否则 invalid_request)内所有匹配行,格式为带固定表头行的 CSV(PlaybackAggregateCsv);仅 CSV 形式消耗 playback-export-org(每分钟 30 次)和 playback-export-ip(每分钟 60 次)预算。

两种形式都是一次计量的 API 请求。响应带有 Vary Accept。限定屏幕范围的调用方(docs/screen-scope.md)必须发送 screen_id,并且它必须是其范围内的屏幕(否则为 outside_screen_scope);CSV 形式遵循同样的规则。

身份验证
projectBearer 或 dashboardSession
请求主体
无
操作 ID
listPlaybackAggregates

参数

名称发送必需?描述
ScreenRig-Projectheader可选已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。
screen_id查询可选
media_id查询可选
天查询可选汇总的UTC日历日。
day_from查询可选首个 UTC 天(含)。不含 day。与 day_to 一起最多跨 366 天。CSV 默认设置为 day_to 前 30 天。
day_to查询可选最后的UTC日,含当日。不含当天。CSV默认为今天(UTC)。
格式查询可选json(默认)、csv、xlsx 或 pdf。省略时,指定 text/csv 但未指定 application/json 的 Accept 标头会选择 csv。xlsx 和 pdf 写出同一列表的前 50000 行。
请求模板和响应
shell · 请求模板
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playback'

响应

状态含义正文和头部
200

调用项目的每日播放汇总,包含图片和视频。每行对应一个屏幕、媒体和UTC日期。最新日期优先。标识符仅过滤调用者自己的行,绝不跨项目查询。

PlaybackAggregateList(application/json),PlaybackAggregateCsv(text/csv);头部:Vary,RateLimit-Policy,RateLimit
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
429

稳定的 rate_limited 问题。仅在权威 Retry-After 间隔后重试。固定窗口拒绝还包括适用的 RateLimit-Policy 和 RateLimit 成员;并发和字节预算拒绝省略这些可选披露。

问题 (application/problem+json);头部:Retry-After,RateLimit-Policy,RateLimit
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)
GET/api/playback/plays

列出播放记录

每次播放记录:调用项目中每个接受的 playback.media_started(或旧版 playback.video_started)和每个接受的 playback.application_started(设置了 release_id,媒体字段为空)各一行,按 received_at 由旧到新排序,插入时并列按顺序。from(包含)和 to(不包含)限定 received_at;to 默认为现在,from 默认为 to 之前 24 小时,范围最多 31 天(否则为 invalid_request)。

最新5秒未返回:有效结束时间最多为当前时间减5秒(结算延迟),因此实时尾部不会跳过提交在其游标后的行。筛选条件包括 screen_id、media_id、playlist_id(开始显示的播放列表)和标签(播放接收时屏幕携带的标签)。

playlist_id 页面可能包含少于限制行数的内容,甚至为空;当扫描到长时间播放其他播放列表时会有 next_cursor,null 仍表示范围结束。

JSON 是最多 limit 行(默认 200,最多 1000)的一页,带 next_cursor,范围末尾为 null;用相同过滤器传回作为 cursor。order=desc(或 before)在同一范围内按最新优先分页:next_cursor 是返回的最旧行游标,范围起始为 null,传回作为 before(排除)和相同过滤器;order=asc 搭配 before 拒绝,返回 invalid_request 并指明 order,游标带最新优先页命名 cursor。

最新优先的页面可能包含少于限制行数,甚至没有数据,但会有 next_cursor;null 表示结束。

后续页面不会跳过早先页面存在的行,也不会重复行,除非播放器在未确认报告后重新发送的开始(相同 play_id,稍后收到)可能在后续页面再次出现;CSV 流以 CSV 格式(PlaybackPlayCsv)从游标到范围结束列出每个播放,最新的在前,使用 order=desc;CSV 不接受 limit。

计量按请求计算:每个 JSON 页面消耗一个 API 请求额度,而整个范围的一个 CSV 流消耗一个。每个播放请求(页面或流)消耗 playback-export-org(每分钟 30 次)和 playback-export-ip(每分钟 60 次)预算。

流限定每次写入(15 秒),客户端断开时结束;200 头后失败则连接中止,故读取到干净结尾的导出即完整。响应携带 Vary Accept。播放保留期为计划的事件保留期(出厂为 30 天;基于计划的保留使用计划自身的 7 或 90 天窗口)。

限定屏幕范围的调用方(docs/screen-scope.md)必须发送 screen_id,并且它必须是其范围内的屏幕(否则为 outside_screen_scope);CSV 形式遵循同样的规则。

身份验证
projectBearer 或 dashboardSession
请求主体
无
操作 ID
listPlaybackPlays

参数

名称发送必需?描述
ScreenRig-Projectheader可选已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。
起始查询可选received_at 的包含下限。默认为 to 之前 24 小时。
至查询可选received_at 的排他性上限。默认为当前时间。to - from 最多 31 天。
screen_id查询可选
media_id查询可选
playlist_id查询可选仅显示此播放列表的播放。
标签查询可选播放接收时屏幕携带的标签。
游标查询可选上一页的 next_cursor,使用相同过滤条件。不透明。
顺序查询可选升序分页,使用 cursor;降序分页,使用 before。before 表示降序;order=asc 与 before 一起使用将被拒绝。
before查询可选页面最新优先,严格早于此位置:最新优先页面的 next_cursor,使用相同过滤器。不透明。
限制查询可选JSON 页面大小。CSV 拒绝。
格式查询可选json(默认)、csv、xlsx 或 pdf。省略时,指定 text/csv 但未指定 application/json 的 Accept 标头会选择 csv。xlsx 和 pdf 写出同一列表的前 50000 行。
请求模板和响应
shell · 请求模板
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playback/plays'

响应

状态含义正文和头部
200播放记录页面,或 CSV 流。PlaybackPlayList(application/json),PlaybackPlayCsv(text/csv);头部:Cache-Control,Vary,RateLimit-Policy,RateLimit
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
429

稳定的 rate_limited 问题。仅在权威 Retry-After 间隔后重试。固定窗口拒绝还包括适用的 RateLimit-Policy 和 RateLimit 成员;并发和字节预算拒绝省略这些可选披露。

问题 (application/problem+json);头部:Retry-After,RateLimit-Policy,RateLimit
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)
GET/api/playback/totals

获取播放总计

播放调用项目在包含的 UTC 天数内的总计,从每日汇总读取:by=day 返回每天一行播放数据(screen_id 或 media_id 可缩小到单个屏幕或媒体),by=screen 和 by=media 排名最繁忙的屏幕或媒体(最多 100 个),by=screen_day 返回顶级屏幕的每日序列(最多 10 个)。day_to 默认为今天(UTC),day_from 默认为 29 天前。

日期序列最多跨 366 天(缩小到屏幕或媒体时为 92 天);排名最多 92。计数包括项目记录的所有启动次数,包括播放汇总出现前存储的。

汇总数据在摄取后最多延迟约 21 分钟。当排名基于过大窗口的切片构建时,truncated 为 true:它覆盖每个切片的最佳键。无速率限制。一次计量的 API 请求。

限定屏幕范围的调用方(docs/screen-scope.md)必须发送 screen_id,并且它必须是其范围内的屏幕(否则为 outside_screen_scope);CSV 形式遵循同样的规则。

身份验证
projectBearer 或 dashboardSession
请求主体
无
操作 ID
getPlaybackTotals

参数

名称发送必需?描述
ScreenRig-Projectheader可选已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。
格式查询可选json(默认)以 JSON 返回报告。csv、xlsx 和 pdf 以附件形式返回相同的行(分页报告的每一页,最多 50000 行)。
by查询可选day:每天播放;screen、media:最繁忙的键;screen_day:顶级屏幕的每日序列。
day_from查询可选首个 UTC 天(含)。默认从 day_to 向前 29 天。日期序列最多跨 366 天(缩小到屏幕或媒体时为 92 天),排名最多 92 天。
day_to查询可选最后的UTC日,含当日。默认为今天(UTC)。
screen_id查询可选
media_id查询可选
顶部查询可选排名返回的屏幕或媒体数量(by=screen_day 最多 10 个)。by=day 时拒绝。
请求模板和响应
shell · 请求模板
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playback/totals'

响应

状态含义正文和头部
200请求分组的总计。PlaybackTotals(application/json);头部:Cache-Control
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+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)
GET/api/playback/completeness

获取播放完整度

屏幕产生的播放中有多少到达了后端,以及缺失的播放出现在哪里。Player 会为每次媒体播放开始编号,因此从未到达的开始记录会在编号中留下空缺,例如屏幕离线时间超出其 24 小时报告队列,或队列丢弃了报告时。

在 day_from 至 day_to(含首尾)的 UTC 日期范围内(day_to 默认为今天的 UTC 日期,day_from 默认为其之前 29 天;窗口最多跨 92 天),响应包含:measured_plays,即已到达的带编号播放;missing_plays,即 Player 跳过的编号;completeness,即 measured_plays 占二者之和的比例,二者均为 0 时为 null;days,即有数据的每一天的同样三项数字,按最早在前排列,空缺计入其后一次播放所在的 UTC 日;gaps,即按最新在前排列的空缺,每项包含其 screen_id、day、from 和 to(空缺两侧播放的开始时间)以及 missing_plays。screen_id 可将 days 和 gaps 限定到某一个屏幕;limit(默认 100,最大 500)限制 gaps 的数量,存在更多时 truncated 为 true。

关闭的屏幕不会产生播放,也不会留下缺口。没有编号的播放(较旧的 Player,以及在播放编号出现之前存储的开始记录)不参与测量:它们计入 GET /api/playback/totals 的 play_count,但不属于这些数字中的任何一项。不受速率限制。计为一次计量 API 请求。

限定屏幕范围的调用方(docs/screen-scope.md)必须发送 screen_id,并且它必须是其范围内的屏幕(否则为 outside_screen_scope);CSV 形式遵循同样的规则。

身份验证
projectBearer 或 dashboardSession
请求主体
无
操作 ID
getPlaybackCompleteness

参数

名称发送必需?描述
ScreenRig-Projectheader可选已弃用一个版本。必须与 JWT 项目授权保持一致;添加弃用和警告头。无令牌交换。
格式查询可选json(默认)以 JSON 返回报告。csv、xlsx 和 pdf 以附件形式返回相同的行(分页报告的每一页,最多 50000 行)。
day_from查询可选起始 UTC 日期,包含该日。默认为 day_to 之前 29 天。与 day_to 一起构成的区间最长为 92 天。
day_to查询可选最后的UTC日,含当日。默认为今天(UTC)。
screen_id查询可选
限制查询可选列出缺口的最大数量,按最新在前排列。
请求模板和响应
shell · 请求模板
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playback/completeness'

响应

状态含义正文和头部
200该时间窗口的完整度及其缺口。PlaybackCompleteness (application/json);响应头:Cache-Control
400

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+json)
401

稳定的 RFC 9457 问题响应。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

问题 (application/problem+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)