OpenAPI YAMLOpenAPI JSONproblemas YAMLVisão geral da API
Este grupo tem 38 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.
Uploads de mídia
Listar mídias
Lista mídias prontas da mais nova para a mais antiga, no máximo 1000 por página. folder mantém apenas os arquivos diretamente dentro de uma pasta de mídia (seu ID), ou com root somente aqueles na raiz da biblioteca; um ID de pasta bem formado que não nomeia nenhuma pasta não lista nada. next_cursor é a posição da última linha retornada enquanto houver mais linhas; passe-o de volta como after, com os mesmos filtros, para a próxima página. next_cursor é nulo na última página.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| tag | consulta | opcional | Tag de mídia exata. Objetos sem tag são omitidos quando esse filtro está presente. |
| primitivo | consulta | opcional | |
| pasta | consulta | opcional | Um ID de pasta de mídia mantém apenas os arquivos diretamente dentro dessa pasta, não os de suas subpastas; root mantém apenas os arquivos na raiz da biblioteca. Omitir lista todos os arquivos. |
| ids | consulta | opcional | IDs de mídia separados por vírgula, no máximo 200 distintos; mais que isso é invalid_request em ids. Mantém apenas esses arquivos: um id que não nomeia nenhum arquivo pronto fica ausente, e os demais filtros e a paginação continuam valendo. Um valor vazio não lista nada. |
| library | consulta | opcional | 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. |
| depois | consulta | opcional | next_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
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Mídia | MediaList (application/json) |
Criar geração de mídia
Gerar uma imagem estática a partir de um prompt, armazená-la como mídia privada pronta do projeto e faturar seu uso. O POST responde 202 imediatamente com Operation, com ou sem Prefer: respond-async, porque um proxy diante da API descarta uma solicitação que não envia nenhum byte por 100 s e uma imagem estática de alta qualidade pode demorar mais.
Consulte GET /api/operations/{id} até que Operation seja succeeded, quando seu result for {media_id, usage: {quality, credits, usd}} (MediaGenerationUsage), ou failed, quando seu error for o problema. Uma recusa decidida antes de qualquer trabalho do fornecedor (payment_required, reseller_generation_limit, rate_limited, not_ready, invalid_request) ainda responde ao POST.
Nunca inclui bytes de imagem, b64_json, chaves de objeto, URLs assinadas, URLs do fornecedor, custo do fornecedor, tokens do fornecedor ou o nome do modelo de implantação. O prompt são bytes do cliente e não é ecoado.
Antes que o prompt alcance o fornecedor de imagem, o servidor adiciona requisitos fixos de enquadramento: a arte deve preencher a moldura de ponta a ponta, e nenhuma televisão, monitor, tela, display, moldura, borda, suporte, parede, sala, maquete de dispositivo, sombra ou fotografia de sinal instalado pode ser representada, e qualquer texto no prompt do chamador descrevendo onde o sinal será pendurado ou qual dispositivo o mostrará é tratado como metadados de posicionamento, não como assunto.
Regras decorativas e bordas dentro do próprio design permanecem disponíveis. O prompt do chamador nunca é reescrito ou removido e é armazenado inalterado. Idempotency-Key repete a mesma Operation, nunca uma segunda tentativa faturada. Os clientes não fazem PUT nem confirmam os bytes gerados.
A versão armazenada é WebP com perda (qualidade 90) no tamanho exato da proporção com uma borda curta de 1080 px (16:9 é 1920x1080, 9:16 1080x1920, 1:1 1080x1080, 4:3 1440x1080, 3:4 1080x1440, 3:2 1620x1080, 2:3 1080x1620); a tela do fornecedor é recortada centralmente e reamostrada para esse tamanho.
O nome do arquivo é distinto por geração, generated-16x9-1a2b3c4d.webp, com o sufixo retirado do id do mídia. Busque os bytes com GET /api/media/{id}/content. Own-gen-then-upload permanece válido.
No Standard, saldo restante que não cobre o dobro do custo do fornecedor da imagem estática, arredondado para créditos inteiros, após o piso introdutório (negativo 1.000.000 créditos até 2027-01-01, depois zero) retorna payment_required, exceto SCREENRIG__ENVIRONMENT=development, e a admissão antes da chamada ao fornecedor requer saldo acima desse piso pelo mínimo por qualidade: 200 créditos para baixa, 800 para média, 2000 para alta.
Outros planos nunca são recusados por causa do saldo.
Uma organização cobrada por meio de um revendedor é recusada com reseller_generation_limit (402) assim que os clientes delegados do revendedor dela tiverem sido cobrados pelo limite mensal de geração de imagens ($100 ao preço de tabela enquanto o revendedor aguarda análise, $1,000 depois, contado por mês UTC), a menos que o crédito próprio da organização cubra a imagem; uma geração já admitida é concluída.
Uma configuração vazia do fornecedor selecionado retorna not_ready. Somente token de projeto. Uma geração em andamento por organização; mais paralelismo é rate_limited.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| Idempotency-Key | cabeçalho | obrigatório | |
| Prefer | cabeçalho | opcional | Opcional. A rota responde 202 imediatamente com Operation, com ou sem este cabeçalho; consulte Operation. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| prompt (obrigatório, string) | minLength: 1 maxLength: 4000 |
| aspect_ratio (opcional, string) | Permitido: "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" padrão: "16:9" |
| qualidade (opcional, string) | Permitido: "low", "medium", "high" padrão: "medium" |
| tag (opcional, string) | padrão: "^[A-Za-z0-9]{1,32}$" |
| referências (opcional, array) |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/generations'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A geração foi aceita e continua em execução; consulte GET /api/operations/{id} até que Operation seja succeeded (result media_id e usage) ou failed (error). A mesma Idempotency-Key responde com a mesma Operation. | Operação (application/json); cabeçalhos: Preference-Applied, RateLimit-Policy, RateLimit |
| 402 | 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) |
| 404 | 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) |
| 500 | 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) |
Listar pastas de mídia
Lista todas as pastas de mídia no projeto, no máximo 1000, ordenadas por nome. Pastas organizam a biblioteca de mídia, e um seletor de playlist por:folder reproduz os arquivos diretamente dentro de uma pasta. O parent_id de uma pasta é nulo na raiz da biblioteca.
Construa a árvore a partir do parent_id; a pasta de um arquivo é Media.folder_id. library=true lista, em vez disso, as pastas da Biblioteca da organização (somente leitura; um seletor by:folder pode nomear uma).
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| library | consulta | opcional | 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. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media-folders'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Pastas de mídia | MediaFolderList (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) |
Criar pasta de mídia
Cria uma pasta de mídia na raiz da biblioteca (parent_id nulo ou ausente) ou dentro de parent_id. Nomes são aparados, têm de 1 a 100 caracteres Unicode sem controles, não são "." ou "..", e podem repetir. Uma organização tem no máximo 1000 pastas em todos os seus projetos (quota_exceeded) aninhadas no máximo 10 níveis (invalid_request). Emite media.folder_created.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
| project_id | consulta | opcional | Com dashboardSession, o projeto exibido ao criar a pasta. Se fornecido, deve corresponder ao projeto selecionado na sessão; caso contrário, resource_conflict. Um valor vazio ou repetido resulta em invalid_request. A omissão preserva clientes antigos do painel. Solicitações com token de projeto usam seu projeto autorizado. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| nome (obrigatório, string) | Aparado; 1 a 100 caracteres Unicode, sem controles, não . ou .. minLength: 1 maxLength: 100 |
| parent_id (opcional, embutido) | A pasta para criá-la; null ou ausente para a raiz da biblioteca. |
Modelo e respostas da solicitaçã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/media-folders'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Pasta criada. | MediaFolder (application/json); cabeçalhos: ETag |
| 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) |
Obter pasta de mídia
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media-folders/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma pasta de mídia. | MediaFolder (application/json); cabeçalhos: ETag |
| 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) |
Atualizar pasta de mídia
Renomeia uma pasta (nome) ou a move com tudo dentro (parent_id, nulo para a raiz da biblioteca). Uma pasta não pode ser movida para dentro de si mesma ou de uma pasta dentro dela, e a movimentação deve manter todas as pastas dentro de 10 níveis (invalid_request). Uma alteração avança a revisão da pasta e emite media.folder_updated; os mesmos valores são uma operação nula.
If-Match protege opcionalmente a revisão.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| nome (opcional, string) | Aparado; 1 a 100 caracteres Unicode, sem controles, não . ou .. minLength: 1 maxLength: 100 |
| parent_id (opcional, embutido) | Mover a pasta para dentro desta; null para a raiz da biblioteca. |
Modelo e respostas da solicitaçã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/media-folders/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Pasta atualizada. | MediaFolder (application/json); cabeçalhos: ETag |
| 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 pasta de mídia
Exclui uma pasta. Nada dentro é excluído - seus arquivos e pastas sobem para o pai da pasta excluída (a raiz da biblioteca quando não tinha pai), cada arquivo e pasta movido avança sua revisão. Um seletor de playlist por:folder que nomeia a pasta excluída não corresponde a nada; telas em reprodução descartam esse primitivo na próxima resolução do seletor.
Emite media.folder_deleted. If-Match pode proteger a revisão opcionalmente.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media-folders/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | Excluído; seu conteúdo agora está em seu pai. | sem corpo |
| 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) |
Mover mídia
Move arquivos (media_ids) e pastas (folder_ids) para uma pasta (folder_id), ou para a raiz da biblioteca quando folder_id for null, em uma única requisição tudo-ou-nada de no máximo 1000 ids. Cada id deve existir (not_found). Uma pasta não pode se mover para dentro de si mesma ou de uma pasta dentro dela, e a movimentação deve manter todas as pastas dentro de 10 níveis (invalid_request).
Itens já no destino permanecem como estão; cada arquivo e pasta movidos avança sua revisão. Mover arquivos altera o que os seletores by:folder de suas pastas antiga e nova reproduzem, a partir da próxima resolução do seletor de cada tela; mover uma pasta não altera os arquivos próprios de nenhuma pasta. Emite media.moved.
Um movimento de credencial Propose torna cada arquivo movido pendente e enfileira sua revisão de mídia, e os seletores de playlists aprovadas o resolvem pela pasta com que foi aprovado até que uma pessoa aprove a mudança (docs/reviews.md).
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| folder_id (obrigatório, inline) | Pasta de destino; nulo para a raiz da biblioteca. |
| media_ids (opcional, array) | |
| folder_ids (opcional, array) |
Modelo e respostas da solicitaçã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/media/move'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Quantos arquivos e pastas foram movidos. | MediaMoveResult (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) |
Criar upload de mídia
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| Idempotency-Key | cabeçalho | obrigatório | |
| project_id | consulta | opcional | Obrigatório com dashboardSession: o projeto onde o arquivo foi enfileirado. Deve corresponder ao projeto selecionado da sessão, caso contrário resource_conflict. Isso vincula a admissão de upload entre abas. O id de upload retornado permanece com escopo de projeto para upload e commit de bytes. Omitido com um portador de projeto. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| nome do arquivo (obrigatório, string) | Nome dos bytes sendo enviados, como serão enviados: apenas um nome de arquivo com no máximo 255 bytes UTF-8, sem diretório, barra invertida nem caracteres de controle. minLength: 1 maxLength: 255 |
| source_filename (opcional, string) | Nome original do arquivo do chamador antes de qualquer transcodificação no cliente. Apenas o nome do arquivo, com no máximo 255 bytes UTF-8. Armazenado literalmente na mídia pronta como source_filename e usado para derivar filename. minLength: 1 maxLength: 255 |
| content_type (obrigatório, string) | Permitido: "image/png", "image/jpeg", "image/webp", "image/gif", "video/mp4", "video/webm", "audio/mpeg" |
| bytes (obrigatório, inteiro) | mínimo: 1 máximo: 1073741824 |
| sha256 (obrigatório, string) | padrão: "^[a-f0-9]{64}$" |
| tag (opcional, string) | padrão: "^[A-Za-z0-9]{1,32}$" |
| folder_id (opcional, string) | A pasta de mídia em que a mídia pronta cai; se omitida, cai na raiz da biblioteca. A pasta deve existir quando o upload é declarado (caso contrário, invalid_request em folder_id) e quando é confirmado (a operação falha com invalid_request: declare novamente). Um uploader (docs/uploaders.md) deve enviar uma de suas pastas (caso contrário, outside_upload_scope). |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/uploads'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Autorização assinada de curta duração para exatamente um PUT de objeto privado. Envie o método retornado e todos os cabeçalhos retornados exatamente como foram retornados. É também assim que o dashboard faz upload. Seu navegador envia os bytes por PUT diretamente para o armazenamento de objetos, nunca pela API, porque um proxy diante da API recusa um corpo de solicitação superior a 100 MB. Um navegador define Content-Length por si mesmo a partir do corpo, portanto envia todos os cabeçalhos retornados, exceto esse. | MediaUploadSession (application/json); cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 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) |
Commit Media Upload
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| Idempotency-Key | cabeçalho | obrigatório |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| content_type (obrigatório, string) | Permitido: "image/png", "image/jpeg", "image/webp", "image/gif", "video/mp4", "video/webm", "audio/mpeg" |
| bytes (obrigatório, inteiro) | mínimo: 1 máximo: 1073741824 |
| sha256 (obrigatório, string) | padrão: "^[a-f0-9]{64}$" |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/uploads/RESOURCE_ID/commit'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | Declaração exata persistida para verificação assíncrona e publicação privada imutável. | Operação (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) |
Visualizar seletor
Pré-visualização somente leitura das correspondências atuais de imagem ou vídeo prontas do projeto. Retorna ordenação de nome de arquivo e política normalizada; reprodução aleatória embaralha a cada nova passagem no Player. Não avança cursores, concede conteúdo ou altera manifestos. Mais de 1024 correspondências retorna invalid_request.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| fuso horário (opcional, string) | Fuso horário IANA em que a disponibilidade da mídia é lida; padrão UTC. |
| rect (opcional, objeto) | O tamanho rect do primitivo; obrigatório com selector.fit aspect. |
| primitivo (obrigatório, string) | Permitido: "image", "video" |
| selector (obrigatório, inline) |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/selectors/preview'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Correspondências do seletor atual. | SelectorPreview (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) |
Obter mídia
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Metadados de mídia privada prontos. Bytes originais estão disponíveis para o projeto proprietário através da rota de exportação do projeto e para uma tela apenas por uma concessão exata do manifesto em tempo de execução. | Mídia (application/json); cabeçalhos: ETag |
| 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 Media
Define ou limpa a(s) tag(s) do item de mídia. A alteração das tags por uma credencial Propose torna o item pendente e enfileira sua revisão de mídia; os seletores de playlists aprovadas o resolvem pelas tags com que foi aprovado até que uma pessoa aprove a mudança (docs/reviews.md). Um patch que mantém o mesmo conjunto de tags é aplicado e o item permanece aprovado.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Mídia pronta com a tag atualizada. Seletores de tag em tempo de execução observam a mudança na próxima atualização do loop da playlist. | Mídia (application/json); cabeçalhos: ETag |
| 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 mídia
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | Marcado para exclusão. Concessões desejadas ou ativas referenciadas não podem ser excluídas. | sem corpo |
| 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 Media Tags
Uma pessoa conectada define as tags de um item de mídia. tags é o conjunto novo completo, mantido ordenado: a tag única de um item, quando existe, conta como uma de suas tags e é substituída pelas demais, então envie-a novamente para mantê-la. Um array vazio limpa todas as tags, e uma tag malformada ou repetida, ou mais de 32, é invalid_request.
É a alteração de tag que patchMedia faz sob uma credencial Manage, na sessão do painel: a revisão da mídia avança uma unidade e media.updated carrega a pessoa como ator, independentemente de o conjunto ter mudado. A mudança de uma pessoa é ao vivo, nunca uma revisão.
Mídia aguardando revisão humana (review_state pendente, deixada por upload ou alteração de credencial Propose) é recusada com media_pending_review (409) e nada muda: decida a revisão em Revisões primeiro, para que uma edição de tag nunca aprove uma proposta de agente. Seletores de playlist por tag observam as novas tags na próxima atualização do loop da playlist.
O corpo não tem outro membro. If-Match carrega a revisão da mídia e é obrigatório (invalid_request quando ausente, revision_conflict quando obsoleto). Apenas sessão do dashboard; agentes alteram tags com patchMedia. listMedia com tag encontra o item por suas novas tags.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| id | caminho | obrigatório | |
| If-Match | cabeçalho | obrigatório | A revisão atual do item de mídia, citada ou simples (o ETag da última leitura). Uma revisão stale é revision_conflict com current_revision. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| tags (obrigatório, array) | Conjunto de tags de substituição; um array vazio o limpa. |
Modelo e respostas da solicitaçã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/media/RESOURCE_ID/tags'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | O item de mídia pronto conforme armazenado agora; o ETag carrega sua revisão. | Mídia (application/json); cabeçalhos: ETag |
| 409 | media_pending_review — o item aguarda revisão de uma pessoa; decida primeiro. | Problema (application/problem+json) |
| 412 | revision_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) |
Aplicar patch na disponibilidade da mídia
Define quando um item de mídia pode ser escolhido pelos seletores dinâmicos (all, tag e folder) que o reproduzem, ou remove a regra com availability null. A regra é a da programação: from e until (civis, precisão de minuto, until exclusivo), ocorrências windows, monthly e dates e datas except, lidos no fuso horário de cada tela que resolve o seletor.
Um arquivo fora de sua regra é deixado de fora da seleção no próximo limite do loop da playlist e volta quando a regra vigora de novo; o limite de uma janela é seguido em até um minuto após o próximo loop do Player. Nenhuma revisão da playlist ou do manifesto muda. IDs explícitos (seletor por id ou ids) ignoram a regra, assim como tudo o que não é um seletor dinâmico.
Uma tela offline mantém sua última seleção até se reconectar. Definir a regra que o item já tem não muda nada. Uma credencial Propose não pode defini-la (insufficient_access): quando a mídia é reproduzida é decisão de uma pessoa com acesso Manage. Mídia aguardando a revisão de uma pessoa é recusada com media_pending_review.
If-Match carrega a revisão da mídia e é obrigatório.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | obrigatório | A revisão atual do item de mídia, entre aspas ou sem (o ETag da última leitura). Uma revisão desatualizada é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| availability (obrigatório, inline) | A nova regra, ou null para que o arquivo fique sempre disponível. |
Modelo e respostas da solicitação
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/media/RESOURCE_ID/availability'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | O item de mídia pronto conforme armazenado agora; o ETag carrega sua revisão. | Mídia (application/json); cabeçalhos: ETag |
| 409 | media_pending_review — o item aguarda revisão de uma pessoa; decida primeiro. | Problema (application/problem+json) |
| 412 | revision_conflict — If-Match está desatualizado. | 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) |
Substituir mídia
Substitui no local o arquivo de um item de mídia pronto por um upload declarado (createMediaUpload) cujos bytes foram gravados, em vez de confirmá-lo como nova mídia.
A mídia mantém o seu id, de modo que cada playlist e cada agendamento que a cita reproduz o novo arquivo sem ser reagendado, e os seletores de pasta, tag e todas as mídias que a escolhem passam a reproduzi-lo na próxima resolução. A substituição deve ser do mesmo tipo de arquivo (imagem por imagem, vídeo por vídeo, áudio por áudio); outro tipo resulta em invalid_request.
Uma mudança de proporção é permitida: o resultado da operação traz uma entrada warnings aspect_ratio_changed com as playlists que usam o item. Todas as regras de upload se aplicam (o limite de bytes de vídeo do plano, os limites de dimensão e a cota de armazenamento).
O arquivo em uso permanece no histórico de versões da mídia (listMediaVersions) e conta nos bytes armazenados até a sua versão ser excluída. If-Match, quando enviado, é a revisão da mídia lida pelo chamador (revision_conflict quando desatualizada).
A resposta é a operação do upload, como em commitMediaUpload: consulte getOperation; o resultado de uma operação bem-sucedida é {media_id, id, version, warnings}. Bytes idênticos ao arquivo em uso não substituem nada e fazem a operação falhar com resource_conflict.
Com Propose efetivo, a substituição aguarda revisão: a operação é bem-sucedida com result.status pending_review e result.review_id, a mídia continua reproduzindo o seu arquivo até uma pessoa aprovar, e uma substituição mais recente da mesma mídia substitui a que espera.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | A revisão atual do item de mídia, entre aspas ou não. Omitida, significa qualquer uma. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| upload_id (obrigatório, string) | O id de um upload declarado com createMediaUpload e gravado em seu upload_url, sem confirmação. minLength: 1 |
| note (opcional, string) | Uma nota guardada com a nova versão. maxLength: 280 |
Modelo e respostas da solicitaçã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/media/RESOURCE_ID/replace'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A substituição foi registrada; a operação do upload traz o seu resultado. | Operação (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) |
Listar versões da mídia
Lista as versões de um item de mídia, da mais recente para a mais antiga, com a versão em uso primeiro (current: true). Uma versão é um arquivo que o item já teve: number é a sua época de conteúdo mais um (1 para o upload, mais um a cada substituição, restauração ou alteração da sincronização da mídia), e os bytes são mantidos até a versão ser excluída.
Leia os bytes de uma versão com GET /api/media/{id}/content?version=N.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| cursor | consulta | opcional | O next_cursor da página anterior. |
| limite | consulta | opcional |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/versions'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma página de versões. | MediaVersionPage (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) |
Excluir versão da mídia
Remove uma versão anterior: o registro some, os bytes saem de imediato dos bytes armazenados do projeto e o objeto é removido após 24 horas, a menos que outra versão ou a versão em uso mantenha o mesmo arquivo. A versão em uso não pode ser excluída (resource_conflict), e nenhuma versão pode ser excluída enquanto uma substituição da mídia aguarda revisão.
Uma versão excluída não pode ser restaurada.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| versão | caminho | obrigatório | Um número de versão do item de mídia (listMediaVersions). |
Modelo e respostas da solicitação
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/versions/VERSION'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | A versão foi removida. | sem corpo |
| 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) |
Restaurar versão da mídia
Coloca uma versão anterior de volta em uso como nova versão, na próxima época de conteúdo da mídia: a mídia mantém o seu id e a revisão avança uma unidade, de modo que cada playlist e cada agendamento que a cita volta a reproduzir esse arquivo sem ser reagendado. A versão copiada permanece no histórico e compartilha os bytes; a nova versão conta nos bytes armazenados como qualquer outra.
A versão em uso não pode ser restaurada (resource_conflict). If-Match, quando enviado, é a revisão da mídia lida pelo chamador. O corpo pode trazer uma nota. Com Propose efetivo, a restauração vira uma revisão: 202 pending_review, e a mídia mantém o seu arquivo até uma pessoa aprovar.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| versão | caminho | obrigatório | Um número de versão do item de mídia (listMediaVersions). |
| If-Match | cabeçalho | opcional | A revisão atual do item de mídia, entre aspas ou não. Omitida, significa qualquer uma. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| note (opcional, string) | Uma nota guardada com a nova versão. maxLength: 280 |
Modelo e respostas da solicitaçã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/media/RESOURCE_ID/versions/VERSION/restore'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A mídia como está agora e os avisos sobre o arquivo restaurado. | MediaRestored (application/json); cabeçalhos: ETag |
| 202 | A restauração aguarda a revisão de uma pessoa. | MediaRestorePending (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) |
Exportar conteúdo de mídia
Exporta a versão imutável original pertencente ao projeto autenticado. O portador do projeto é cobrado o crédito normal da solicitação API autenticada, e os bytes de resposta completos são registrados como egressos project_media_export. O identificador de mídia nunca é authority: o identificador de outro projeto retorna not_found.
A API transmite a partir do armazenamento privado e nunca publica uma chave de objeto, URL de armazenamento ou GET assinado. O nome do arquivo do anexo é o identificador da mídia mais a extensão canônica para o tipo de conteúdo verificado. A leitura de conteúdo nunca é recusada por causa do saldo.
Uma sessão do painel visualiza os mesmos bytes inline: bytes concluídos são registrados como dashboard_media egress, e a resposta é privada, no-cache para que o navegador mantenha uma cópia e a revalide com If-None-Match. A resposta de um portador de projeto permanece privada, no-store.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| Intervalo | cabeçalho | opcional | V1 aceita apenas um intervalo de byte. |
| If-None-Match | cabeçalho | opcional | ETag SHA-256 forte exato do mídia retornado por esta rota. |
| versão | consulta | opcional | Ler esta versão da mídia (listMediaVersions) em vez da que está em uso. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/content'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Rendição original completa. | string (image/png), string (image/jpeg), string (image/webp), string (image/gif), string (video/mp4), string (video/webm), string (audio/mpeg); cabeçalhos: Accept-Ranges, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options |
| 206 | Um intervalo de bytes correto segundo o padrão. | string (image/png), string (image/jpeg), string (image/webp), string (image/gif), string (video/mp4), string (video/webm), string (audio/mpeg); cabeçalhos: Accept-Ranges, Content-Range, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options |
| 304 | O ETag imutável exato do mídia corresponde a If-None-Match. Nenhum corpo ou incremento de saída é produzido. | sem corpo; cabeçalhos: ETag, Cache-Control |
| 402 | 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) |
| 416 | Intervalo insatisfatório ou malformado. | Problema (application/problem+json); cabeçalhos: Accept-Ranges, Content-Range |
| 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) |
Conteúdo de mídia principal
Aplica as mesmas regras de propriedade do projeto, condicionais, intervalo e armazenamento privado que exportMediaContent sem abrir ou transferir a versão armazenada.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| Intervalo | cabeçalho | opcional | V1 aceita apenas um intervalo de byte. |
| If-None-Match | cabeçalho | opcional | ETag SHA-256 forte exato do mídia retornado por esta rota. |
| versão | consulta | opcional | Ler esta versão da mídia (listMediaVersions) em vez da que está em uso. |
Modelo e respostas da solicitação
curl --request HEAD --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/content'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Metadados de rendição completa sem corpo. | sem corpo; cabeçalhos: Accept-Ranges, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options |
| 206 | Metadados de intervalo de bytes sem corpo. | sem corpo; cabeçalhos: Accept-Ranges, Content-Range, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options |
| 304 | O ETag imutável exato do mídia corresponde a If-None-Match. Nenhum corpo é produzido. | sem corpo; cabeçalhos: ETag, Cache-Control |
| 402 | O medidor de API de 1 crédito recusou a requisição bearer de um projeto Standard além da franquia, sem crédito. Uma resposta HEAD não carrega corpo de problema. | sem corpo |
| 416 | Intervalo insatisfatório ou malformado. | Problema (application/problem+json); cabeçalhos: Accept-Ranges, Content-Range |
| 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) |
Listar contas de sincronização de mídia
Lists the project's media sync accounts, newest first (200 per page; next_cursor continues). Each shows its tenant and client id, its state and its last test; the client secret is never returned, only whether one is set and its last four characters.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| cursor | consulta | opcional | O next_cursor da página anterior. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | As contas do projeto. | MediaSyncAccountList (application/json); cabeçalhos: Cache-Control |
| 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) |
Criar conta de sincronização de mídia
Adiciona uma conta que sincroniza por leitura. kind microsoft365 armazena as credenciais do próprio aplicativo do Microsoft Entra do projeto, para que as sincronizações possam ler uma pasta do SharePoint ou do OneDrive for Business: config.tenant_id é o ID do diretório ou o domínio primário do tenant (common, organizations e consumers são recusados), config.client_id o ID do aplicativo, e secret o valor de um dos segredos de cliente do aplicativo; o aplicativo precisa da permissão de aplicativo Sites.Selected do Microsoft Graph (concedida em cada site) ou Files.Read.All, com consentimento do administrador.
Em vez desses três, config.connection_id nomeia uma conexão da Microsoft do projeto (createConnection), em qualquer um dos dois modos, que faz login e guarda o segredo. kind canva só aceita um nome: a conta fica em pending_consent e a resposta traz authorize_url, um link de uso único (válido até authorize_expires_at) que a pessoa dona da conta do Canva abre, logada no Canva, para conectá-la pela integração do Canva do screenRIG.
A concessão pertence ao projeto, então as sincronizações dela duram mais que a pessoa que a conectou.
Um servidor sem a integração com o Canva responde 409 canva_not_configured. kind dropbox funciona como canva: a conta fica em pending_consent e authorize_url é um link de uso único que a pessoa dona da conta do Dropbox abre, logada no Dropbox, para permitir acesso somente leitura (files.metadata.read, files.content.read, account_info.read, sharing.read).
A autorização passa pelo aplicativo do Dropbox do screenRIG, ou pelo aplicativo do Dropbox do próprio cliente quando config.app_key o nomeia (PKCE, então sem segredo do aplicativo; o aplicativo precisa listar https://API_ORIGIN/api/dropbox/callback como URI de redirecionamento).
Um servidor sem o aplicativo do Dropbox do screenRIG responde 409 dropbox_not_configured a uma conta dropbox sem app_key. kind google_drive fica em ready de imediato e lê as pastas compartilhadas com config.service_account_email: a conta de serviço do screenRIG ou a própria do cliente, quando secret é a chave JSON dessa conta de serviço.
Uma pasta compartilhada com a conta de serviço do screenRIG só sincroniza quando um membro do projeto com e-mail verificado a compartilhou ou é o proprietário dela. Um servidor sem a conta de serviço do screenRIG responde 409 google_drive_not_configured a uma conta google_drive sem chave. Um segredo é selado em repouso e nunca é devolvido nem registrado em log. Adiciona media_sync_account.created.
Uma nova tentativa exata com a mesma Idempotency-Key devolve a mesma conta (uma nova tentativa para uma conta do Canva ou do Dropbox recebe um novo link).
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| kind (obrigatório, string) | Permitido: "microsoft365", "canva", "dropbox", "google_drive" |
| nome (obrigatório, string) | minLength: 1 maxLength: 80 |
| config (opcional, object) | Para microsoft365, tenant_id e client_id (ambos) com secret, ou somente connection_id: o id de uma conexão da Microsoft deste projeto. Para dropbox, app_key nomeia opcionalmente o aplicativo do Dropbox do próprio cliente. Não aceito para canva ou google_drive. |
| secret (opcional, string) | Obrigatório para microsoft365 com tenant_id e client_id: o valor de um dos segredos de cliente do aplicativo (não o id dele), com no máximo 1024 caracteres. Para google_drive, opcional: a chave JSON da conta de serviço do Google Cloud do próprio cliente (type service_account), cujo client_email se torna o service_account_email da conta; sem ela, a conta lê por meio da conta de serviço do screenRIG. Não aceito com connection_id, nem para canva ou dropbox. minLength: 1 maxLength: 8192 |
Modelo e respostas da solicitaçã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://api.screenrig.ai/api/media-sync-accounts'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Criada, com o segredo mascarado; uma conta do Canva ou do Dropbox também traz authorize_url. | MediaSyncAccountConnect (application/json); cabeçalhos: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — o plano do projeto não inclui a sincronização de mídia; required_plan nomeia o plano que a inclui. | Problema (application/problem+json) |
| 409 | canva_not_configured (este servidor não tem integração com o Canva; somente kind canva), dropbox_not_configured (sem o aplicativo do Dropbox do screenRIG e sem config.app_key; somente kind dropbox), google_drive_not_configured (sem a conta de serviço do screenRIG e sem chave; somente kind google_drive), resource_conflict ou idempotency_mismatch. | 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) |
Obter conta de sincronização de mídia
Uma conta de sincronização de mídia, com o segredo mascarado.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma conta. | MediaSyncAccount (application/json); cabeçalhos: ETag, Cache-Control |
| 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) |
Atualizar conta de sincronização de mídia
Changes the name, tenant, client id or secret; an omitted secret keeps the stored one. A change of credentials discards the last test. A Canva account takes only a name; media sync account connect renews its connection. Appends media_sync_account.updated. If-Match guards the revision.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| nome (opcional, string) | minLength: 1 maxLength: 80 |
| config (opcional, MediaSyncAccountConfig) | |
| secret (opcional, string) | Substitui o segredo armazenado (um segredo de cliente microsoft365, ou a chave de conta de serviço própria de uma conta google_drive, que deve pertencer ao mesmo client_email); omita-o para manter o armazenado. minLength: 1 maxLength: 8192 |
Modelo e respostas da solicitaçã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://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Conta atualizada. | MediaSyncAccount (application/json); cabeçalhos: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — o plano do projeto não inclui a sincronização de mídia; required_plan nomeia o plano que a inclui. Uma alteração que apenas substitui o segredo é sempre permitida, de modo que uma conta cujo segredo do cliente expirou continua atualizada. | Problema (application/problem+json) |
| 412 | revision_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) |
Excluir conta de sincronização de mídia
Deletes the account. Refused 409 resource_conflict while a sync reads through it; the detail names those syncs. Deleting a Canva account also revokes its tokens at Canva (a failure to revoke is logged and does not undo the delete). Appends media_sync_account.deleted. If-Match guards the revision.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | Excluído. | sem corpo |
| 409 | resource_conflict (a conta é usada por sincronizações) ou idempotency_mismatch. | Problema (application/problem+json) |
| 412 | revision_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) |
Testar conta de sincronização de mídia
Signs in with the account's app and reports what Microsoft granted it: whether the credentials work and which Graph application permissions the token carries (Sites.Selected, Files.Read.All and the like). Sites.Selected is reported with a warning, because each site needs a grant for the app.
For a Canva account it reports whether Canva still accepts the connection. It does not judge a site's grant, a folder or a design, or consent beyond what the token carries. The result is stored as last_test. A failed check is ok false in the answer, not a problem.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID/test'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | O que o token do app carrega. | MediaSyncTest (application/json); cabeçalhos: Cache-Control |
| 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) |
Conectar a conta de sincronização de mídia
Gera um novo link de consentimento de uso único (authorize_url, válido até authorize_expires_at) para uma conta do Canva ou do Dropbox, para enviar à pessoa dona dessa conta; ela o abre logada no Canva ou no Dropbox e permite o acesso. Ele substitui qualquer link anterior.
Uma conta conectada permanece conectada até que o novo consentimento seja concluído, então isto também renova uma conexão (estado reconnect_required) ou a move para outra conta do Canva ou do Dropbox. O link é uma credencial do consentimento: envie-o somente a essa pessoa.
Um servidor sem a integração com o Canva responde 409 canva_not_configured; uma conta do Dropbox sem app_key em um servidor sem o aplicativo do Dropbox do screenRIG responde 409 dropbox_not_configured.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID/connect'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A conta com um novo authorize_url. | MediaSyncAccountConnect (application/json); cabeçalhos: ETag, Cache-Control |
| 400 | invalid_request — a conta não é uma conta do Canva nem do Dropbox. | Problema (application/problem+json) |
| 409 | canva_not_configured (este servidor não tem integração com o Canva) ou dropbox_not_configured (sem o aplicativo do Dropbox do screenRIG e sem app_key na conta). | 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) |
Listar designs de sincronização de mídia
Lists the Canva designs the connected person can see, most recently changed first (50 per page; continuation continues), optionally those matching query. Each shows its id, title, last change, page count and a view address. An account that is not connected is 409 canva_reconnect_required; a server without the Canva integration is 409 canva_not_configured.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| consulta | consulta | opcional | Lista apenas os designs cujo título ou texto corresponde. |
| continuação | consulta | opcional | A continuação da página anterior. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-sync-accounts/RESOURCE_ID/designs'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma página de designs. | MediaSyncDesignList (application/json); cabeçalhos: Cache-Control |
| 400 | invalid_request: a conta não é uma conta do Canva, ou query ou continuation não é válido. | Problema (application/problem+json) |
| 409 | canva_reconnect_required (a conta não está conectada ou o Canva não honra mais a conexão) ou canva_not_configured (este servidor não tem integração com o Canva). | 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) |
Concluir o consentimento do Canva
Para onde o Canva envia a pessoa depois que ela permite (ou recusa) o acesso em um link de autorização.
It carries no credential: the one-time state in the query finds the Canva account, must be unexpired and is used once, in the same write that stores the connection. screenRIG exchanges the code (PKCE, client authentication with the integration's credentials), reads whose Canva account it is, seals the tokens and appends media_sync_account.connected.
The answer is a short page naming the account and the project it was connected to; an error, an unknown, expired or used state, or a refused code renders the same page with the reason and changes nothing. Answers only on the API host.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| código | consulta | opcional | |
| estado | consulta | opcional | |
| erro | consulta | opcional |
Modelo e respostas da solicitação
curl --request GET 'https://api.screenrig.ai/api/canva/callback'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A página que informa que a conta está conectada. | string (text/html) |
| 400 | A página que informa por que nada foi conectado. | string (text/html) |
| 502 | Não foi possível acessar o Canva; o mesmo link volta a funcionar. | string (text/html) |
| 409 | O Canva não está configurado neste servidor. | string (text/html) |
| 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) |
Concluir o consentimento do Dropbox
Para onde o Dropbox envia a pessoa depois que ela permite (ou recusa) o acesso em um link de consentimento.
Ela não leva nenhuma credencial: o state de uso único na consulta encontra a conta do Dropbox, não pode ter expirado e é usado uma vez, na mesma gravação que armazena a conexão. O screenRIG troca o código (PKCE, com o aplicativo do Dropbox do screenRIG ou o app_key próprio da conta), lê de quem é a conta do Dropbox, sela os tokens e adiciona media_sync_account.connected.
The answer is a short page naming the account and the project it was connected to; an error, an unknown, expired or used state, or a refused code renders the same page with the reason and changes nothing. Answers only on the API host.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| código | consulta | opcional | |
| estado | consulta | opcional | |
| erro | consulta | opcional |
Modelo e respostas da solicitação
curl --request GET 'https://api.screenrig.ai/api/dropbox/callback'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A página que informa que a conta está conectada. | string (text/html) |
| 400 | A página que informa por que nada foi conectado. | string (text/html) |
| 502 | Não foi possível acessar o Dropbox; o mesmo link volta a funcionar. | string (text/html) |
| 409 | A conta não tem app_key e o aplicativo do Dropbox do screenRIG não está configurado neste servidor. | string (text/html) |
| 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) |
Listar sincronizações de mídia
Lists the project's media syncs, newest first (200 per page; next_cursor continues), optionally of one account_id or state. Each shows its source folder, the media folder it fills, its cadence, state, next run and the summary of its last run.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| cursor | consulta | opcional | O next_cursor da página anterior. |
| account_id | consulta | opcional | Lista apenas as sincronizações que leem por esta conta. |
| estado | consulta | opcional | Lista apenas as sincronizações neste estado. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-syncs'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | As sincronizações do projeto. | MediaSyncList (application/json); cabeçalhos: Cache-Control |
| 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) |
Criar sincronização de mídia
provider canva: lê o design (design é o id dele ou o endereço canva.com/design/ID/...) por uma conta do Canva conectada e armazena a sincronização, que vence agora.
Each run asks Canva for the design's last change and, when it moved, exports the pages (pages, default all; format png gives one image per page and mp4 one video) and imports them into the media folder, replacing the bytes of a page already imported under the same media id so the playlists that use it update; a page the design no longer has leaves play like a removed SharePoint file.
Um design que o Canva não mostra mais interrompe a sincronização no estado error (erro de execução design_unavailable) e mantém a mídia.
Um design ou página que a conta não consegue ver é 409 media_sync_source_refused. provider dropbox: url é o endereço da pasta no Dropbox (https://www.dropbox.com/home/...), um link de pasta compartilhada que a conta conectada adicionou ao seu Dropbox, ou um caminho que começa com /; ele é lido uma vez por meio de uma conta do Dropbox conectada e a sincronização é armazenada, com execução prevista para agora.
As pastas em um espaço de equipe são lidas a partir da raiz da equipe. Cada execução continua a partir da posição salva do Dropbox na pasta, então apenas as alterações são lidas.
Uma pasta que a conta não consegue abrir é 409 media_sync_source_refused; uma conta cuja conexão o Dropbox não honra mais é 409 dropbox_reconnect_required. provider google_drive: url é o endereço da pasta no Google Drive (https://drive.google.com/drive/folders/ID) ou o id dela, compartilhada (a função Viewer basta) com o service_account_email da conta.
Cada execução lista a pasta e compara o checksum de cada arquivo. Os arquivos do Google Docs, Sheets e Slides são ignorados como unsupported_type. Uma pasta que o endereço não consegue abrir é 409 media_sync_source_refused.
Pela conta de serviço do screenRIG, a pasta precisa ser compartilhada por um membro do projeto com e-mail verificado ou pertencer a ele (403 media_sync_sharer_not_member), e cada execução verifica isso de novo (o erro de execução sharer_not_member interrompe a sincronização no estado error). provider sharepoint: lê o endereço da pasta por meio da conta (um endereço de site do SharePoint como https://TENANT.sharepoint.com/sites/SITE/LIBRARY/FOLDER, ou um link de compartilhamento; o aplicativo precisa conseguir vê-lo: Sites.Selected precisa de uma concessão no site, um link de compartilhamento precisa de Files.Read.All) e armazena a sincronização, com execução prevista para agora. folder_id é a pasta de mídia para onde os arquivos vão; sem ele, a sincronização cria uma com o nome da pasta de origem.
Each run imports the images (png, jpeg, webp, gif), videos (mp4, webm) and audio (mp3) directly in the source folder, replaces the bytes of a file that changed under the same media id so playlists that use it update, and takes a file removed at the source out of play: its media is deleted, or, while screens still hold it, moved to a Removed subfolder and deleted later.
Subfolders are ignored; other files are listed as skipped with the reason. every is the seconds between runs, 300 to 86400, default 900. A folder the provider refuses is 409 media_sync_source_refused and one it cannot reach is 500 media_sync_source_unavailable; nothing is stored. Appends media_sync.created.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| provider (obrigatório, string) | Permitido: "sharepoint", "canva", "dropbox", "google_drive" |
| account_id (obrigatório, string) | Uma conta do tipo do provedor: microsoft365 para sharepoint, canva, dropbox ou google_drive. |
| url (opcional, string) | sharepoint (obrigatório): o endereço da pasta no SharePoint ou um link de compartilhamento, lido uma vez para encontrar a pasta e não armazenado. dropbox (obrigatório): o endereço da pasta no Dropbox, um link de pasta compartilhada que a conta adicionou, ou um caminho que começa com /. google_drive (obrigatório): o endereço da pasta no Google Drive ou o id dela. maxLength: 4096 |
| design (opcional, string) | canva (obrigatório): o id do design ou o endereço dele canva.com/design/ID/... maxLength: 2048 |
| pages (opcional, array) | canva: as páginas a sincronizar; omita para todas. Um design que depois tiver menos páginas tira de reprodução as que faltam. |
| format (opcional, string) | canva: png gera uma imagem por página; mp4 um vídeo das páginas. Allowed: "png", "mp4" default: "png" |
| folder_id (opcional, string) | A pasta de mídia onde os arquivos caem. Omita para criar uma com o nome da pasta de origem. |
| every (opcional, inteiro) | Segundos entre execuções; o padrão é 900. minimum: 300 maximum: 86400 |
| nome (opcional, string) | Por padrão, o nome da pasta de origem. minLength: 1 maxLength: 80 |
Modelo e respostas da solicitaçã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://api.screenrig.ai/api/media-syncs'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Criada, vence agora. | MediaSync (application/json); cabeçalhos: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — o plano do projeto não inclui a sincronização de mídia; required_plan nomeia o plano que a inclui. | Problema (application/problem+json) |
| 403 | media_sync_sharer_not_member — uma pasta do Google Drive lida pela conta de serviço do screenRIG que nenhum membro do projeto com e-mail verificado compartilhou nem possui. | Problema (application/problem+json) |
| 409 | media_sync_source_refused (o provedor recusou o aplicativo, a permissão dele ou a pasta), dropbox_reconnect_required (a conta do Dropbox precisa ser conectada de novo), dropbox_not_configured, google_drive_not_configured, resource_conflict (a mesma origem já está sincronizada nessa pasta de mídia) ou idempotency_mismatch. | Problema (application/problem+json) |
| 500 | media_sync_source_unavailable: não foi possível acessar o provedor ou ele respondeu com uma falha. | 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) |
Obter sincronização de mídia
Uma sincronização de mídia, com o resumo da última execução.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-syncs/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma sincronização. | MediaSync (application/json); cabeçalhos: ETag, Cache-Control |
| 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) |
Atualizar sincronização de mídia
Changes the name, every (seconds between runs), state (active or paused; active also resumes a sync an error stopped) or folder_id. A new folder_id points the sync at another media folder and makes its next run read the whole source again, which puts every synced file there. Appends media_sync.updated. If-Match guards the revision.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
| Campo | Descrição |
|---|---|
| nome (opcional, string) | minLength: 1 maxLength: 80 |
| every (opcional, inteiro) | Segundos entre execuções. minimum: 300 maximum: 86400 |
| state (opcional, string) | Permitidos: "active", "paused" |
| folder_id (opcional, string) |
Modelo e respostas da solicitaçã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://api.screenrig.ai/api/media-syncs/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Sincronização atualizada. | MediaSync (application/json); cabeçalhos: ETag, Cache-Control |
| 400 | invalid_request. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — o plano do projeto não inclui a sincronização de mídia; required_plan nomeia o plano que a inclui. Pausar uma sincronização é sempre permitido. | Problema (application/problem+json) |
| 412 | revision_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) |
Excluir sincronização de mídia
Interrompe a sincronização e esquece qual arquivo de origem virou qual mídia. A mídia e a pasta dela permanecem. Registra media_sync.deleted. If-Match protege a revisão.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir 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
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-syncs/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | Excluído. | sem corpo |
| 412 | revision_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) |
Executar sincronização de mídia
Faz a sincronização vencer agora e responde 202; um worker a executa em cerca de 30 segundos e a resposta de GET /api/media-syncs/{id} mostra o last_run dela.
Uma sincronização interrompida por erro volta a executar; uma sincronização pausada é recusada até ser retomada. force=true faz uma sincronização do Canva exportar o design mesmo quando o Canva o informa como inalterado (recusado para uma do SharePoint: ela já baixa todos os arquivos alterados).
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| id | caminho | obrigatório | |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
| forçar | consulta | opcional | Uma sincronização do Canva exporta o design mesmo quando o Canva o informa como inalterado. |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/media-syncs/RESOURCE_ID/run'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A sincronização, que vence agora. | MediaSync (application/json); cabeçalhos: ETag, Cache-Control |
| 400 | invalid_request. | 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) |