Telas
Uma tela é um Player. Esses comandos a leem, apontam para uma playlist e gerenciam sua vida. Pré-condições de revisão são opcionais em gravações.
Tags agrupam telas em frotas. Cada tela carrega de 0 a 16 tags únicas de 1 a 32 letras ou dígitos, definidas com screen tag. screen assign, screen reload, screen toast, screen tag e screen screenshot recebem um id de tela, vários ids ou --tag TAG, e uma resposta de frota informa cada tela: veja Resultados da frota.
As pastas de telas agrupam as telas por local, uma pasta por tela. Um comando de frota também aceita --folder ID: veja Pastas de telas.
Uma tela em uma pasta protegida responde a uma mudança de playlist com pending_review para um segundo aprovador, e recusa mudanças de tag, campo, localização, fuso horário, videowall, substituição, exclusão, arquivamento, suspensão, display, volume, toast e play-page com protected_target (saída 5).
Um aviso storage_full em screen list, screen show, screen update, screen assign ou screen publish significa que o dispositivo que executa o Player não tem espaço para o conteúdo dele: libere armazenamento ali e tente novamente.
screen pair#
Pareie um Player com o código exibido na tela dele.
screen pair <code...> [--name NAME] [--folder ID]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<code...> | string | sim | nenhum | O código de pareamento de seis caracteres que o Player mostra. Espaços, traços e maiúsculas e minúsculas são ignorados, então um código exibido em dois grupos funciona com ou sem aspas. |
--name NAME | string | não | um Screen N não utilizado | Nome de exibição da tela, de 1 a 120 caracteres. |
--folder ID | string | não | raiz do projeto | A pasta de telas sfd_ onde colocar a tela. Um agente limitado a pastas de telas deve nomear uma pasta do seu escopo; a raiz do projeto e qualquer outra pasta respondem outside_screen_scope (saída 3). |
screenrig screen pair "$PAIRING_CODE" --name "Lobby"
screenrig screen pair "$PAIRING_CODE" --folder sfd_01EXAMPLEFOLDER000000000A resposta traz public_url e a screen pareada. O Player conclui o pareamento na próxima vez que contatar o serviço, sem nada a fazer no display: screen show informa state active e online true quando isso acontece. Após uma solicitação interrompida, execute novamente o comando idêntico para reutilizar a chave de idempotência salva.
browser setup#
Concluir a configuração de um Player de navegador a partir do código que ele exibe.
browser setup --code CODE [--open]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
--code CODE | string | sim | nenhum | O código de configuração que o Player do navegador exibe. |
--open | boolean | não | desligado | Abrir o Player do navegador. |
screenrig browser setup --code SETUP_CODE --openA resposta traz code, status (claimed), screen_id e player_public_url da tela. O CLI retém uma URL que falha nas verificações de segurança, com o aviso player_url_withheld. Um código inválido ou expirado não cria nenhuma tela. Após uma solicitação interrompida, execute novamente o comando idêntico.
screen list#
Listar telas. Telas arquivadas são omitidas, a menos que você as solicite.
screen list [--state archived] [--tag TAG] [--folder ID|root] [--field NAME=VALUE...] [--near LAT,LON,KM]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
--state | string | não | telas ativas | O único valor aceito é archived, que lista somente telas arquivadas. |
--tag TAG | string | não | tela inteira | Lista apenas telas que possuem esta tag exata. |
--folder ID|root | string | não | tela inteira | Lista apenas as telas diretamente dentro desta pasta de telas sfd_, não as de suas subpastas, ou com root apenas as telas fora de qualquer pasta. |
--field NAME=VALUE | string | não | nenhum | Lista apenas telas cujo campo NAME contém exatamente VALUE. Repetível, cada nome uma vez; uma tela deve corresponder a todos. |
--near LAT,LON,KM | string | não | nenhum | Lista apenas telas localizadas a até KM quilômetros do ponto, em graus decimais; KM é maior que 0. Uma tela sem localização fica de fora. |
screenrig screen list --tag Lobby
screenrig screen list --folder sfd_01EXAMPLEFOLDER000000000
screenrig screen list --field region=north
screenrig screen list --near 47.6062,-122.3321,25Os filtros se combinam. Cada linha traz tags, folder_id, fields e location da tela, quando houver. Com --human, a tabela só adiciona uma coluna quando uma tela listada tem o valor: PLATFORM, REASON (o archive_reason de uma tela arquivada), TAGS, FOLDER, FIELDS, LOCATION, ASSIGNED (uma tela que reproduz algo diferente de sua playlist padrão), HEALTH (uma tela que precisa de atenção) e UPGRADE (uma tela cujo Player ainda está passando para a versão da playlist emitida, ou falhou ao fazê-lo). --state archived também lista telas que um Player arquivou por conta própria (device_reset, device_unpair) e telas que screen replace arquivou (replaced).
screen show#
Leia uma tela, incluindo revisão, atribuição e estado online.
screen show <id>| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
screenrig screen show scr_01EXAMPLESCREEN00000000tags lista as tags da frota da tela. effective_playlist, takeover e playlist_schedule reportam o que a tela reproduz e por quê; veja Programações e takeover. health e as capacidades do host do Player estão em Saúde e energia do dispositivo. online é verdadeiro enquanto um Player está conectado, incluindo uma breve janela de reconexão. last_online_at e last_ip opcionais aparecem após a primeira conexão. observation opcional reporta as superfícies que um Player pintou: id, width, height, pixel_ratio e presentation. Todos são somente leitura; screen update não pode enviá-los, e uma tela arquivada ainda retorna sua linha.
commands lista os últimos 10 reinícios, recarregamentos, limpezas de cache, reinícios do app e atualizações da tela, do mais antigo para o mais recente, cada um com seu type, seu state (queued, sent, done, failed, expired, cancelled ou superseded), seu source (schedule para um reinício emitido por uma programação de reinício; ausente para um pedido por uma pessoa), seu expires_at e quando foi enviado ou concluído. reboot_schedule e next_reboot_at informam a programação de reinício da tela e o início de sua próxima janela de reinício. Uma limpeza de cache, reinício do app ou atualização que o Player finalizou também traz seu cause e um detail curto, que --human imprime como uma coluna CAUSE e uma linha abaixo da tabela. suspension traz o message e o since de uma tela suspensa. Uma tela arquivada por screen replace informa replaced_by, a tela para a qual seu dispositivo foi movido. Com --human, screen show imprime cada um deles.
last_outage informa a última queda da tela: offline_since, back_at e duration_s e, quando um relatório de saúde a determina, uma likely_cause entre device_restart, app_crash, app_restart, network ou platform; ela está ausente quando o screenRIG não consegue determiná-la. Uma reinicialização é decidida quando a tela volta, enquanto uma causa de rede ou do screenRIG espera o próximo relatório de saúde do Player, que pode levar até quinze minutos. glass traz os veredictos que o screenRIG tirou dos relatórios de reprodução e das capturas de tela. Com --human, screen show imprime Last outage e Likely cause, e Playlist stalled, Blank screen ou Frozen picture para um veredicto que encontrou um problema; Notificações diz o que os veredictos deixam de fora.
folder_id nomeia a pasta da tela e está ausente na raiz do projeto. fields, location e wall aparecem depois de definidos: veja screen update e screen wall set. Cada entrada de observation.surfaces também traz rotation quando o Player consegue lê-lo, e um videowall informa uma entrada por saída, com os nomes que screen wall set aceita.
manifest_upgrade informa se o Player passou para a versão da playlist emitida para ele. Seu state é none, pending, downloading, preparing, activating, retrying, failed, blocked, partial ou current, ao lado de desired_playlist e active_playlist (id, name e revision), a última versão que o Player confirmou, o que não prova que todas as sessões a exibem. Uma atualização com falha ou parcial também traz code, attempt, retry_at e missing_page_count. --human imprime Target v42 · Playing v41. Uma atualização com falha não agenda nova tentativa: corrija a causa e depois execute screen reload ou atribua a playlist novamente. Uma atribuição salva não confirma a reprodução.
applications_unsupported aparece enquanto o Player pareado não consegue exibir páginas application ou iframe: o manifesto não muda e o Player as ignora. recovery_pending aparece enquanto um display que perdeu sua identidade armazenada se oferece para reconectar como esta tela, com expires_at da oferta e os valores platform, model, firmware e manufacturer que o display informa: veja screen recover.
screen update#
Alterar o nome, a atribuição de playlist, a substituição de fuso horário, os campos ou a localização de uma tela em uma só chamada.
screen update <id> [--name NAME] [--playlist-id ID | --clear-playlist] [--timezone ZONE | --clear-timezone] [--field NAME=VALUE...] [--unset-field NAME...] [--clear-fields] [--location LAT,LON [--location-name NAME] [--address TEXT] | --clear-location] [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--name NAME | string | não | inalterado | Nome da tela. |
--playlist-id ID | string | não | inalterado | A playlist pl_ que esta tela deve executar. Não com --clear-playlist. |
--clear-playlist | boolean | não | desligado | Limpa a atribuição padrão própria da tela. O pareamento e todos os outros níveis de conteúdo permanecem, e a tela fica ociosa quando nenhum nível se aplica. Uma tela arquivada responde screen_archived. Não com --playlist-id. |
--timezone ZONE | string | não | inalterado | Substitui o fuso horário da tela por um identificador de zona IANA como America/Los_Angeles. Validado contra o banco de dados de zonas do servidor. Não com --clear-timezone. |
--clear-timezone | boolean | não | desligado | Remove a substituição, de modo que a tela volte a seguir o fuso que seu dispositivo informa. Não com --timezone. |
--field NAME=VALUE | string | não | inalterado | Define um campo e mantém os outros. Repetível, cada nome uma vez. NAME tem de 1 a 32 letras minúsculas, dígitos ou sublinhados, VALUE tem de 1 a 200 caracteres após remover os espaços das extremidades, e uma tela guarda no máximo 32 campos. Não com --clear-fields. |
--unset-field NAME | string | não | inalterado | Remove um campo. Repetível. Não com --clear-fields. |
--clear-fields | boolean | não | desligado | Remove todos os campos. Não com --field nem --unset-field. |
--location LAT,LON | string | não | inalterado | Onde a tela está, em graus decimais: latitude de -90 a 90, longitude de -180 a 180. Substitui a localização inteira, então repita --location-name e --address para mantê-los. Não com --clear-location. |
--location-name NAME | string | não | nenhum | O nome curto do local que um cartão mostra, de 1 a 40 caracteres. Requer --location. |
--address TEXT | string | não | nenhum | Um endereço para pessoas e agentes, de 1 a 200 caracteres. Requer --location. |
--clear-location | boolean | não | desligado | Remove a localização. Não com --location. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
Informe pelo menos um entre --name, --playlist-id, --clear-playlist, --timezone, --clear-timezone, --field, --unset-field, --clear-fields, --location ou --clear-location.
screenrig screen update scr_01EXAMPLESCREEN00000000 --name "Lobby"
screenrig screen update scr_01EXAMPLESCREEN00000000 --field store_number=0142 --field region=north
screenrig screen update scr_01EXAMPLESCREEN00000000 --location 47.6062,-122.3321 --location-name "Seattle HQ"
screenrig screen update scr_01EXAMPLESCREEN00000000 --clear-playlist --expect-rev 3Em revisão, uma alteração apenas de --playlist-id é proposta como screen assign; uma sessão Propor não pode alterar outros campos.
Alterar campos ou localização muda a revisão do manifesto da tela, então uma tela que exibe uma playlist assume os novos valores. Cartões e páginas iframe os leem por tela, então uma única playlist mostra os valores próprios de cada tela: {screen.field.NAME}, {screen.name} e {screen.timezone} preenchem qualquer parâmetro de texto de um cartão, "location": "{screen.location}" preenche a localização de um cartão no formato que esse cartão aceita, e uma chave de dados do cartão pode conter {screen.field.NAME}, como menu-{screen.field.store_number}. Uma tela sem um campo mostra esse texto vazio, e o cartão fica sem essa chave de dados ou localização. screen show lista os campos e a localização de uma tela, e screen list encontra telas por eles. Veja Tokens de tela em endereços de iframe e parâmetros de aplicativo.
screen publish#
Criar uma nova playlist a partir de um arquivo preparado e atribuí-la a uma tela.
screen publish <id> <file> [--expect-rev REVISION] [--note TEXT] [--no-wait] [--poll-ms MS] [--timeout MS] [--no-progress]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
<file> | caminho | sim | nenhum | O documento da playlist preparado, ou - para stdin. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão de tela. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
--no-wait | boolean | não | desligado | Retornar após a atribuição sem esperar o Player exibir a playlist. |
--poll-ms MS | integer | não | 2000 | Intervalo entre pesquisas da tela enquanto aguarda. |
--timeout MS | integer | não | 120000 | Prazo para a espera. Também limita cada solicitação subjacente. |
--no-progress | boolean | não | desligado | Suprimir as linhas de etapa no stderr. |
screenrig screen publish scr_LOBBY lobby.jsonIsto cria uma nova playlist e a atribui. Não atualiza uma playlist existente pelo nome. Inspecione primeiro o documento preparado. Repita a entrada idêntica para retomar uma falha ambígua. A leitura da atribuição não prova a reprodução; solicite uma captura de tela separadamente. Em revisão, retorna stage: pending_review com ambas as revisões. Veja Preparar, publicar e editar playlists.
Após a atribuição, o comando espera até o Player exibir a playlist: data.stage é playing e data.playback_verified é true. As mudanças de etapa são impressas no stderr conforme acontecem, como linhas JSON ou, com --human, como texto. Repetir o comando idêntico depois que uma publicação terminou informa essa publicação (data.already_published) enquanto a tela ainda exibe a playlist, e publica de novo quando a tela já passou para outra coisa.
screen assign#
Aponte uma tela, ou uma frota de telas, para uma playlist.
screen assign (<id>... | --tag TAG | --folder ID) --playlist-id ID [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id>... | string | um de <id>, --tag ou --folder | nenhum | Um ou mais IDs de tela scr_. Vários IDs executam como uma única solicitação de frota. |
--tag TAG | string | um de <id>, --tag ou --folder | nenhum | Cada tela ativa com esta tag. |
--folder ID | string | um de <id>, --tag ou --folder | nenhum | Toda tela ativa nesta pasta de telas sfd_ e nas pastas dentro dela. |
--playlist-id ID | string | sim | nenhum | A playlist pl_ para executar. |
--expect-rev REVISION | string | não | nenhum | Apenas um ID de tela. Pré-condição de revisão opcional. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig screen assign scr_01EXAMPLESCREEN00000000 --playlist-id pl_01EXAMPLEPLAYLIST000000
screenrig screen assign --tag Lobby --playlist-id pl_01EXAMPLEPLAYLIST000000
screenrig screen assign --folder sfd_01EXAMPLEFOLDER000000000 --playlist-id pl_01EXAMPLEPLAYLIST000000Uma playlist que programa páginas pode ser atribuída a qualquer tela: as programações são lidas no fuso horário próprio da tela (sua substituição, senão o fuso que seu dispositivo informa, senão UTC).
Para publicar em uma frota, crie a playlist uma vez com playlist create, depois execute screen assign --tag TAG --playlist-id ID. screen publish direciona uma tela.
Sob acesso Propor, ou em um projeto que exige revisão para alterações de agentes, a alteração em uma tela ou em toda a frota responde pending_review em vez disso: data.review traz o ID da revisão e seu url no dashboard, um aviso pending_review nomeia a URL, e data.next é reviews show ID. Nada muda na tela até uma pessoa aprovar, então não repita a escrita. Em uma tela em uma pasta protegida isso responde pending_review em qualquer nível de acesso, e um aprovador diferente de você e da pessoa para quem você trabalha decide (senão, second_approver_required, saída 3). Um chamador limitado a pastas de telas atribui apenas em telas do seu escopo. Uma atribuição salva não confirma a reprodução; screen screenshot mostra o que está na tela.
screen set-timezone#
Substitui o fuso horário em que as regras civis de uma tela são lidas, ou remove a substituição.
screen set-timezone <id> (--timezone ZONE | --clear) [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--timezone ZONE | string | um de --timezone ou --clear | nenhum | Substitui o fuso horário da tela por um identificador de zona IANA como Europe/Berlin. |
--clear | boolean | um de --timezone ou --clear | desligado | Remove a substituição, de modo que a tela volte a seguir o fuso que seu dispositivo informa. Não com --timezone. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen set-timezone scr_01EXAMPLESCREEN00000000 --timezone America/Los_Angeles
screenrig screen set-timezone scr_01EXAMPLESCREEN00000000 --clearToda tela tem um fuso horário efetivo, e toda regra civil o lê: visibilidade de página, slots de anúncio, programações de playlist, takeovers, campanhas, programações de display e de reinício, e {screen.timezone}. É esta substituição, senão o fuso que o Player da tela informa a partir do seu dispositivo, senão UTC. Uma tela não precisa de substituição enquanto seu dispositivo informa o fuso correto. screen show imprime o fuso efetivo como Timezone com sua origem, effective_timezone e timezone_source (screen, device ou default) em --json. Alterar o fuso efetivo reemite a revisão do manifesto.
ZONE é Area/City, como America/New_York ou Asia/Tokyo, ou UTC.
screen wall set#
Definir o videowall de uma tela: um Player controlando de dois a doze displays como um único canvas.
screen wall set <id> --outputs NAMES --arrangement row|column|grid [--columns N] [--rotation 0|90|180|270] [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--outputs NAMES | string | sim | nenhum | De dois a doze nomes de saída separados por vírgula, em ordem física, da esquerda para a direita e depois de cima para baixo, como screen show os lista em observation.surfaces, por exemplo HDMI-A-1,HDMI-A-2. Cada um tem de 1 a 64 letras, dígitos, pontos, sublinhados ou traços, listado uma só vez. |
--arrangement ARRANGEMENT | string | sim | nenhum | row (uma linha, da esquerda para a direita), column (uma coluna, de cima para baixo) ou grid (linhas de --columns saídas, de cima para baixo). |
--columns N | integer | sim, para grid | nenhum | Saídas por linha de uma grade: de 2 a 6, dividindo as saídas em pelo menos 2 linhas. Recusado para row e column. |
--rotation DEGREES | string | não | 0 | Rotação no sentido horário de cada saída: 0, 90, 180 ou 270. 90 e 270 são painéis em modo retrato. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen wall set scr_01EXAMPLESCREEN00000000 --outputs HDMI-A-1,HDMI-A-2 --arrangement row
screenrig screen wall set scr_01EXAMPLESCREEN00000000 --outputs DP-1,DP-2,DP-3 --arrangement row --rotation 90 --expect-rev 4
screenrig screen wall set scr_01EXAMPLESCREEN00000000 --outputs DP-1,DP-2,DP-3,DP-4,DP-5,DP-6 --arrangement grid --columns 3Um Player controla os displays como um único videowall, então uma página da playlist se estende por todos eles. A definição substitui o videowall inteiro, então repita --rotation e --columns para mantê-los. Apenas a instalação em quiosque do Player para Linux e o Player para Windows declaram a capacidade display.wall; qualquer outro Player responde wall_unsupported (saída 5) e nada muda. O acesso Propor não pode alterar um videowall (insufficient_access). Uma wall de 2 ou 3 telas exige o Plus ou superior, e uma de 4 a 12 telas, o Enterprise: um plano sem ela responde feature_not_in_plan (saída 8), enquanto screen wall clear e uma definição que mantém a wall salva continuam liberados. Veja Videowalls.
Crie a playlist para o formato do videowall com playlist init e o ID da tela, o que grava o canvas correspondente e format (displays, arrangement, orientation e columns para uma grade). Os displays de um primitivo, como [2] ou [1, 2, 5, 6], indicam os números de display que ele cobre, contados a partir de 1 da esquerda para a direita e depois de cima para baixo, e devem preencher um retângulo do videowall. Atribuir uma playlist cujo formato não é o do videowall resulta em playlist_format_mismatch (saída 5); uma playlist sem formato é reproduzida igual em todos os displays. Quando a tela reproduz uma playlist com formato correspondente, cada display mostra seu número e nome por 20 segundos após uma mudança, para você conferir a ordem na tela.
screen wall clear#
Remover o videowall de uma tela.
screen wall clear <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen wall clear scr_01EXAMPLESCREEN00000000A playlist atribuída não é verificada de novo: se ela tem um format, o manifesto da tela é degradado (wall_format_mismatch) e o Player mantém a última página válida até você atribuir uma playlist sem formato. Uma tela sem videowall responde sem alteração. O acesso Propor não pode alterar um videowall (insufficient_access).
screen archive#
Ocultar uma tela e escurecer seu vidro.
screen archive <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen archive scr_01EXAMPLESCREEN00000000Arquivar oculta a tela da listagem padrão e escurece o vidro. Não desvincula o Player.
Quem tem a chave do display ainda pode se conectar enquanto a tela está arquivada. Para aposentar o hardware de vez, deixe a tela arquivada ou mova a tela para um novo hardware com screen recover ou screen replace, que desativam a chave antiga.
screen unarchive#
Restaure uma tela arquivada para a listagem padrão.
screen unarchive <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen unarchive scr_01EXAMPLESCREEN00000000Um Player também pode arquivar sua própria tela: um reset confirmado em um Player que mantém uma chave, ou desparear um Player de navegador pareado por cookie. screen show então reporta archive_reason como device_reset ou device_unpair (project para um arquivo que você solicitou), com archived_at. A tela mantém sua vinculação de dispositivo por todos os motivos, então um Player que ainda mantém essa chave ou cookie de dispositivo permanece escuro e retoma na desarquivação sem novo pareamento. O Player que foi resetado ou despareado descarta sua chave ou cookie e pareia novamente como uma nova tela. Uma chave substituída por uma recuperação de tela confirmada permanece aposentada.
Uma tela arquivada como replaced por screen replace não mantém vinculação de dispositivo, então desarquivar recusa essa tela e screen delete a remove.
screen suspend#
Mostrar um aviso em uma tela no lugar do conteúdo dela, até que seja retomada.
screen suspend <id> --message TEXT [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--message TEXT | string | sim | nenhum | O aviso que a tela mostra: 1 a 280 caracteres após aparar. O avanço de linha é o único caractere de controle, e o Player quebra o texto automaticamente e mantém seus avanços de linha. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen suspend scr_01EXAMPLESCREEN00000000 --message "Closed for stocktake. Back at 9am."Uma tela suspensa mostra a mensagem no lugar do conteúdo dela. Nada mais muda: sua playlist, programação, takeover e controle de exibição permanecem e continuam evoluindo, e screen resume mostra o que a tela estaria mostrando agora. screen show reporta suspension com o message e o since; suspender uma tela já suspensa substitui a mensagem e mantém since. Suspender aumenta a revisão da tela, e o Player busca novamente de imediato. Uma tela arquivada responde screen_archived.
screen resume#
Encerrar a suspensão de uma tela para que ela volte a mostrar seu próprio conteúdo.
screen resume <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen resume scr_01EXAMPLESCREEN00000000Retomar volta a mostrar o conteúdo próprio da tela, a partir do que a tela estaria mostrando agora, e o Player busca novamente de imediato. Uma tela que não está suspensa responde inalterada, sem mudança de revisão. Uma tela arquivada responde screen_archived.
screen delete#
Excluir uma tela.
screen delete <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen delete scr_01EXAMPLESCREEN00000000Excluir remove uma tela apenas enquanto nenhuma chave de Player estiver vinculada a ela, e screen show reporta deletable: true para essa tela. Um Player que pareia por código, seja nativo ou de navegador, mantém uma chave, e a chave permanece vinculada à sua tela, então excluir essa tela responde 409 screen_archive_required (código de saída 5): arquive-a em vez disso. Somente um Player de navegador pareado por cookie não mantém chave, e sua tela pode ser excluída esteja pareada ou ainda pendente.
Para parear como uma nova tela um display que já tem uma chave, confirme uma redefinição no próprio Player e depois resgate o código que ele mostra com screen pair; a tela antiga permanece arquivada. Para mover uma tela para um hardware substituto, use screen recover, ou screen replace quando esse hardware já estiver pareado como uma tela própria.
screen recover#
Reconectar um display que perdeu sua identidade armazenada à tela como a qual ele foi pareado.
screen recover <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen show scr_01EXAMPLESCREEN00000000
screenrig screen recover scr_01EXAMPLESCREEN00000000Um display que perdeu sua identidade armazenada e agora informa os identificadores de hardware desta tela durante o pareamento faz uma oferta. screen show a informa como recovery_pending, com seu prazo e, quando o display informa, platform, model, firmware e manufacturer. Nada é revinculado até este comando confirmar: a tela mantém seu rótulo, playlist, fuso horário, programações e histórico, e a nova chave do display substitui a anterior, que é desativada após um período de tolerância de quinze minutos. Uma tela arquivada por uma redefinição do dispositivo permanece arquivada até screen unarchive.
Compare o modelo e o firmware informados com o display que você espera antes de confirmar: qualquer aplicativo em execução em um display pode ler seus identificadores, então a oferta sozinha não prova qual display está pedindo. O serviço recusa uma oferta enquanto o Player atual da tela ainda está online, e uma tela aceita no máximo três ofertas por hora. Sem uma oferta, o comando responde recovery_not_offered, uma oferta cuja sessão de pareamento expirou responde recovery_expired, e identificadores associados a mais de uma tela respondem recovery_ambiguous; nada é revinculado. A recuperação nunca atravessa projetos.
screen replace#
Mover para esta tela o dispositivo pareado como outra tela, mantendo as configurações e o histórico desta tela.
screen replace <id> --with ID [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | A tela scr_ a ser mantida. |
--with ID | string | sim | nenhum | A tela scr_ cujo dispositivo pareado assume o lugar. Deve ser outra tela do projeto. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão da tela a ser mantida. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen replace scr_01EXAMPLESCREEN00000000 --with scr_01EXAMPLENEWSCREEN000000Pareie primeiro o novo hardware como sua própria tela e depois substitua. A chave do dispositivo, ou a credencial de um Player de navegador, agora dá acesso a <id>, que mantém seu nome, tags, fuso horário, playlist, programações, takeover, programação e substituição de exibição, video wall, comentários, campos, localização e histórico, e assume o host e o Player da tela substituta. Sua saúde, status, armazenamento e comandos na fila recomeçam do zero. A tela indicada em --with é arquivada com archive_reason replaced e replaced_by apontando para <id>. Ela não mantém vinculação de dispositivo, então screen unarchive não pode restaurá-la e screen delete a remove. A chave que <id> mantinha é aposentada após uma janela de tolerância de quinze minutos; depois disso, o dispositivo antigo é recusado. Ambas as telas devem estar ativas e ter um Player pareado: uma tela que ainda aguarda pareamento responde resource_conflict, uma arquivada responde screen_archived, e um video wall precisa de um Player substituto que declare display.wall (wall_unsupported). O pedido sempre traz uma chave de idempotência, e uma nova tentativa exata retorna a resposta original.
Para mover um display que perdeu sua identidade armazenada e agora informa os identificadores desta tela, use screen recover.
screen rotate-public-id#
Emitir um novo ID público para uma tela.
screen rotate-public-id <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen rotate-public-id scr_01EXAMPLESCREEN00000000O public_id da tela, a credencial em sua URL pública, é substituído e toda sessão aberta com o valor antigo termina. O pareamento do Player é mantido: um Player pareado abre uma nova sessão e continua exibindo seu conteúdo.
screen link create#
Criar o link de uma tela, ou substituí-lo, e imprimir sua URL do Player.
screen link create <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O ID da tela scr_. A tela está ativa: seu Player foi pareado uma vez com seu código. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen link create scr_01EXAMPLESCREEN00000000Imprime data.url, a URL do Player (https://play.screenrig.ai/player/#screen=…) para colar como URL de uma fonte de navegador no vMix ou no OBS, que não guarda armazenamento e, de outro modo, perderia o pareamento a cada carregamento. O Player roda a partir da URL a cada carregamento: a URL é todo o pareamento. Criar o link de novo o substitui (data.replaced é true): a URL antiga para de funcionar imediatamente e o Player aberto a partir dela mostra um aviso sem conteúdo. A URL é uma credencial que abre a tela: é impressa sob um rótulo sensível, mantida fora do log de operação e exibida de novo por screen link show. Abra-a em um único lugar. Uma tela que não foi pareada responde resource_conflict (código de saída 5), e uma tela arquivada responde screen_archived. Após uma requisição interrompida, execute de novo o mesmo comando: ele reutiliza a chave de idempotência salva e retorna o mesmo link.
screen link show#
Imprimir o link de uma tela e sua URL do Player.
screen link show <id>| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
screenrig screen link show scr_01EXAMPLESCREEN00000000Imprime data.url sob um rótulo sensível com data.hint (os quatro últimos caracteres do segredo), data.created_at e data.last_used_at depois que um Player abre o link. Uma credencial somente leitura recebe url vazio com url_redacted true, e a saída humana informa que a URL foi retida; um login Manage a recebe. Uma tela sem link responde screen_link_not_found (código de saída 4) e nomeia o comando que cria um. screen show imprime Screen link: on (…HINT) para uma tela que tem um, e nunca sua URL.
screen link delete#
Desativar o link de uma tela.
screen link delete <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
screenrig screen link delete scr_01EXAMPLESCREEN00000000A URL para de funcionar imediatamente e toda sessão que ela abriu termina: uma fonte de navegador que ainda a exibe mostra um aviso e nenhum conteúdo até receber uma nova URL. A tela, seu pareamento e seu conteúdo não são alterados. Tem sucesso, sem alterar nada, quando a tela não tem link.
screen reload#
Peça ao Player de uma tela, ou a todos os Players de uma frota, para recarregar uma vez.
screen reload (<id>... | --tag TAG | --folder ID) [--expires-in DURATION] [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id>... | string | um de <id>, --tag ou --folder | nenhum | Um ou mais IDs de tela scr_. Vários IDs executam como uma única solicitação de frota. |
--tag TAG | string | um de <id>, --tag ou --folder | nenhum | Cada tela ativa com esta tag. |
--folder ID | string | um de <id>, --tag ou --folder | nenhum | Toda tela ativa nesta pasta de telas sfd_ e nas pastas dentro dela. |
--expires-in DURATION | string | não | 24h, aplicado pelo servidor | Por quanto tempo o pedido espera que uma tela offline fique online: 90s, 30m, 2h ou 1d, de 60s a 24h. |
--expect-rev REVISION | string | não | nenhum | Apenas um ID de tela. Pré-condição de revisão opcional. |
screenrig screen reload scr_01EXAMPLESCREEN00000000
screenrig screen reload scr_01EXAMPLESCREEN00000000 --expires-in 2h
screenrig screen reload --tag Lobby
screenrig screen reload --folder sfd_01EXAMPLEFOLDER000000000A resposta traz um reload_id, um state e um expires_at. Uma tela online recebe o recarregamento imediatamente (state sent); uma tela offline o mantém como queued e o recebe quando fica online antes de expires_at, 24 horas após o pedido, a menos que --expires-in diga o contrário. Um recarregamento mais recente substitui um que ainda está na fila; screen show lista os commands da tela e screen command cancel cancela um que ainda está na fila. Em uma frota, o reload de cada resultado traz o mesmo state. Um Player web recarrega na próxima troca de página; um Player nativo reconecta, refaz o manifesto e verifica atualizações. Um Player ignora um recarregamento dentro de dez minutos do último que executou. Recarregar funciona em telas ativas e arquivadas e não altera a revisão da tela.
screen toast#
Publique uma mensagem transitória como chrome de palco em uma tela ao vivo ou em uma frota.
screen toast (<id>... | --tag TAG | --folder ID) --text TEXT [--level info|alert|error] [--duration-ms MS]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id>... | string | um de <id>, --tag ou --folder | nenhum | Um ou mais IDs de tela scr_. Vários IDs executam como uma única solicitação de frota. |
--tag TAG | string | um de <id>, --tag ou --folder | nenhum | Cada tela ativa com esta tag. |
--folder ID | string | um de <id>, --tag ou --folder | nenhum | Toda tela ativa nesta pasta de telas sfd_ e nas pastas dentro dela. |
--text TEXT | string | sim | nenhum | De um a 120 caracteres, quebra de linha como única quebra, no máximo três linhas. |
--level LEVEL | string | não | info | info, alert ou error. Uma tela pode definir o nível mais baixo de toast que exibe, e os toasts error sempre aparecem. Um Player exibe um toast em uma linha, com cada quebra de linha virando um espaço. O sucesso do comando não estabelece a visibilidade. |
--duration-ms MS | integer | não | 60000, aplicado pelo servidor | Entre 2000 e 60000 quando fornecido. |
screenrig screen toast scr_01EXAMPLESCREEN00000000 --text "Lobby closed"
screenrig screen toast --tag Lobby --text "Closing in ten minutes"
screenrig screen toast --folder sfd_01EXAMPLEFOLDER000000000 --text "Closing in ten minutes"Um toast não é um primitivo: não ocupa slot de canvas, não tem camada, e não participa de prontidão ou crossfade. O último vence, não há fila nem cancelamento, e o envelope aceito é só { expires_at }. Nunca coloque credenciais ou outro material secreto no texto.
screen identify#
Mostrar o nome de uma tela sobre o conteúdo dela por um tempo, para encontrá-la no local.
screen identify <id> [--duration DURATION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--duration DURATION | string | não | 60s, aplicado pelo servidor | Por quanto tempo a sobreposição permanece na tela, contado a partir de quando o Player recebe o pedido: 30s, 2m ou 1m30s, de 2s a 10m. |
screenrig screen identify scr_01EXAMPLESCREEN00000000
screenrig screen identify scr_01EXAMPLESCREEN00000000 --duration 2mO Player desenha uma sobreposição em tela cheia sobre seu conteúdo, com o nome da tela bem grande e o id dela pequeno logo abaixo. A reprodução continua por baixo, e uma identificação mais recente substitui a sobreposição. O envelope aceito traz identify_id, duration_ms e um expires_at 60 segundos após o pedido, de modo que uma tela offline nunca a mostra depois. Somente um Player que declara a capacidade identify mostra a sobreposição: qualquer outra tela responde 409 identify_unsupported (código de saída 5) e nada é enviado; atualize o Player ou mostre o nome com screen toast. Uma tela arquivada responde screen_archived e uma tela que ainda aguarda pareamento responde resource_conflict. Identificar não altera a revisão da tela.
screen play-page#
Iniciar uma página da playlist que uma tela está reproduzindo agora, para verificar essa página com uma captura de tela.
screen play-page <id> --page-id ID| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--page-id ID | string | sim | nenhum | Uma página da playlist que a tela está reproduzindo agora: de 1 a 128 caracteres. |
screenrig screen play-page scr_01EXAMPLESCREEN00000000 --page-id welcome
screenrig screen screenshot scr_01EXAMPLESCREEN00000000A página começa do início no Player da tela e a rotação continua a partir dali, então uma captura de tela feita em seguida mostra essa página sem esperar a rotação. A página deve pertencer à playlist que a tela reproduz agora: seu takeover; senão, uma campanha vigente; senão, sua programação; senão, sua playlist atribuída. Qualquer outra página responde page_not_on_screen (saída 5), e o problema nomeia essa playlist. Um Player que não declara a capacidade play_page em seu relatório de host responde play_page_unsupported (saída 5) e nada é enviado: atualize o Player.
A resposta traz playlist_id, page_id, manifest_revision e expires_at. A solicitação expira após 60 segundos e não altera a revisão da tela. Uma tela arquivada responde screen_archived e uma tela que ainda aguarda o pareamento responde resource_conflict. Uma nova tentativa com a mesma chave de idempotência repete a resposta original.
screen screenshot#
Capture uma imagem estática de uma tela ativa, ou de todas as telas de uma frota, e grave no disco.
screen screenshot <id> [--output FILE] [--timeout MS] [--poll-ms MS]
screen screenshot (<id> <id>... | --tag TAG | --folder ID) [--output DIRECTORY] [--concurrency N] [--timeout MS] [--poll-ms MS]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id>... | string | um de <id>, --tag ou --folder | nenhum | Um ou mais IDs de tela scr_. |
--tag TAG | string | um de <id>, --tag ou --folder | nenhum | Cada tela ativa com esta tag, sem limite de contagem de telas. |
--folder ID | string | um de <id>, --tag ou --folder | nenhum | Toda tela ativa nesta pasta de telas sfd_ e nas pastas dentro dela, sem limite de contagem de telas. |
--output FILE | caminho | não | ./<id>.webp | Para uma tela, um caminho de arquivo; um arquivo existente é sobrescrito sem aviso. Para vários IDs, --tag ou --folder, um diretório, criado se ausente, que recebe um <screen_id>.webp por tela. |
--concurrency N | integer | não | 4 | Capturas em voo simultâneas para vários ids, --tag ou --folder, de 1 a 8. |
--timeout MS | integer | não | 35000 | Quanto tempo esperar pela captura. |
--poll-ms MS | integer | não | 500 | Intervalo entre pesquisas de status de captura. |
screenrig screen screenshot scr_01EXAMPLESCREEN00000000 --output ./lobby.webpscreenrig screen screenshot --tag Lobby --output ./lobby-shotsscreenrig screen screenshot --folder sfd_01EXAMPLEFOLDER000000000 --output ./north-shotsO comando bloqueia até o WebP estar no disco. O envelope informa screen_id, capture_id, path, bytes, sha256, width e height, e nunca bytes de imagem. O último vence: uma solicitação posterior substitui uma captura em andamento. Uma captura de tela do Player web desenha cada página iframe como um bloco cinza-escuro com o rótulo "Embedded web page" e cada aplicativo como ele mesmo se renderiza; a imagem não traz marcador para o bloco, então não prova que uma página iframe foi renderizada.
Com vários IDs, --tag ou --folder, a resposta é um resultado de frota com action: "screenshot", o selector e o diretório output; cada resultado ok traz path, bytes, sha256, width e height. Com --tag, a CLI primeiro lista as telas com tag, seguindo cada página da lista; cada página da lista é uma solicitação de agente e as capturas em si não são contadas, e vários IDs não precisam de lista. --idempotency-key é recusado nesta forma, porque cada captura usa a própria chave. Se uma captura falhar de forma inesperada, o resultado dessa tela é unexpected_error, nenhuma captura nova começa, as telas que ainda esperam relatam not_attempted e o código de saída é 1.
Para uma tela, o envelope também traz frame.flat, que indica se esta imagem é de um único tom uniforme, e picture, o veredito de tela em branco ou congelada quando existe. Uma imagem uniforme sozinha não é um veredito: uma transição entre páginas, ou uma página preta de propósito, parece igual. Com --folder, o CLI lista a pasta e cada pasta dentro dela, um screen list --folder por pasta, e uma tela que a lista mostra offline é informada como falha sem captura.
O servidor admite 10 capturas por tela, 30 por organização e 30 por endereço, por minuto; o CLI tenta de novo as respostas 429 e 5xx com backoff e respeita Retry-After. Uma captura que não pode ser concluída é screenshot_unavailable (saída 5): a tela está offline, a solicitação timed_out, a página exibida contém uma superfície que o Player não consegue capturar (unsupported_surface, como um iframe de terceiros visível no Player de navegador), a captura do Player falhou (capture_failed) ou a captura ainda estava pendente quando --timeout acabou. --timeout 0 deixa a espera por conta do servidor, que expira uma solicitação sem resposta após 30 segundos. Uma captura com falha traz error.display quando o Player informou seu display: power, connected, reported_at e stale (após 35 minutos). Um relatório recente com off ou standby sugere tentar de novo quando o display estiver ligado.
screen live start#
Iniciar a visualização ao vivo de uma tela, ou renová-la, e imprimir a página do dashboard que a mostra.
screen live start <id> [--duration DURATION] [--wait DURATION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--duration DURATION | string | não | 5m | Quanto tempo a sessão dura se não for renovada: de 30s a 5m, como 90s ou 5m. Uma sessão termina, no máximo, cinco minutos depois de começar. |
--wait DURATION | string | não | 30s | Quanto tempo esperar o Player começar a publicar: de 1s a 10m, ou 0 para retornar imediatamente. |
screenrig screen live start scr_01EXAMPLESCREEN00000000
screenrig screen live start scr_01EXAMPLESCREEN00000000 --duration 2m --wait 60sA visualização ao vivo mostra no dashboard o que uma tela reproduz, em vídeo; o CLI inicia, lê e encerra a sessão e nunca transporta o vídeo. data é a sessão com viewer_url, a página a abrir. Iniciar uma tela que já tem uma sessão a renova: a concessão passa a ser o mais tardio entre seu fim atual e --duration a partir de agora, nunca além de cinco minutos depois do início da sessão. Depois a sessão termina sozinha: nada a renova nem a reinicia, e a próxima sessão exige um novo screen live start. Ela termina antes quando a concessão vence, quando screen live stop é executado ou quando o Player a encerra.
O comando pede ao Player que publique e lê a sessão a cada segundo por até --wait, até o Player informar que está conectado. Se o Player não tiver conectado quando a espera acabar, a resposta ainda é ok, com o aviso live_not_ready: leia screen live status novamente ou abra viewer_url. Uma sessão que terminou durante a espera é live_unavailable (saída 5) e seu detalhe nomeia ended_reason, como consent_timeout (no Android, alguém na tela permite a captura da tela uma vez a cada início do Player). Uma tela offline também é live_unavailable, e uma tela arquivada responde screen_archived. Um Player que não declara a capacidade live_view responde live_unsupported (saída 5) e nada é enviado: atualize o Player. Um servidor sem relay de mídia responde feature_unavailable: use screen screenshot. A visualização ao vivo é gratuita. Veja Visualização ao vivo.
screen live status#
Ler a sessão de visualização ao vivo de uma tela.
screen live status <id>| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
screenrig screen live status scr_01EXAMPLESCREEN00000000state é idle (sem sessão), requested (o Player foi solicitado), publishing (o relay mantém o vídeo dela) ou ended, com ended_reason por dez minutos. publisher.connected é o relatório do próprio Player, com no máximo 45 segundos, e não prova que há imagem. data inclui viewer_url.
screen live stop#
Encerrar a sessão de visualização ao vivo de uma tela.
screen live stop <id>| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
screenrig screen live stop scr_01EXAMPLESCREEN00000000Encerra a sessão e diz ao Player para parar de publicar, depois imprime a sessão como está: ended com ended_reason stopped. Tem sucesso quando não há sessão. Uma sessão também termina sozinha quando sua concessão vence.
screen live frame#
Salvar quadros JPEG do que uma tela reproduz, a partir de seu stream ao vivo, para verificar a reprodução e o movimento.
screen live frame <id> [--output PATH] [--count N] [--interval DURATION] [--duration DURATION] [--wait DURATION] [--stop]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da tela scr_. |
--output PATH | caminho | não | o diretório de trabalho | Um arquivo para um quadro, ou um diretório que recebe frame-<captured_at>.jpg por quadro, com os dois-pontos do horário escritos como hifens. --count acima de 1 exige um diretório. |
--count N | integer | não | 1 | Quantos quadros novos salvar. |
--interval DURATION | string | não | 1s | Pausa entre quadros: de 1s a 5m, ou 0 para pegar cada quadro assim que chega. |
--duration DURATION | string | não | 2m | Concessão da sessão ao vivo que este comando inicia: de 30s a 5m. Ela é ampliada para cobrir os quadros mais 30 segundos, e uma execução que precise de mais de cinco minutos é recusada. |
--wait DURATION | string | não | 30s | Quanto tempo esperar o Player começar a publicar, e por cada quadro: de 1s a 10m, ou 0 para tentar uma vez. |
--stop | boolean | não | desligado | Encerrar a sessão ao vivo ao terminar, também quando um quadro falhou. |
screenrig screen live frame scr_01EXAMPLESCREEN00000000
screenrig screen live frame scr_01EXAMPLESCREEN00000000 --output now.jpg --stop
screenrig screen live frame scr_01EXAMPLESCREEN00000000 --output frames/ --count 5 --interval 1sO comando inicia a sessão ao vivo, espera o Player publicar, pede quadros ao relay de mídia e lê cada novo quadro uma vez. Um quadro é o vídeo como o encoder do Player o enviou, reduzido a no máximo 1280x720 e com perdas, cerca de um por segundo: ele mostra movimento e o que está na tela agora, então compare quadros (--count 5 --interval 1s) para verificar se o conteúdo se move. Não é uma captura de tela, que continua sendo a prova do layout. Os quadros são gratuitos.
data é {screen_id, live_id, frames}, com path, captured_at, width, height, bytes e sha256 por quadro, e stopped true quando --stop encerrou a sessão. Sem --stop, a sessão fica por conta da sua concessão. Um Player que não publica dentro de --wait, ou que não envia nenhum quadro novo dentro desse prazo, é live_not_ready (saída 5); no Android, alguém na tela permite a captura da tela uma vez a cada início do Player. Uma sessão que terminou, ou cujos quadros pararam de chegar, é live_unavailable (saída 5). Um Player sem a capacidade live_view responde live_unsupported, e um servidor sem relay de mídia ou sem quadros responde feature_unavailable (saída 4): use screen screenshot.
screen tag#
Definir, adicionar, remover ou limpar as tags em uma tela ou frota.
screen tag (<id>... | --tag TAG | --folder ID) (--set TAGS | --add TAGS | --remove TAGS | --clear) [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id>... | string | um de <id>, --tag ou --folder | nenhum | Um ou mais IDs de tela scr_. Vários IDs executam como uma única solicitação de frota. |
--tag TAG | string | um de <id>, --tag ou --folder | nenhum | Cada tela ativa com esta tag. |
--folder ID | string | um de <id>, --tag ou --folder | nenhum | Toda tela ativa nesta pasta de telas sfd_ e nas pastas dentro dela. |
--set TAGS | string | exatamente uma ação | nenhum | Substituir o conjunto inteiro por essas tags separadas por vírgulas, como Lobby,Floor2. |
--add TAGS | string | exatamente uma ação | nenhum | Adicione essas tags separadas por vírgula. |
--remove TAGS | string | exatamente uma ação | nenhum | Remover estas tags separadas por vírgula. |
--clear | boolean | exatamente uma ação | desligado | Remover todas as tags. |
--expect-rev REVISION | string | não | nenhum | Apenas um ID de tela. Pré-condição de revisão opcional. |
screenrig screen tag scr_01EXAMPLESCREEN00000000 --set Lobby,Floor2
screenrig screen tag scr_01EXAMPLESCREEN00000000 --add Spring
screenrig screen tag --tag Lobby --add Spring
screenrig screen tag --folder sfd_01EXAMPLEFOLDER000000000 --add SpringUma tag tem de 1 a 32 letras ou dígitos, e uma tela carrega no máximo 16 tags únicas. Tags selecionam frotas; nunca são autorização e nunca chegam ao Player. Mudar tags atualiza a revisão da tela, não a do manifesto. Para uma tela o envelope é a tela atualizada. --add e --remove leem a tela primeiro e escrevem o novo conjunto protegido por --expect-rev ou a revisão recém-lida, então uma mudança concorrente retorna revision_conflict (exit 6) ao invés de ser sobrescrita; execute o comando novamente. Em uma frota, --add e --remove aplicam-se atomica e individualmente ao conjunto armazenado de cada tela, e uma tela que ultrapassaria 16 tags falha em seu próprio resultado com invalid_request.
Sempre que as tags mudam (screen tag, uma atualização de tela pela API, o editor de tags do painel), o levels da resposta lista, em gained e lost, as campanhas cujo público de tag a tela passou a integrar ou deixou, cada uma com seu source (campaign), id, a contagem de screens e, quando a campanha tem alcance, reach_before e reach_after. Um screen tag da frota os soma em toda a frota. Leia levels.lost antes de chamar uma edição de tag de inofensiva: remover a última tag correspondente das telas de uma campanha esvazia esse grupo e dispara as notificações reach_dropped e group_empty.
screen move#
Mover telas e pastas de telas para uma pasta de telas, ou de volta para a raiz do projeto.
screen move <id>... (--folder ID | --root) [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id>... | string | sim | nenhum | IDs de tela scr_ e IDs de pasta de telas sfd_ em qualquer combinação, cada um uma só vez, no máximo 1000 no total. |
--folder ID | string | um de --folder ou --root | nenhum | A pasta de telas de destino sfd_. |
--root | boolean | um de --folder ou --root | desligado | Mover para a raiz do projeto, fora de qualquer pasta. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig screen move scr_01EXAMPLESCREEN00000000 --folder sfd_01EXAMPLEFOLDER000000000
screenrig screen move sfd_01EXAMPLEFOLDER000000000 --rootA movimentação é uma única solicitação de tudo ou nada. Uma pasta se move com tudo o que há dentro dela e não pode ser movida para dentro de si mesma nem de uma pasta dentro dela; as pastas se aninham em no máximo 10 níveis. Os itens que já estão no destino ficam como estão e não são contados. data.screens e data.folders contam o que foi movido. data.levels lista, em gained e lost, as campanhas em cujo público de pasta as telas movidas entraram ou saíram (source campaign, com reach_before e reach_after) e as playlists padrão de pasta que elas passaram ou deixaram de exibir (source folder). As telas reavaliam sua playlist em cerca de 15 segundos; screen show informa effective_playlist e campaign explain SCREEN_ID diz por quê.
Um chamador limitado a pastas de telas move apenas telas e pastas dentro do seu escopo para uma pasta dentro dele; qualquer outra coisa, inclusive a raiz do projeto, recusa a movimentação inteira com outside_screen_scope (saída 3). Uma movimentação para dentro ou para fora de uma pasta protegida responde pending_review com uma revisão protected_change que um segundo aprovador decide, então não repita a escrita; --note diz ao aprovador o motivo. Após uma solicitação interrompida, execute novamente o comando idêntico para reutilizar a chave de idempotência salva.
screen folder list#
Listar as pastas de telas do projeto como uma árvore, com as telas ativas diretamente em cada uma e sua playlist padrão.
screen folder listscreenrig screen folder listRetorna todas as pastas de telas do projeto, no máximo 1000, ordenadas por nome. data.items traz de cada pasta: id, name, parent_id (null na raiz do projeto), default_playlist_id quando definido, protected quando definido, screens (as telas ativas diretamente dentro, não as das pastas abaixo) e revision. Com --human, a saída é a árvore, uma linha por pasta com seu caminho. A pasta de uma tela é folder_id em screen list e screen show, ausente na raiz do projeto. Acesso somente leitura é suficiente.
screen folder show#
Inspecionar uma pasta de telas.
screen folder show <id>| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O ID da pasta de telas sfd_. |
screenrig screen folder show sfd_01EXAMPLEFOLDER000000000Retorna uma pasta com os campos que screen folder list retorna. Acesso somente leitura é suficiente.
screen folder create#
Criar uma pasta de telas na raiz do projeto ou dentro de outra pasta.
screen folder create --name NAME [--parent ID] [--default-playlist-id ID] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
--name NAME | string | sim | nenhum | Nome da pasta, sem espaços nas extremidades: de 1 a 100 caracteres, sem caracteres de controle, diferente de . ou .., e único entre as pastas irmãs (resource_conflict, saída 5). |
--parent ID | string | não | raiz do projeto | Criá-la dentro desta pasta de telas sfd_. |
--default-playlist-id ID | string | não | nenhum | A playlist aprovada pl_ que suas telas exibem quando não têm uma própria, a menos que uma pasta mais próxima da tela defina uma (playlist_not_approved, saída 5). |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig screen folder create --name "North Tower"
screenrig screen folder create --name "Level 2" --parent sfd_01EXAMPLEFOLDER000000000 --default-playlist-id pl_01EXAMPLEPLAYLIST000000Uma organização tem no máximo 1000 pastas em seus projetos (quota_exceeded), aninhadas em no máximo 10 níveis (invalid_request). Coloque telas nelas com screen move. Uma pasta passa então a ser o alvo de suas telas nos comandos de frota e como público de campanha: veja Pastas de telas.
Um chamador limitado a pastas de telas só cria pastas dentro do seu escopo: --parent deve ser uma pasta dele (outside_screen_scope, saída 3). Uma pasta criada dentro de uma pasta protegida responde pending_review com uma revisão protected_change que um aprovador diferente de você e da pessoa para quem você trabalha decide, então não repita a escrita; --note diz ao aprovador o motivo. Após uma solicitação interrompida, execute novamente o comando idêntico para reutilizar a chave de idempotência salva.
screen folder update#
Renomear uma pasta de telas, movê-la com tudo o que há dentro, ou definir ou limpar sua playlist padrão.
screen folder update <id> [--name NAME] [--parent ID | --root] [--default-playlist-id ID | --clear-default] [--expect-rev REVISION] [--note TEXT]
screen folder update <id> --unprotect [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O ID da pasta de telas sfd_. |
--name NAME | string | não | inalterado | Novo nome da pasta, com as regras de screen folder create. |
--parent ID | string | não | inalterado | Movê-la, com tudo o que há dentro, para esta pasta de telas sfd_. Não com --root. |
--root | boolean | não | desligado | Movê-la para a raiz do projeto. Não com --parent. |
--default-playlist-id ID | string | não | inalterado | A playlist aprovada pl_ que suas telas exibem quando não têm uma própria. Não com --clear-default. |
--clear-default | boolean | não | desligado | Remover sua playlist padrão. Não com --default-playlist-id. |
--unprotect | boolean | não | desligado | Propor a remoção da proteção da pasta. A proposta é enviada sozinha, sem nenhuma das opções acima, e um segundo aprovador decide a revisão. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
Informe pelo menos um entre --name, --parent, --root, --default-playlist-id, --clear-default ou --unprotect.
screenrig screen folder update sfd_01EXAMPLEFOLDER000000000 --name "Northern"
screenrig screen folder update sfd_01EXAMPLEFOLDER000000000 --root
screenrig screen folder update sfd_01EXAMPLEFOLDER000000000 --default-playlist-id pl_01EXAMPLEPLAYLIST000000 --expect-rev 3
screenrig screen folder update sfd_01EXAMPLEFOLDER000000000 --clear-default
screenrig screen folder update sfd_01EXAMPLEFOLDER000000000 --unprotect --note "Menu boards move next week"Uma pasta não pode ser movida para dentro de si mesma nem de uma pasta dentro dela, e valores iguais aos atuais não alteram nada. Uma movimentação ou uma mudança de padrão reavalia as telas dentro dela em cerca de 15 segundos, e data.levels lista as campanhas em cujo público de pasta essas telas entraram ou saíram (source campaign) e as playlists padrão de pasta que elas ganharam ou perderam (source folder).
Uma renomeação tem efeito imediato em uma pasta protegida. Uma movimentação, ou uma playlist padrão, de uma pasta que é ou contém uma protegida responde pending_review com uma revisão protected_change que um segundo aprovador decide (um aprovador diferente de você e da pessoa para quem você trabalha; senão, second_approver_required, saída 3). Nada muda até lá, então não repita a escrita; --note diz ao aprovador o motivo. Uma pessoa que pode aprovar protege uma pasta no dashboard; o CLI apenas propõe remover a proteção com --unprotect. Veja Pastas protegidas. Um chamador limitado a pastas de telas altera apenas pastas dentro do seu escopo e as move apenas para uma pasta pai dentro dele (outside_screen_scope, saída 3), e nunca a proteção de uma pasta que o escopo nomeia.
screen folder delete#
Excluir uma pasta de telas; suas telas e pastas sobem um nível.
screen folder delete <id> [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O ID da pasta de telas sfd_. |
--expect-rev REVISION | string | não | nenhum | Pré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração: texto simples, no máximo 280 caracteres. Ignorada quando a alteração é aplicada imediatamente. |
screenrig screen folder delete sfd_01EXAMPLEFOLDER000000000
screenrig screen folder delete sfd_01EXAMPLEFOLDER000000000 --expect-rev 3Exclui apenas a pasta: suas telas e pastas sobem para a pasta pai (a raiz do projeto, se não houver) e essas telas reavaliam sua playlist. data é id, deleted true e levels, as campanhas e playlists padrão de pasta que as telas movidas ganharam ou perderam, com reach_before e reach_after de uma campanha. Um público de campanha que nomeia a pasta recusa a exclusão com resource_conflict (saída 5): altere ou exclua essas campanhas primeiro.
Um chamador limitado a pastas de telas exclui apenas pastas dentro do seu escopo, nunca uma pasta que o escopo nomeia (outside_screen_scope, saída 3). Uma pasta que é ou contém uma pasta protegida responde pending_review com uma revisão protected_change que um segundo aprovador decide, então não repita a escrita; --note diz ao aprovador o motivo.
Resultados da frota
Com vários IDs de tela ou --tag, screen assign, screen reload, screen toast e screen tag executam uma ação sem limite de telas. A CLI segue automaticamente as páginas de resultado limitadas, espera quando os orçamentos de controle se esgotam e mantém a mesma chave e a mesma frota selecionada do início ao fim. --tag seleciona apenas telas ativas; os IDs podem nomear qualquer tela. Um único ID de tela mantém a resposta de uma tela. Os comandos de frota não aceitam --expect-rev, porque as proteções de revisão são por tela. Cada comando de frota leva uma chave de idempotência. Após uma solicitação interrompida, como uma conexão perdida, execute de novo o mesmo comando para repetir as telas concluídas sem repetir seus efeitos. Após uma resposta definitiva com falhas, tente de novo apenas os IDs que falharam: executar o comando inteiro outra vez age de novo em cada tela. Reutilizar a mesma --idempotency-key explícita em 24 horas retorna a resposta registrada.
Um comando de frota aceita IDs de tela, --tag TAG ou --folder ID; informar mais de um deles é um erro de uso (saída 2).
O envelope mantém ok: true. Sucesso parcial é uma resposta normal, não um erro de transporte:
{
"ok": true,
"data": {
"action": "reload",
"matched": 3, "succeeded": 2, "failed": 1,
"results": [
{ "screen_id": "scr_LOBBY", "status": "ok", "reload": { "reload_id": "…", "expires_at": "…", "state": "sent" } },
{ "screen_id": "scr_GONE", "status": "failed", "problem": { "code": "not_found", "status": 404 } },
{ "screen_id": "scr_ENTRANCE", "status": "ok", "reload": { "reload_id": "…", "expires_at": "…", "state": "queued" } }
]
},
"warnings": [{ "code": "fleet_partial_failure", "message": "1 of 3 screens failed; 2 succeeded." }]
}Um resultado ok carrega o resultado de uma única tela: revision para assign, revision e tags para alterações de tag, reload para recarregar e toast para toast. Um resultado failed carrega o problema que a própria solicitação da tela teria retornado. Limites por tela ainda se aplicam dentro de uma ação de frota, então um recarregamento ou toast de frota pode relatar rate_limited para uma tela que acabou de ser recarregada ou tostada; tente novamente esse ID de tela depois. Os limites por tela são 6 recarregamentos e 20 toasts por minuto. Recarregamentos e toasts de frota também consomem um orçamento de organização de 600 telas por minuto: o servidor pausa quando o orçamento restante se esgota, e o CLI respeita Retry-After antes de continuar automaticamente.
| Resultado | Código de saída | Aviso |
|---|---|---|
| Cada tela combinada teve sucesso | 0 | nenhum |
| Algumas ou todas as telas falharam | O código da primeira tela com falha, como 4 para not_found ou 6 para revision_conflict | fleet_partial_failure |
| Nenhuma tela corresponde | 0 | fleet_no_match |
| Seletor ou ação malformada | 2 ou o código próprio da solicitação; sem alterações na tela | nenhum |
Pastas de telas
Uma pasta de telas organiza as telas por local. O id de uma pasta começa com sfd_, e uma tela fica em no máximo uma pasta, informada como folder_id em screen show e screen list e ausente na raiz do projeto. Uma organização mantém no máximo 1000 pastas em todos os seus projetos, aninhadas em até 10 níveis, com nomes de 1 a 100 caracteres que são únicos entre as pastas irmãs. As tags continuam para grupos que cruzam os locais.
screen folder list
screen folder show <id>
screen folder create --name NAME [--parent ID] [--default-playlist-id ID] [--note TEXT]
screen folder update <id> [--name NAME] [--parent ID | --root] [--default-playlist-id ID | --clear-default] [--unprotect] [--expect-rev REVISION] [--note TEXT]
screen folder delete <id> [--expect-rev REVISION] [--note TEXT]
screen move <id>... (--folder ID | --root) [--note TEXT]screenrig screen folder create --name "North Tower"
screenrig screen folder create --name "Level 2" --parent sfd_01EXAMPLEFOLDER000000000 --default-playlist-id pl_01EXAMPLEPLAYLIST000000
screenrig screen move scr_01EXAMPLESCREEN00000000 --folder sfd_01EXAMPLEFOLDER000000000screen folder list retorna todas as pastas em data.items com id, name, parent_id (null na raiz do projeto), default_playlist_id quando definido, screens (as telas ativas diretamente dentro) e revision. screen move aceita ids de telas e de pastas em qualquer combinação, no máximo 1000 em uma única requisição tudo ou nada; uma pasta se move com tudo o que há dentro e não pode ser movida para dentro de si mesma nem de uma pasta que ela contém. screen list --folder ID lista apenas as telas diretamente dentro de uma pasta.
Em cada comando de frota que aceite --tag TAG, --folder ID seleciona cada tela ativa dessa pasta e de cada pasta dentro dela. Uma campanha aceita o mesmo: --folder ID em campaign create e campaign update, ou uma regra {"folder":"sfd_…"} em --audience, que se combina com regras de tag como em {"all":[{"folder":"sfd_BUILDING"},{"tag":"overhead"}]}.
A playlist padrão de uma pasta é o que suas telas exibem quando não têm uma playlist própria. Vale a pasta mais próxima acima de uma tela que defina uma, e effective_playlist informa source folder com o id da pasta como entry_id. Um takeover, uma campanha, uma programação e a playlist atribuída à própria tela têm precedência sobre ela; veja Agendamentos e takeover. A playlist deve estar aprovada (playlist_not_approved, exit 5).
Mover telas ou uma pasta, ou alterar a playlist padrão de uma pasta, resolve novamente as telas afetadas em cerca de 15 segundos. O levels da resposta lista, em gained e lost, as campanhas cujo público de pasta essas telas passaram a integrar ou deixaram e as playlists padrão de pasta que passaram ou deixaram de exibir, cada uma com seu source (campaign ou folder), seu id e a contagem de screens. Excluir uma pasta não exclui nada dentro dela: suas telas e pastas sobem para a pasta pai, e resource_conflict (exit 5) recusa a exclusão enquanto um público de campanha nomear a pasta. A exclusão responde 200 com levels, como uma movimentação.
As escritas exigem acesso Gerenciar: uma sessão com acesso Propor responde 403 insufficient_access. Uma alteração que alcança uma pasta protegida aguarda um segundo aprovador e responde pending_review, e --note TEXT diz ao aprovador o motivo. Cada escrita acrescenta screen.folder_created, screen.folder_updated, screen.folder_deleted ou screen.moved aos eventos do projeto.