API 参考

内容交付 API

受保护内容和发布资产

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

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

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

受保护内容和发布资产

GET/screen/ad-decisions/{decision_id}

获取广告决策内容

提供绑定到已发布决策的唯一私有对象。权限为实时配对身份加决策绑定;买方项目和媒体 ID 服务器端解析,绝不由调用方,且不发布对象密钥或签名 URL。零长度探测仅返回元数据。

身份验证
runtimeCookie 或 nativeSessionAuthorization
请求主体
无
操作 ID
getAdDecisionContent

参数

名称发送必需?描述
decision_id路径必填
范围header可选V1 仅接受一个字节范围。
请求模板和响应
shell · 请求模板
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/ad-decisions/DECISION_ID'

响应

状态含义正文和头部
200完成决策绑定的私有媒体。无正文;头部:Accept-Ranges、Content-Length、ETag
206一个符合标准的字节范围。无正文;头部:Accept-Ranges、Content-Range、Content-Length、ETag
404not_found - 未知决策。运行时问题(application/problem+json)
410决策已过期或无法提供服务。运行时问题(application/problem+json)
416invalid_range。运行时问题(application/problem+json);头部:Content-Range,Accept-Ranges
默认

面向播放器的运行时、内容或探测路由上的稳定 RFC 9457 问题响应,采用运行时文档格式(RuntimeProblem)。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

运行时问题(application/problem+json)
HEAD/screen/ad-decisions/{decision_id}

头部广告决策内容

与无请求体的 GET 请求具有相同的权限和元数据。

身份验证
runtimeCookie 或 nativeSessionAuthorization
请求主体
无
操作 ID
headAdDecisionContent

参数

名称发送必需?描述
decision_id路径必填
范围header可选V1 仅接受一个字节范围。
请求模板和响应
shell · 请求模板
curl --request HEAD --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/ad-decisions/DECISION_ID'

响应

状态含义正文和头部
200仅元数据。无正文;头部:Accept-Ranges、Content-Length、ETag
默认

面向播放器的运行时、内容或探测路由上的稳定 RFC 9457 问题响应,采用运行时文档格式(RuntimeProblem)。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

运行时问题(application/problem+json)
GET/media/{media_id}

获取稳定受保护媒体

跨播放列表修订共享的稳定不可变媒体 URL。运行时会话标识屏幕和项目以进行授权和带宽计费。

每个请求都要求在该屏幕当前内容访问代中拥有所需、激活或未过期的过渡宽限授权,或在卡片数据键的当前文档中包含该授权列出的 media:<id> 引用。仅凭 ID 不授予访问权限。ETag 是字节的 sha256 引号值。

浏览器 cookie 和本地会话认证仅保留在受信任的播放器源上;不会使用重定向和公共对象存储访问。

身份验证
runtimeCookie 或 nativeSessionAuthorization
请求主体
无
操作 ID
getStableProtectedMedia

参数

名称发送必需?描述
media_id路径必填
范围header可选V1 仅接受一个字节范围。
Sec-Fetch-Siteheader可选
Sec-Fetch-Modeheader可选
Sec-Fetch-Destheader可选
请求模板和响应
shell · 请求模板
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/media/MEDIA_ID'

响应

状态含义正文和头部
200会话授权的完整私有媒体。浏览器 Fetch Metadata 必须描述受信任播放器同源的媒体/图像/视频使用;经过身份验证的本地客户端可省略。无正文;头部:Accept-Ranges、Content-Length、ETag、Content-Disposition
206一个符合标准的字节范围。无正文;头部:Accept-Ranges、Content-Range、Content-Length、ETag
416范围不可满足、多重或格式错误。运行时问题(application/problem+json);头部:Content-Range,Accept-Ranges
429超出每个客户端、屏幕或组织的受保护媒体出站限制。运行时问题(application/problem+json);头部:Retry-After
默认

面向播放器的运行时、内容或探测路由上的稳定 RFC 9457 问题响应,采用运行时文档格式(RuntimeProblem)。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

运行时问题(application/problem+json)
HEAD/media/{media_id}

稳定受保护媒体头部

会话授权的不可变媒体元数据,具有与 GET 相同的授权检查且无响应体。

身份验证
runtimeCookie 或 nativeSessionAuthorization
请求主体
无
操作 ID
headStableProtectedMedia

参数

名称发送必需?描述
media_id路径必填
范围header可选V1 仅接受一个字节范围。
Sec-Fetch-Siteheader可选
Sec-Fetch-Modeheader可选
Sec-Fetch-Destheader可选
请求模板和响应
shell · 请求模板
curl --request HEAD --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/media/MEDIA_ID'

响应

状态含义正文和头部
200会话授权的完整私有媒体。浏览器 Fetch Metadata 必须描述受信任播放器同源的媒体/图像/视频使用;经过身份验证的本地客户端可省略。无正文;头部:Accept-Ranges、Content-Length、ETag、Content-Disposition
206一个符合标准的字节范围。无正文;头部:Accept-Ranges、Content-Range、Content-Length、ETag
416范围不可满足、多重或格式错误。运行时问题(application/problem+json);头部:Content-Range,Accept-Ranges
429超出每个客户端、屏幕或组织的受保护媒体出站限制。运行时问题(application/problem+json);头部:Retry-After
默认

面向播放器的运行时、内容或探测路由上的稳定 RFC 9457 问题响应,采用运行时文档格式(RuntimeProblem)。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

运行时问题(application/problem+json)
GET/media/manifests/{manifest_revision}/{media_id}

获取受保护媒体

身份验证
runtimeCookie 或 nativeSessionAuthorization
请求主体
无
操作 ID
getProtectedMedia

参数

名称发送必需?描述
manifest_revision路径必填
media_id路径必填
范围header可选V1 仅接受一个字节范围。
Sec-Fetch-Siteheader可选
Sec-Fetch-Modeheader可选
Sec-Fetch-Destheader可选
请求模板和响应
shell · 请求模板
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/media/manifests/MANIFEST_REVISION/MEDIA_ID'

响应

状态含义正文和头部
200会话授权的完整私有媒体。浏览器 Fetch Metadata 必须描述受信任播放器同源的媒体/图像/视频使用;经过身份验证的本地客户端可省略。无正文;头部:Accept-Ranges、Content-Length、ETag、Content-Disposition
206一个符合标准的字节范围。无正文;头部:Accept-Ranges、Content-Range、Content-Length、ETag
416范围不可满足、多重或格式错误。运行时问题(application/problem+json);头部:Content-Range,Accept-Ranges
429超出每个客户端、屏幕或组织的受保护媒体出站限制。运行时问题(application/problem+json);头部:Retry-After
默认

面向播放器的运行时、内容或探测路由上的稳定 RFC 9457 问题响应,采用运行时文档格式(RuntimeProblem)。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

运行时问题(application/problem+json)
GET/screen/manifests/{manifest_revision}/releases/{release_id}/package

获取本地 Web 应用包

检索一个上传应用版本的标准化不可变包,以便配对的本地播放器在进程重启和临时网络丢失时保留其授权的最后已知良好版本。

配对设备 cookie、确切屏幕授权、清单修订、内容访问代数、发布成员资格和就绪包元数据在每次请求时检查。项目令牌、匿名运行时 cookie、发布 cookie、外部 iframe 原语和直接对象存储访问从不授权包字节。

身份验证
pairedDeviceCookie 或 nativeSessionAuthorization
请求主体
无
操作 ID
getNativeWebappPackage

参数

名称发送必需?描述
manifest_revision路径必填
release_id路径必填
范围header可选V1 仅接受一个字节范围。
Sec-Fetch-Siteheader可选
Sec-Fetch-Modeheader可选
Sec-Fetch-Destheader可选
请求模板和响应
shell · 请求模板
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/manifests/MANIFEST_REVISION/releases/RELEASE_ID/package'

响应

状态含义正文和头部
200完成规范化的私有包。无正文;头部:Accept-Ranges、Content-Length、Content-Type、Content-Disposition、Cache-Control、ETag、Referrer-Policy、Cross-Origin-Resource-Policy、X-Content-Type-Options、Vary
206来自同一不可变包的一个符合标准的字节范围。无正文;头部:Accept-Ranges、Content-Range、Content-Length、Content-Type、Content-Disposition、Cache-Control、ETag、Referrer-Policy、Cross-Origin-Resource-Policy、X-Content-Type-Options、Vary
416范围不可满足、多重或格式错误。运行时问题(application/problem+json);头部:Content-Range,Accept-Ranges
429

面向播放器的运行时或内容路由上的稳定 rate_limited 问题,采用运行时文档格式(RuntimeProblem)。仅在权威 Retry-After 间隔后重试。固定窗口拒绝还包括适用的 RateLimit-Policy 和 RateLimit 成员;并发和字节预算拒绝省略这些可选披露。

运行时问题(application/problem+json);头部:Retry-After,RateLimit-Policy,RateLimit
默认

面向播放器的运行时、内容或探测路由上的稳定 RFC 9457 问题响应,采用运行时文档格式(RuntimeProblem)。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

运行时问题(application/problem+json)
HEAD/screen/manifests/{manifest_revision}/releases/{release_id}/package

原生 Web 应用包头部

返回与 GET 相同的授权和不可变身份头,但不包含包字节。

身份验证
pairedDeviceCookie 或 nativeSessionAuthorization
请求主体
无
操作 ID
headNativeWebappPackage

参数

名称发送必需?描述
manifest_revision路径必填
release_id路径必填
范围header可选V1 仅接受一个字节范围。
Sec-Fetch-Siteheader可选
Sec-Fetch-Modeheader可选
Sec-Fetch-Destheader可选
请求模板和响应
shell · 请求模板
curl --request HEAD --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/manifests/MANIFEST_REVISION/releases/RELEASE_ID/package'

响应

状态含义正文和头部
200授权的标准化包元数据。无正文;头部:Accept-Ranges、Content-Length、Content-Type、Content-Disposition、Cache-Control、ETag、Referrer-Policy、Cross-Origin-Resource-Policy、X-Content-Type-Options、Vary
206一个字节范围的授权元数据。无正文;头部:Accept-Ranges、Content-Range、Content-Length、Content-Type、Content-Disposition、Cache-Control、ETag、Referrer-Policy、Cross-Origin-Resource-Policy、X-Content-Type-Options、Vary
416范围不可满足、多重或格式错误。无正文;头部:Content-Range、Accept-Ranges
429

面向播放器的运行时或内容路由上的稳定 rate_limited 问题,采用运行时文档格式(RuntimeProblem)。仅在权威 Retry-After 间隔后重试。固定窗口拒绝还包括适用的 RateLimit-Policy 和 RateLimit 成员;并发和字节预算拒绝省略这些可选披露。

运行时问题(application/problem+json);头部:Retry-After,RateLimit-Policy,RateLimit
默认

面向播放器的运行时、内容或探测路由上的稳定 RFC 9457 问题响应,采用运行时文档格式(RuntimeProblem)。421 server_draining 携带 1 秒的 Retry-After,500 not_ready 或 dependency_unavailable 携带 5 秒,500 manifest_degraded 携带 60 秒,除非处理程序设置了更具体的值。

运行时问题(application/problem+json)
GET/{asset_path}

使用启动票据或获取发布资产

确切发布主机操作。带票据查询时,原子性消耗一次性30秒票据,绑定 Host/release/screen/content-generation/manifest/grant,仅设置确切主机发布授权 cookie,并重定向到无票据的相同路径。无票据时,在每个 GET/HEAD 请求验证该 cookie。

asset_path 参数是贪婪匹配(x-screenrig-greedy-path),仅在准备好发布根目录下解析。运行时/项目/设备 Cookie 和项目持有者令牌不授权此操作。

身份验证
releaseLaunchTicket 或 releaseGrantCookie
请求主体
无
操作 ID
consumeLaunchTicketOrGetReleaseAsset

参数

名称发送必需?描述
asset_path路径必填
Sec-Fetch-Siteheader可选
Sec-Fetch-Modeheader可选
Sec-Fetch-Destheader可选
请求模板和响应
shell · 请求模板
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://r-{release_host_label}.apps.screenrig.ai/index.html'

响应

状态含义正文和头部
200确切主机授权的不可变资产。无正文;头部:Referrer-Policy、X-Content-Type-Options、ETag
302票据已使用一次;已发放释放授权 cookie;票据已从位置中移除。无正文;头部:Location、Set-Cookie、Cache-Control、Referrer-Policy
403错误的 Host/release/screen/generation/grant,过期/重放票据,无效 Cookie,Fetch Metadata 矛盾,或不允许的方法。问题 (application/problem+json)
404资产缺失但不暴露发布文件系统结构。问题 (application/problem+json)