Referência da API

API de Playlists

Playlists

Referência HTTP. Gerada a partir do contrato backend. Navegue pelos endpoints abaixo ou baixe o OpenAPI.

Este grupo tem 16 operações, geradas a partir de api/openapi.yaml. Filtre por caminho, ação ou autenticação. Cada endpoint lista suas entradas; expanda-o para ver um modelo de solicitação e os códigos de resposta. Os modelos precisam de seus próprios valores e de um corpo válido conforme o esquema.

Substitua os espaços reservados em maiúsculas pelos seus valores. Para uma solicitação JSON, salve um corpo que corresponda ao esquema em request.json. Exemplos de cookies usam um jar local de cookies de uma sessão autenticada.

Playlists

GET/api/playlists

Listar playlists V2

Lista de playlists versionadas que pode expor páginas de adslot. A lista v1 recusa uma página que contém um documento com anúncios com version_required em vez de filtrá-la.

Páginas como listPlaylists, mais recentes primeiro, no máximo 200 por página e menos quando uma página contém 8 MiB de playlists armazenadas. next_cursor é a posição da última linha retornada enquanto houver mais linhas; passe-o como after, com os mesmos filtros, para a próxima página. next_cursor é nulo na última página. library=true lista, em vez disso, as playlists da Biblioteca da organização (somente leitura; programe-as ou crie a partir dos modelos delas).

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
listPlaylistsV2

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
libraryconsultaopcional

true lista o projeto Biblioteca da organização em vez deste projeto: os itens dele são somente leitura aqui e trazem library true. Uma organização sem Biblioteca, ou o próprio projeto Biblioteca, não lista nada com true.

depoisconsultaopcionalnext_cursor da página anterior da mesma lista, com os mesmos filtros. Omitido começa na linha mais recente. Um valor que não seja esse cursor é invalid_request.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists'

Respostas

StatusSignificadoCorpo e cabeçalhos
200Playlists com a união da página de adslot.PlaylistV2List (application/json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
POST/api/playlists

Criar playlist V2

Entrada de criação para a união de páginas de adslot. No máximo 16 páginas de adslot, pelo menos uma página comum sem visibilidade, e o reuso de uma definição de slot em páginas diferentes permanecem verificações do servidor. Resolução de referência e DNS continuam verificações do servidor.

Uma sessão do dashboard (o editor de páginas) cria a playlist no ar, nunca como proposta, atribuída à pessoa, e exige o proprietário do projeto ou um membro que possa aprovar (caso contrário, approver_required); mídia que ela nomeia e que aguarda revisão é media_pending_review (409), onde a escrita no ar de um agente a aprova.

Uma gravação que contém uma página iframe que o Player web não consegue enquadrar é salva mesmo assim; a resposta traz avisos (PlaylistWarning) e o registro do projeto recebe um evento playlist.iframe_framing_refused por página.

Uma escrita cujo src de iframe, fallback_src ou params de aplicativo leem um token de tela ({screen.field.NAME} e os outros dos esquemas de primitiva) que uma tela que mostra a playlist não tem também responde com um aviso screen_fact_missing nomeando as primeiras 20 telas assim; os manifestos dessas telas deixam essa primitiva de fora.

Um src ou fallback_src de iframe que seja um link do Google Apresentações, Docs ou Planilhas (compartilhar, publicar na web ou incorporar) ou um link de incorporação do Microsoft 365 OneDrive ou SharePoint é armazenado reconstruído para a tela, onde as apresentações repetem e avançam com o delayms do link limitado à duração da página, e Docs, Planilhas, Word e Excel recarregam a cada 5 minutos.

Um código de incorporação <iframe> colado em src ou fallback_src é lido pelo seu src. Um arquivo que pede login aos espectadores é recusado com document_not_shared (400), cujo errors[0].field é esse src ou fallback_src e cujo detalhe nomeia a configuração de compartilhamento a mudar.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
PlaylistCreateRequest
ID da operação
createPlaylistV2

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
Screenrig-Review-Notecabeçalhoopcional

Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request).

Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo.

Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists'

Respostas

StatusSignificadoCorpo e cabeçalhos
202

A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url.

Uma repetição com Idempotency-Key responde com o mesmo corpo.

ReviewPending (application/json)
201Playlist com suas páginas de adslot.PlaylistV2 (application/json)
402

feature_not_in_plan — Declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido.

Um formato de 2 ou mais displays (um video wall) faz parte do Plus; um formato de região e uma playlist sem formato estão em todos os planos. O problema nomeia o recurso, o plano do projeto e required_plan.

Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
GET/api/playlists/{id}

Obter Playlist V2

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
getPlaylistV2

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
200Playlist com suas páginas de adslot.PlaylistV2 (application/json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
PUT/api/playlists/{id}

Atualizar playlist V2

Atualização versionada aceitando a união da página adslot. If-Match carrega a revisão da playlist.

Uma sessão do dashboard (o editor de páginas) substitui a playlist no ar, nunca como proposta, atribuída à pessoa; exige o proprietário do projeto ou um membro que possa aprovar (caso contrário, approver_required) e If-Match (invalid_request quando ausente); uma playlist sem aprovação de pessoa ainda é playlist_not_approved (409), como em patchPlaylistStructure, e mídia que uma página nomeia e que aguarda revisão é media_pending_review (409).

Uma gravação que contém uma página iframe que o Player web não consegue enquadrar é salva mesmo assim; a resposta traz avisos (PlaylistWarning) e o registro do projeto recebe um evento playlist.iframe_framing_refused por página.

Uma escrita cujo src de iframe, fallback_src ou params de aplicativo leem um token de tela ({screen.field.NAME} e os outros dos esquemas de primitiva) que uma tela que mostra a playlist não tem também responde com um aviso screen_fact_missing nomeando as primeiras 20 telas assim; os manifestos dessas telas deixam essa primitiva de fora.

Um src ou fallback_src de iframe que seja um link do Google Apresentações, Docs ou Planilhas (compartilhar, publicar na web ou incorporar) ou um link de incorporação do Microsoft 365 OneDrive ou SharePoint é armazenado reconstruído para a tela, onde as apresentações repetem e avançam com o delayms do link limitado à duração da página, e Docs, Planilhas, Word e Excel recarregam a cada 5 minutos.

Um código de incorporação <iframe> colado em src ou fallback_src é lido pelo seu src. Um arquivo que pede login aos espectadores é recusado com document_not_shared (400), cujo errors[0].field é esse src ou fallback_src e cujo detalhe nomeia a configuração de compartilhamento a mudar.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
PlaylistWriteV2
ID da operação
updatePlaylistV2

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
Screenrig-Review-Notecabeçalhoopcional

Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request).

Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo.

idcaminhoobrigatório
If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.

Campos do corpo da solicitação

CampoDescrição
nome (obrigatório, string)minLength: 1 maxLength: 120
campos (opcional, PlaylistTemplateFields)

Declarar campos torna a playlist um modelo. Cada marcador lido por uma página deve nomear um campo declarado do tipo certo e cada campo deve ser lido; uma playlist sem campos não lê marcadores. Um modelo nunca é exibido em uma tela (playlist_is_template). Um PUT sem fields os mantém; null ou um array vazio os remove.

pages (obrigatório, array)

As páginas de uma playlist podem resolver no máximo 1024 referências de mídia no total. Um seletor by:ids conta seu comprimento; uma definição by:all, by:tag ou by:folder reserva 32 referências independentemente do tamanho do catálogo. O instantâneo real do loop é limitado a 1024 referências de mídia no total. Acima de qualquer orçamento é 422 inválido no caminho pages.

audio (opcional, PlaylistAudioWrite)

Trilha sonora opcional da playlist: mídia de áudio pronta ordenada (MP3) que toca continuamente enquanto as páginas mudam (docs/playlist-audio.md). Mudanças de página nunca param ou reiniciam. PUT substitui toda a playlist, então omitir áudio remove a trilha sonora.

formato (opcional, PlaylistFormat)

Para o que uma playlist é criada: um videowall (PlaylistWallFormat) ou uma região (PlaylistRegionFormat), nunca ambos. Uma playlist sem formato é uma playlist comum que se vincula a qualquer tela como a página.

Modelo e respostas da solicitação
shell · modelo de requisição
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
202

A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url.

Uma repetição com Idempotency-Key responde com o mesmo corpo.

ReviewPending (application/json)
200Playlist atualizada.PlaylistV2 (application/json)
402

feature_not_in_plan — Declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido.

Definir um formato de video wall (2 ou mais displays) diferente do da própria playlist faz parte do Plus. O problema nomeia o recurso, o plano do projeto e required_plan.

Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
PATCH/api/playlists/{id}

Patch Playlist

Altera apenas os campos de nível superior enviados: name, pages, audio, format ou fields. Os campos omitidos são preservados do mesmo instantâneo da transação. pages, audio e format enviados substituem o valor completo; audio null remove a trilha sonora e format null remove o formato. Elementos de arrays aninhados não são mesclados.

Uma edição apenas de nome de uma playlist aprovada não revalida nem resolve novamente seu conteúdo inalterado, incluindo formatos de página armazenados mais antigos. Conteúdo fornecido e relações de áudio/sinal de página são validados. If-Match protege opcionalmente a revisão; patches idênticos são operações sem efeito e tentativas idempotentes repetem a resposta original.

O acesso Propose e a política de revisão funcionam como em PUT, incluindo os avisos para um valor pages enviado com uma página iframe que o Player web não consegue enquadrar. PUT continua substituindo o documento inteiro.

Autenticação
projectBearer
Corpo da solicitação
PlaylistPatch
ID da operação
patchPlaylist

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
Screenrig-Review-Notecabeçalhoopcional

Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request).

Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo.

idcaminhoobrigatório
If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.

Campos do corpo da solicitação

CampoDescrição
nome (opcional, string)minLength: 1 maxLength: 120
pages (opcional, array)
fields (opcional, inline)
audio (opcional, inline)
formato (opcional, inline)
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
202

A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url.

Uma repetição com Idempotency-Key responde com o mesmo corpo.

ReviewPending (application/json)
200Playlist atualizada; ETag carrega sua revisão.PlaylistV2 (application/json)
402

feature_not_in_plan — Declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido.

Definir um formato de video wall (2 ou mais displays) diferente do da própria playlist faz parte do Plus. O problema nomeia o recurso, o plano do projeto e required_plan.

Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
EXCLUIR/api/playlists/{id}

Excluir playlist V2

Marca como excluída uma playlist pertencente ao projeto autenticado. Recusado com resource_conflict (409) enquanto alguma tela, inclusive arquivada ou pendente, a usar como padrão, em sua programação ou como substituição temporária, enquanto uma pasta de telas a usar como padrão ou enquanto uma campanha a reproduzir.

A sessão do dashboard pode também excluir; cria e substitui playlists com createPlaylistV2 e updatePlaylistV2 e altera sua estrutura via patchPlaylistStructure.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
deletePlaylistV2

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório
If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
204Playlist tombstoned.sem corpo
409

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
PATCH/api/playlists/{id}/structure

Patch Playlist Structure

Uma pessoa conectada altera a estrutura de uma playlist e nunca o que suas páginas mostram: seu nome, a ordem das páginas, quais páginas permanecem e o avanço e visibilidade de cada página mantida. pages é a nova ordem completa; uma página armazenada que ela omite é removida, e um id que a playlist não possui, ou um repetido, é invalid_request em pages[i].id.

A tela mantida tem canvas, transição, audio_cue, primitivas e comentários sempre os armazenados: o corpo não tem membro para eles, e qualquer outro membro é recusado.

As páginas mantidas passam pela mesma resolução e validação que qualquer playlist armazenada, então um item de mídia excluído desde então é recusado (resource_conflict) e a playlist ainda mantém uma página comum sem visibilidade, no máximo 16 páginas de slots de anúncio e seus sinais audio_end. advance substitui o avanço da página (uma página de slot de anúncio não tem); visibility substitui a visibilidade da página quando um objeto, remove quando nulo e mantém quando omitido.

Uma alteração que mantém a playlist como armazenada é uma operação sem efeito. If-Match carrega a revisão da playlist e é obrigatório (invalid_request quando ausente, revision_conflict quando desatualizado). A gravação é aplicada imediatamente em todas as telas que exibem a playlist e é atribuída à pessoa em playlist.updated; nunca é uma proposta, portanto a resposta nunca é 202.

Uma playlist que nenhuma pessoa aprovou ainda (approved_revision 0) é recusada com playlist_not_approved (409): decida primeiro sua revisão. Um nome que outra playlist do projeto usa é resource_conflict. Somente a sessão do dashboard; agentes alteram playlists com patchPlaylist, e uma pessoa altera o que as páginas mostram com updatePlaylistV2.

A resposta traz avisos (PlaylistWarning) como em qualquer escrita, entre eles screen_fact_missing quando uma tela que mostra a playlist não tem um valor que o src de um iframe ou os params de aplicativo de suas páginas leem. O corpo tem no máximo 64 KiB.

Autenticação
dashboardSession
Corpo da solicitação
PlaylistStructurePatch
ID da operação
patchPlaylistStructure

Parâmetros

NomeEnviarObrigatório?Descrição
idcaminhoobrigatório
If-MatchcabeçalhoobrigatórioA revisão atual da playlist, citada ou simples (o ETag da última leitura). Uma revisão obsoleta é revision_conflict com current_revision.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.

Campos do corpo da solicitação

CampoDescrição
nome (opcional, string)minLength: 1 maxLength: 120
pages (opcional, array)

Cada página que permanece, na ordem de reprodução. Um id que a playlist não possui, ou um listado duas vezes, é invalid_request em pages[i].id. O resultado ainda deve satisfazer as regras da playlist: pelo menos uma página comum sem visibilidade, no máximo 16 páginas de slot de anúncio, uma página audio_end mantém seu audio_cue.

Modelo e respostas da solicitação
shell · modelo de requisição
curl --request PATCH --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/structure'

Respostas

StatusSignificadoCorpo e cabeçalhos
200A playlist como armazenada agora; ETag carrega sua revisão.PlaylistV2 (application/json); cabeçalhos: ETag
402

feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido.

Problema (application/problem+json)
409playlist_not_approved — a playlist não tem versão aprovada; resource_conflict — o nome está em uso, ou um item de mídia ou um nome de página mantido não está mais disponível.Problema (application/problem+json)
412revision_conflict — If-Match está desatualizado; a current_revision do erro contém a revisão atual.Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
GET/api/playlists/{id}/revisions

Listar revisões da playlist

The playlist's revisions, newest first: each revision a write stored (a create, a replace, a patch, a structure change, an applied review, a promote) with its name, its page count, the kind of change and who made it.

History begins with the revision a playlist held when revision history was first recorded: until its next write the list holds that revision alone, with change baseline. Revisions are kept for as long as the playlist is. At most 50 per page; next_cursor while more remain, null on the last page.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
listPlaylistRevisions

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório
depoisconsultaopcionalnext_cursor da página anterior da mesma lista, com os mesmos filtros. Omitido começa na linha mais recente. Um valor que não seja esse cursor é invalid_request.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/revisions'

Respostas

StatusSignificadoCorpo e cabeçalhos
200As revisões da playlist, da mais recente para a mais antiga.PlaylistRevisionList (application/json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
GET/api/playlists/{id}/revisions/{revision}

Obter revisão da playlist

One revision of the playlist and the playlist as it stood at that revision: its name, pages, soundtrack and format, with revision set to this one. A revision the playlist never had, or one from before its history began, is not_found.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
getPlaylistRevision

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório
revisãocaminhoobrigatórioUma revisão da playlist, como listPlaylistRevisions as numera.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/revisions/REVISION'

Respostas

StatusSignificadoCorpo e cabeçalhos
200A revisão e a playlist nessa revisão.PlaylistRevisionDetail (application/json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
POST/api/playlists/{id}/revisions/{revision}/promote

Promover revisão da playlist

Makes an earlier revision current again by copying it forward: its pages, soundtrack and format become a new revision, the current one plus one, whose change is promoted and restored_from names the revision copied. The playlist keeps its current name, earlier revisions stay as they were, and every screen that shows the playlist updates as for any other write.

If-Match is required and names the current revision (invalid_request when absent, revision_conflict when stale). The pages are resolved again as a structure change resolves them: a selector matches today's media, and media or a web app the revision named that is gone or not ready refuses the promote with the problem a write would get.

Uma revisão cujo conteúdo é o conteúdo atual não muda nada e responde com a playlist atual. Exige uma credencial que publique ao vivo (proibido para uma cujas gravações são propostas para revisão) ou uma sessão de painel do proprietário do projeto ou de um membro que possa aprovar (approver_required); uma playlist que nenhuma pessoa aprovou ainda é playlist_not_approved (409).

Como em qualquer escrita, a resposta traz avisos (PlaylistWarning), entre eles screen_fact_missing quando uma tela que mostra a playlist não tem um valor que o src de um iframe ou os params de aplicativo das páginas promovidas leem.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
promotePlaylistRevision

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório
revisãocaminhoobrigatórioUma revisão da playlist, como listPlaylistRevisions as numera.
If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/revisions/REVISION/promote'

Respostas

StatusSignificadoCorpo e cabeçalhos
200A playlist com a revisão copiada como atual; ETag traz a revisão dela.PlaylistV2 (application/json)
402

feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido.

Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
PATCH/api/playlists/{id}/values

Atualizar valores de playlist

Define, ou com null limpa, os valores de campo de uma playlist criada a partir de um modelo e recria as suas páginas a partir da revisão atual do modelo: os valores são verificados como na criação e as mudanças de marca feitas no modelo desde então chegam a esta cópia. Não envie valores para apenas atualizar a cópia.

Classe de revisão como qualquer gravação de playlist: o proprietário ou um membro que possa aprovar (sessão do painel) e uma credencial Manage gravam ao vivo, um uploader só para as suas playlists e pastas, e Propose transforma a alteração em uma revisão (202). Uma playlist que não foi criada a partir de um modelo é invalid_request. If-Match é opcional.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
PlaylistValuesChange
ID da operação
updatePlaylistValues

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
Screenrig-Review-Notecabeçalhoopcional

Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request).

Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo.

idcaminhoobrigatório
If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.

Campos do corpo da solicitação

CampoDescrição
valores (obrigatório, objeto)Nome do campo para valor; null limpa um campo opcional. Os campos não citados mantêm o valor.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/values'

Respostas

StatusSignificadoCorpo e cabeçalhos
202

A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url.

Uma repetição com Idempotency-Key responde com o mesmo corpo.

ReviewPending (application/json)
200A playlist atualizada; ETag carrega sua revisão.PlaylistV2 (application/json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
GET/api/playlists/{id}/instances

Listar instâncias de playlist

As playlists criadas a partir de um modelo (no máximo 1000, por nome), cada uma com a revisão do modelo de que as suas páginas foram criadas e se o modelo tem uma mais recente.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
listPlaylistInstances

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/instances'

Respostas

StatusSignificadoCorpo e cabeçalhos
200As instâncias.PlaylistInstanceList (application/json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
POST/api/playlists/{id}/expand

Expandir modelo de playlist

As páginas que uma playlist criada a partir do modelo com estes valores teria, verificadas por todas as regras. Apenas calcula; nada é armazenado.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
PlaylistExpandRequest
ID da operação
expandPlaylistTemplate

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório

Campos do corpo da solicitação

CampoDescrição
valores (opcional, objeto)
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/expand'

Respostas

StatusSignificadoCorpo e cabeçalhos
200As páginas.PlaylistExpanded (application/json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
POST/api/playlists/{id}/pages

Adicionar página de playlist

Adiciona uma página a uma playlist aprovada sem enviar as outras: no fim, ou antes da página indicada por before.

As páginas que a playlist já contém são mantidas como armazenadas e verificadas novamente com a nova em uma só passada, de modo que as regras entre páginas (1 a 100 páginas, uma página comum sem visibilidade, 16 páginas de espaço publicitário, 1024 referências de mídia) enxergam o resultado: uma regra violada resulta em invalid_request com field (page.id quando o id já está em uso, before quando não nomeia nenhuma página).

A validade de página da playlist é a visibilidade própria da página (from, until, windows, data), no fuso horário de cada tela, com until exclusivo.

Classe de revisão: em Propor, a alteração se torna uma revisão (202); uma alteração de página posterior da mesma playlist pelo mesmo proponente estende essa revisão pendente enquanto ela se baseia na revisão ao vivo, de modo que alterações sucessivas não se substituem, e a aprovação aplica todas ou nenhuma (review_stale quando a playlist avançou); a revisão pendente de uma alteração de página de outro proponente não é estendida nem substituída, e a alteração aguarda com resource_conflict (409).

Com Gerenciar, ou a partir de uma sessão do dashboard do proprietário ou de um membro que possa aprovar (caso contrário, approver_required), vai ao ar. If-Match é opcional: quando presente, deve ser a revisão ao vivo. Uma playlist que nenhuma pessoa aprovou ainda é playlist_not_approved (409).

Um uploader (docs/uploaders.md) adiciona apenas uma página de mídia de suas pastas a uma de suas playlists (caso contrário, outside_upload_scope); um membro uploader em Propor é o proponente da revisão (kind person).

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
PlaylistPageAdd
ID da operação
addPlaylistPage

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
Screenrig-Review-Notecabeçalhoopcional

Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request).

Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo.

idcaminhoobrigatório
If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.

Campos do corpo da solicitação

CampoDescrição
page (obrigatório, PlaylistPageWriteV2)
before (opcional, string)A página antes da qual ela entra; se omitida, é adicionada ao final. pattern: "^[A-Za-z][A-Za-z0-9_-]{0,63}$"
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/pages'

Respostas

StatusSignificadoCorpo e cabeçalhos
202

A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url.

Uma repetição com Idempotency-Key responde com o mesmo corpo.

ReviewPending (application/json)
200A playlist atualizada; ETag carrega sua revisão.PlaylistV2 (application/json)
402

feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido.

Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
PUT/api/playlists/{id}/pages/{page_id}

Substituir página de playlist

Substitui uma página de uma playlist aprovada, no mesmo lugar, sem enviar as outras. O corpo é a página e seu id é page_id. Uma página desconhecida é not_found.

Todo o resto é como em addPlaylistPage: validado com as páginas mantidas em uma só passada, classe de revisão (202 em Propor, encadeada a uma revisão pendente de alteração de página), no ar com Gerenciar ou por uma pessoa que aprova, If-Match opcional, playlist_not_approved para uma playlist que nenhuma pessoa aprovou.

Um uploader substitui apenas uma página de mídia de suas pastas por outra página de mídia de suas pastas; em Propor, também pode substituir as páginas que aguardam em sua própria revisão.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
PlaylistPageWriteV2
ID da operação
replacePlaylistPage

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório
page_idcaminhoobrigatórioID da página da playlist.
Screenrig-Review-Notecabeçalhoopcional

Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request).

Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo.

If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/pages/PAGE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
202

A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url.

Uma repetição com Idempotency-Key responde com o mesmo corpo.

ReviewPending (application/json)
200A playlist atualizada; ETag carrega sua revisão.PlaylistV2 (application/json)
402

feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido.

Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)
EXCLUIR/api/playlists/{id}/pages/{page_id}

Remover página de playlist

Remove uma página de uma playlist aprovada. A playlist mantém de 1 a 100 páginas e uma página comum sem visibilidade (caso contrário, invalid_request). Uma página desconhecida é not_found. Todo o resto é como em replacePlaylistPage. Um uploader remove apenas uma página de mídia de suas pastas.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
removePlaylistPage

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
idcaminhoobrigatório
page_idcaminhoobrigatórioID da página da playlist.
Screenrig-Review-Notecabeçalhoopcional

Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request).

Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo.

If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/pages/PAGE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
202

A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url.

Uma repetição com Idempotency-Key responde com o mesmo corpo.

ReviewPending (application/json)
200A playlist atualizada; ETag carrega sua revisão.PlaylistV2 (application/json)
402

feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido.

Problema (application/problem+json)
padrão

Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico.

Problema (application/problem+json)