Playlists
Uma playlist é um documento JSON de páginas. playlist init prepara um documento de tela cheia a partir de entradas ordenadas. playlist create e playlist update leem esse documento de um arquivo; playlist patch, playlist rename e playlist page add|replace|remove alteram parte dele. A forma é resumida nos comandos.
playlist init#
Prepare uma playlist de tela cheia editável a partir de arquivos de mídia locais, IDs de mídia prontos, IDs de lançamento de aplicativo, URLs HTTP ou HTTPS ou códigos de incorporação de iframe colados.
playlist init <inputs...> --name NAME --output FILE [--overwrite] [--screen-id ID]
[--target-width PX --target-height PX] [--duration-ms MS] [--fit contain|cover|fill] [--sound]
[--no-transcode] [--no-progress] [--poll-ms MS]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<inputs...> | arquivos, med_ IDs, rel_ IDs, URLs HTTP ou HTTPS ou códigos de incorporação <iframe> colados | sim | nenhum | Ordem de reprodução. Arquivos locais de imagem, vídeo e áudio são enviados e aguardam prontidão, a menos que --no-transcode. Mídias existentes devem já estar prontas. Um arquivo de áudio ou um ID med_ de áudio pronto se torna a trilha sonora, na ordem de entrada, em vez de uma página; pelo menos uma entrada deve ser uma página. URLs HTTP e HTTPS podem incluir hosts da rede local, credenciais embutidas e tokens de tela como {screen.field.kiosk_id}, mantidos como escritos, e não são buscadas. Um código de incorporação colado é lido pelo seu src. O aplicativo web do Player exige URLs HTTPS sem nome de usuário ou senha. |
--name NAME | string | sim | nenhum | Nome de exibição da playlist. |
--output FILE | caminho | sim | nenhum | Escreva o documento editável da playlist. Diretórios pai são criados. Exclusivo por padrão: um arquivo existente não vazio falha com usage_error (código de saída 2) e permanece intocado. |
--overwrite | boolean | não | desligado | Substituir um arquivo de saída existente de forma atômica por um documento criado a partir destas entradas. |
--screen-id ID | string | não | nenhum | Ler as dimensões e revisão da tela alvo. Uma tela com video wall informa o canvas do video wall e o format correspondente. |
--target-width PX / --target-height PX | integer | juntos | não definido | Substituir tamanho da tela. Ambos ou nenhum. Obrigatório quando nenhuma tela é fornecida ou a tela reporta superfícies desconhecidas ou múltiplas. |
--duration-ms MS | integer | não | 8000 | Duração das páginas que não são de vídeo. Uma página de aplicativo permanece por 24 horas (86400000) a menos que esta seja informada. |
--fit | string | não | contain | contain, cover ou fill para páginas de imagem e vídeo. Aplicativos e iframes usam fill. |
--sound | boolean | não | desligado | Toca o áudio das páginas de vídeo. Sem ela, toda página de vídeo fica sem som. Uma página com som pausa a trilha sonora enquanto é exibida. |
--no-transcode | boolean | não | desligado | Bytes do arquivo enviado aceitos sem alterações. |
--no-progress | boolean | não | desligado | Suprimir progresso de upload no stderr. |
--poll-ms MS | integer | não | 1000 | Enviar intervalo de polling. |
screenrig playlist init med_01EXAMPLEIMAGE0000000000 med_01EXAMPLEVIDEO0000000000 --name "Lobby loop" --screen-id scr_01EXAMPLESCREEN00000000 --output lobby.jsonA preparação grava o documento local e pode enviar mídia; ela não cria uma playlist remota nem atribui uma tela. Inspecione o documento e depois screen publish. Veja Preparar, publicar e editar playlists.
data relata output, width, height, page_count, soundtrack_tracks, release_ids, media_ids e uploads, e com --screen-id também screen_id, screen_revision e publish.argv; uma tela com video wall acrescenta format. Uma página de aplicativo definida com menos de 60 segundos gera um aviso application_page_short.
playlist validate#
Valide um documento de playlist localmente antes de criar ou atualizar. Sem rede.
playlist validate <file>| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<file> | caminho | sim | nenhum | O documento da playlist, ou - para stdin. |
screenrig playlist validate ./lobby-loop.jsonErros nomeiam caminhos JSON exatos. Uma aprovação significa que a forma local e a semântica cruzada são válidas; autorização, prontidão de mídia, contagens de seletor dinâmico, durações e disponibilidade remota ainda requerem verificações no servidor. playlist create, playlist update e screen publish executam essa verificação antes da gravação. data relata valid, scope e server_checks, e traz achados lint de geometria, cada um com page_id, code, id e message, que não reprovam a verificação: motion_overuse, collision, safe_margin e adjacent_repeat. Uma página de aplicativo que avança em menos de 60 segundos gera um aviso application_page_short. Para ver como uma página fica, publique-a e execute screen screenshot.
playlist create#
Cria uma playlist a partir de um documento JSON, de um modelo ou do modelo integrado Aviso urgente.
playlist create [file] [--from-template ID --name NAME [--set NAME=VALUE...] [--dry-run]] [--starter KEY [--name NAME]] [--format-region REGION --format-orientation ORIENTATION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
[file] | caminho | não | nenhum | O documento da playlist, ou - para stdin. Informe-o, ou --from-template, ou --starter. Ele contém name, pages e, opcionalmente, audio, format e fields; qualquer outro membro é um usage_error. |
--from-template ID | string | não | nenhum | Cria a playlist a partir deste modelo (um id pl_): as suas páginas atuais com os valores de --set, verificada como qualquer playlist. |
--name NAME | string | com --from-template | nenhum | O nome da nova playlist. --dry-run não precisa dele, e --starter o aceita opcionalmente. |
--set NAME=VALUE | string | não | nenhum | Com --from-template: o valor de um campo; para um campo de mídia, o id de uma imagem ou de um vídeo pronto. Pode ser repetido. NAME é um nome de campo de 1 a 32 letras minúsculas, dígitos ou sublinhados, informado uma vez. |
--dry-run | boolean | não | desligado | Com --from-template: verifica os valores e informa o número de páginas sem criar nada. |
--starter KEY | string | não | nenhum | Adicionar um modelo integrado: urgent-notice, um título e uma mensagem para anúncios rápidos. |
--format-region REGION | string | não | nenhum | header, footer ou side: transforma a playlist em uma faixa desenhada sobre a página ao longo dessa borda e substitui um format no arquivo. Informe-a junto com --format-orientation. Veja faixas. |
--format-orientation ORIENTATION | string | com --format-region | nenhum | landscape ou portrait: a orientação do display para o qual a faixa é feita, como o espectador a vê. |
--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 playlist create ./lobby-loop.jsonscreenrig playlist create --from-template pl_01EXAMPLETEMPLATE00000 --name "Monday notice" --set headline="Open late"data.id do envelope é o id pl_ que screen assign recebe. Quando a alteração aguarda revisão, data é {status: pending_review, review, playlist, next}: a playlist existe com approved_revision: 0 e nenhuma tela pode exibi-la até que uma pessoa aprove (playlist_not_approved); next é screenrig reviews show ID. Um modelo é uma playlist que declara fields; nunca é exibido em uma tela (playlist_is_template), e uma playlist criada a partir dele é uma playlist comum, que se pode atribuir, agendar e revisar.
playlist update#
Substituir um documento de playlist.
playlist update <id> <file> [--format-region REGION --format-orientation ORIENTATION] [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
<file> | caminho | sim | nenhum | O documento de substituição, ou - para stdin. Ele contém name, pages e, opcionalmente, audio, format e fields; qualquer outro membro é um usage_error. Omitir audio remove a trilha sonora, omitir format torna a playlist uma playlist comum, e fields omitidos são mantidos. |
--format-region REGION | string | não | nenhum | header, footer ou side: transforma a playlist em uma faixa desenhada sobre a página ao longo dessa borda e substitui um format no arquivo. Informe-a junto com --format-orientation. Veja faixas. |
--format-orientation ORIENTATION | string | com --format-region | nenhum | landscape ou portrait: a orientação do display para o qual a faixa é feita, como o espectador a vê. |
--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 playlist update pl_01EXAMPLEPLAYLIST000000 ./lobby-loop.jsonplaylist show ID --output FILE grava um arquivo com esta forma. Para alterar apenas parte de uma playlist, use playlist patch, playlist rename ou playlist page add|replace|remove.
Quando a alteração aguarda revisão, a playlist ao vivo continua tocando sem mudanças até que uma pessoa aprove a proposta.
playlist patch#
Altere apenas os membros de nível superior fornecidos de uma playlist e mantenha todo o resto.
playlist patch <id> [file] [--name NAME] [--clear-audio] [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
[file] | caminho | não | nenhum | Um objeto JSON parcial com qualquer um de name, pages, audio, format e fields, ou - para stdin. pages, audio e format fornecidos substituem o valor inteiro; arrays não são mesclados. audio: null remove a trilha sonora e format: null remove o formato. |
--name NAME | string | não | inalterado | Defina o nome, de 1 a 120 caracteres após o aparo, sem enviar o conteúdo. Não junto com name no arquivo. |
--clear-audio | boolean | não | desligado | Remova a trilha sonora, como audio: null faz. Nenhuma página pode manter um audio_cue. Não junto com audio no arquivo. |
--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 playlist patch pl_01EXAMPLEPLAYLIST000000 --name "Lobby loop" --expect-rev 7
screenrig playlist patch pl_01EXAMPLEPLAYLIST000000 changes.json --expect-rev 7Informe um arquivo, --name ou --clear-audio. Uma alteração apenas do nome não verifica o conteúdo existente novamente. pages e audio fornecidos são verificados em conjunto pelo servidor. Um format de região é {"region": "header", "orientation": "landscape"}; veja faixas. Sob acesso Propor, ou em um projeto que exige revisão para alterações do agente, a alteração aguarda como em playlist update e responde pending_review.
playlist rename#
Altere o nome de uma playlist sem enviar seu conteúdo.
playlist rename <id> --name NAME [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
--name NAME | string | sim | nenhum | O novo nome, de 1 a 120 caracteres após o aparo. |
--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 playlist rename pl_01EXAMPLEPLAYLIST000000 --name "Lobby loop" --expect-rev 7A forma apenas de nome de playlist patch: páginas, trilha sonora e comentários permanecem como estão, e o conteúdo existente não é verificado novamente. Uma renomeação proposta aguarda a aprovação de uma pessoa como qualquer outra alteração.
playlist page add#
Adicione uma página a uma playlist sem enviar as outras.
playlist page add <playlist-id> (--file PAGE.json | --media MED_ID) [--seconds N] [--fit contain|cover] [--sound]
[--from WHEN] [--until WHEN] [--before PAGE_ID] [--page-id ID]
[--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<playlist-id> | string | sim | nenhum | O id da playlist pl_. |
--file PAGE.json | caminho | exatamente um de --file, --media | nenhum | Um objeto de página adicionado como escrito, ou - para stdin. --seconds e --fit não se aplicam a ele. |
--media MED_ID | string | exatamente um de --file, --media | nenhum | Uma imagem ou um vídeo pronto. A página o exibe ocupando todo o canvas da playlist (o canvas do video wall em um video wall, senão o da primeira página comum) com a transição da primeira página comum, e não tem datas a menos que você as informe. Uma imagem avança após --seconds; um vídeo toca até o fim, sem som a menos que use --sound. |
--seconds N | integer | não | 10 | Quanto tempo uma imagem é exibida, de 1 a 86400. |
--fit | string | não | contain | contain ou cover. |
--sound | boolean | não | desligado | Toca o áudio do vídeo. Somente para um vídeo; a página pausa a trilha sonora enquanto é exibida e não pode conter um audio_cue. Não pode ser usado com --file, cuja página traz o seu próprio muted. |
--from WHEN | string | não | nenhum | Primeiro momento em que a página é exibida: YYYY-MM-DDTHH:MM, ou YYYY-MM-DD para 00:00, no fuso horário de cada tela. |
--until WHEN | string | não | nenhum | Fim da exibição da página, exclusivo: YYYY-MM-DDTHH:MM, ou YYYY-MM-DD para o fim desse dia. |
--before PAGE_ID | string | não | no fim | Coloque a página antes desta página. |
--page-id ID | string | não | up- e oito letras minúsculas ou dígitos | O id da nova página: uma letra, seguida de letras, dígitos, - ou _, no máximo 64 caracteres. |
--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 playlist page add pl_01EXAMPLEPLAYLIST000000 --media med_01EXAMPLEIMAGE0000000000 --from 2026-12-01 --until 2026-12-24
screenrig playlist page add pl_01EXAMPLEPLAYLIST000000 --media med_01EXAMPLEVIDEO0000000000 --before up-ab12cd34 --note "Winter menu"
screenrig playlist page add pl_01EXAMPLEPLAYLIST000000 --file page.json --page-id welcomeA página é exibida de --from até --until, exclusive. Páginas encerradas permanecem até que alguém as remova. A resposta é a playlist atualizada.
Sob acesso Propor, em um projeto que exige revisão para alterações do agente, ou como membro uploader cujas alterações são revisadas, a alteração responde pending_review (ok: true, código de saída 0). Uma alteração posterior de página na mesma playlist pelo mesmo proponente entra nessa revisão enquanto ela aguarda, de modo que uploads sucessivos não se substituem. Uma playlist que nenhuma pessoa aprovou ainda responde playlist_not_approved. Um uploader adiciona apenas páginas de mídia de suas próprias pastas às suas próprias playlists; qualquer outra coisa é outside_upload_scope, cujo upload_scope lista o que ele pode usar. Veja Uploaders.
playlist page replace#
Substitua uma página de uma playlist, mantendo sua posição e seu id.
playlist page replace <playlist-id> <page-id> [--file PAGE.json | --media MED_ID] [--seconds N] [--fit contain|cover]
[--sound] [--from WHEN] [--until WHEN | --always] [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<playlist-id> | string | sim | nenhum | O id da playlist pl_. |
<page-id> | string | sim | nenhum | A página a ser substituída. |
--file PAGE.json | caminho | não | nenhum | A nova página completa, ou - para stdin. Seu id deve ser <page-id> ou estar ausente. Não com --media. |
--media MED_ID | string | não | nenhum | Troque a mídia da página; todo o resto, datas incluídas, permanece como armazenado. A troca de imagem por imagem mantém o canvas, o ajuste, os segundos e as datas, e o mesmo vale para vídeo por vídeo. A troca de imagem por vídeo, ou o contrário, reconstrói a página como uma página de mídia no canvas da playlist, mantendo o id, a transição e as datas. Exige uma página com uma única primitiva. |
--seconds N | integer | não | inalterado | Quanto tempo uma imagem é exibida, de 1 a 86400. Não com --file. |
--fit | string | não | inalterado | contain ou cover. Não com --file. |
--sound | boolean | não | desligado | Toca o áudio do vídeo da página, sozinho ou com --media. Somente para uma página com uma única primitiva de vídeo; sem ele, uma troca mantém se a página tinha som. Não pode ser usado com --file. |
--from WHEN | string | não | inalterado | Primeiro momento em que a página é exibida: YYYY-MM-DDTHH:MM, ou YYYY-MM-DD para 00:00, no fuso horário de cada tela. Altera apenas esse limite. |
--until WHEN | string | não | inalterado | Fim da exibição da página, exclusivo: YYYY-MM-DDTHH:MM, ou YYYY-MM-DD para o fim desse dia. Altera apenas esse limite. |
--always | boolean | não | desligado | Remova as datas da página, from e until. Um desligamento, janelas semanais ou uma condição de dados que o projeto definiu permanecem. Não junto com --from ou --until. |
--expect-rev REVISION | string | não | nenhum | Pré-condição de revisão opcional. Uma página derivada da armazenada fica presa à revisão em que foi lida, a menos que você informe uma. Um valor obsoleto é revision_conflict. |
--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 playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --media med_01EXAMPLEIMAGE0000000000
screenrig playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --until 2026-12-31
screenrig playlist page replace pl_01EXAMPLEPLAYLIST000000 up-ab12cd34 --alwaysInforme pelo menos um de --file, --media, --sound, --from, --until ou --always. As flags de data também funcionam em uma página com várias primitivas; alterar a mídia, o ajuste ou os segundos exige uma página com uma única primitiva, ou a página inteira em --file. Um id de página desconhecido é recusado. As regras de revisão e de uploader são as de playlist page add; um uploader substitui apenas uma página de mídia de suas próprias pastas.
playlist page remove#
Remova uma página de uma playlist.
playlist page remove <playlist-id> <page-id> [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<playlist-id> | string | sim | nenhum | O id da playlist pl_. |
<page-id> | string | sim | nenhum | A página a ser removida. |
--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 playlist page remove pl_01EXAMPLEPLAYLIST000000 up-ab12cd34Uma playlist mantém de 1 a 100 páginas e uma página comum sem visibility, então remover a última página sem data é invalid_request. Uma página desconhecida é not_found. As regras de revisão e de uploader são as de playlist page add.
playlist show#
Leia uma playlist, incluindo sua revisão atual, ou grave-a como um documento editável.
playlist show <id> [--output FILE [--overwrite]] [--editable]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
--output FILE | caminho | não | nenhum | Escreva o documento editável em FILE e informe seu caminho, playlist_id e revision. O arquivo está pronto para playlist update como foi escrito. Diretórios pai são criados. Exclusivo por padrão. Tem precedência sobre --editable. |
--overwrite | boolean | não | desligado | Substituir um arquivo --output existente de forma atômica. Um arquivo vazio deixado por uma execução interrompida é substituído sem a flag. |
--editable | boolean | não | desligado | Retorne o documento editável e sua revisão no envelope como data.document, data.playlist_id e data.revision. |
screenrig playlist show pl_01EXAMPLEPLAYLIST000000
screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --output playlist.json
screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --editableshow simples é uma resposta de inspeção. Retorna a versão ao vivo. approved_revision é 0 para uma playlist que nenhuma pessoa aprovou ainda, e approval nomeia a revisão aberta enquanto uma mudança espera; reviews show ID retorna a proposta. Quando há notas abertas sobre a playlist, o aviso notes_about_resource as conta e nomeia screenrig notes --about ID, e --human lista até cinco.
playlist list#
Listar as playlists do projeto.
playlist list [--templates] [--library]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
--templates | boolean | não | desligado | Somente modelos: playlists que declaram campos. |
--library | boolean | não | desligado | Lista, em vez disso, as playlists da Biblioteca da organização, somente leitura: atribua-as a telas, agendamentos e pilhas, ou copie uma com playlist create --from-template; altere-as apenas no projeto Biblioteca. |
screenrig playlist list --templates
screenrig playlist list --libraryplaylist fields#
Mostra os campos de um modelo ou os valores de uma cópia, ou altera os valores e atualiza a cópia.
playlist fields <id> [--set NAME=VALUE...] [--clear NAME...] [--refresh] [--expect-rev REVISION] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id pl_ de um modelo ou de uma playlist criada a partir de um. |
--set NAME=VALUE | string | não | nenhum | Defina o valor de um campo. Pode ser repetido; NAME é um nome de campo de 1 a 32 letras minúsculas, dígitos ou sublinhados, informado uma vez. |
--clear NAME | string | não | nenhum | Limpa o valor de um campo opcional. Pode ser repetido. |
--refresh | boolean | não | desligado | Recria as páginas a partir da revisão atual do modelo, quaisquer que sejam os valores. |
--expect-rev REVISION | string | não | nenhum | Exige opcionalmente esta revisão do recurso. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração. |
screenrig playlist fields pl_01EXAMPLECOPY00000000 --set headline="Closed today"Sem opções, mostra os campos de um modelo e quantas playlists foram criadas a partir dele, ou os valores de uma cópia, a revisão do modelo de que foi criada e se o modelo tem uma mais recente. data.kind é template ou instance: um modelo relata fields e instances, uma cópia template_id, template_revision, template_current_revision, outdated e values. Cada alteração, e --refresh sozinho, recria as páginas da cópia a partir da revisão atual do modelo, e é assim que uma mudança de marca feita no modelo chega às cópias existentes; nada é enviado automaticamente. Os valores são verificados como na criação. Com acesso Propose, uma alteração vira uma revisão.
playlist instances#
Lista as playlists criadas a partir de um modelo e a revisão do modelo de que cada uma foi criada.
playlist instances <id>| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id pl_ do modelo. |
screenrig playlist instances pl_01EXAMPLETEMPLATE00000outdated marca uma playlist criada a partir de uma revisão mais antiga do modelo; playlist fields ID --refresh a atualiza.
playlist revisions#
Listar as revisões de uma playlist, da mais recente para a mais antiga.
playlist revisions <id> [--after CURSOR]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
--after CURSOR | string | não | nenhum | O data.next_cursor da página anterior. |
screenrig playlist revisions pl_01EXAMPLEPLAYLIST000000Cada revisão em data.items diz o que a criou (created, edited, promoted com a revisão copiada como restored_from, ou baseline, a revisão que a playlist tinha quando seu histórico começou), quem a fez, quando, seu nome, quantas páginas tem e se é current. Uma página tem no máximo 50 revisões; enquanto data.next_cursor for uma string, há revisões mais antigas, e null marca a última página. As revisões são mantidas enquanto a playlist existir.
playlist revision show#
Ler uma revisão e a playlist como estava nela.
playlist revision show <id> --revision N| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
--revision N | integer | sim | nenhum | A revisão a ler. |
screenrig playlist revision show pl_01EXAMPLEPLAYLIST000000 --revision 3data.revision contém os campos que playlist revisions lista e data.playlist a playlist como estava: nome, páginas, trilha sonora e formato, com revision definido como esta. Uma revisão que a playlist nunca teve, ou uma anterior ao início do seu histórico, é not_found.
playlist promote#
Tornar uma revisão anterior atual novamente, copiando-a como uma nova revisão.
playlist promote <id> --revision N --expect-rev CURRENT| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
--revision N | integer | sim | nenhum | A revisão a copiar. |
--expect-rev CURRENT | string | sim | nenhum | A revisão atual da playlist (playlist show). Um valor obsoleto é revision_conflict: leia a playlist novamente e tente de novo. |
screenrig playlist promote pl_01EXAMPLEPLAYLIST000000 --revision 3 --expect-rev 9As páginas, a trilha sonora e o formato da revisão passam a ser a próxima revisão. O nome continua o mesmo, as revisões anteriores continuam na lista e toda tela que mostra a playlist é atualizada; o comando retorna assim que a playlist é gravada e não espera os Players. As páginas são resolvidas novamente como em qualquer gravação: um seletor corresponde à mídia de hoje, e uma mídia ou um aplicativo usado pela revisão que foi removido ou não está pronto faz a promoção ser recusada com o problema que uma gravação receberia. Promover exige uma credencial que publica ao vivo; uma cujas alterações aguardam revisão recebe forbidden, e uma playlist que nenhuma pessoa aprovou ainda é playlist_not_approved. Uma revisão cujo conteúdo já é o atual não muda nada. Promover é um recurso do Premium: um plano sem ele responde feature_not_in_plan (saída 8), enquanto playlist revisions e playlist revision show estão em todos os planos.
playlist delete#
Excluir uma playlist.
playlist delete <id> [--expect-rev REVISION]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
--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 playlist delete pl_01EXAMPLEPLAYLIST000000Uma playlist não é excluída enquanto uma tela, arquivada ou ainda em pareamento, a tiver como padrão, em sua programação de playlists ou como seu takeover, enquanto uma pasta de telas a tiver como padrão, ou enquanto uma campanha a reproduzir: a resposta é resource_conflict (código de saída 5). Altere isso primeiro.
playlist export#
Exporta arquivos de imagem e vídeo, áudio da trilha sonora e URLs de iframe como um pacote portátil de playlist.
playlist export <id> --output DIRECTORY [--skip-applications]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
--output DIRECTORY | caminho | sim | nenhum | Diretório de destino. Não deve existir; o pacote é escrito por meio de um irmão temporário e renomeado para o lugar. |
--skip-applications | boolean | não | desligado | Remove primitivas de aplicativo e páginas vazias ou controladas por um aplicativo. Deve restar pelo menos uma página. O resultado lista os IDs das primitivas e páginas ignoradas. |
screenrig playlist export pl_01EXAMPLEPLAYLIST000000 --output ./lobby-bundleO pacote contém um manifesto, o documento da playlist e arquivos de imagem, vídeo e áudio da trilha sonora endereçados por conteúdo. Ele traz name, audio e pages; um format e o fields de um modelo ficam de fora. Os seletores dinâmicos all, tag e folder são fixados em IDs exatos, as URLs de iframe são preservadas e os comentários são excluídos.
Cartões, streams e páginas adslot interrompem a exportação antes do download dos arquivos de mídia. Aplicativos também a interrompem por padrão; --skip-applications remove as primitivas de aplicativo e as páginas vazias ou controladas por um aplicativo, informando os IDs das primitivas e páginas ignoradas. Deve restar pelo menos uma página. Cartões, streams e páginas adslot continuam interrompendo a exportação com essa opção.
Para obter um documento editável que preserve as referências a cartões e aplicativos, use screenrig playlist show pl_01EXAMPLEPLAYLIST000000 --output playlist.json. O documento usa recursos existentes do mesmo projeto.
playlist import#
Criar uma playlist a partir de um diretório de pacote ou atualizar uma existente a partir dele.
playlist import <directory> [--name NAME] [--update ID [--expect-rev REVISION]] [--poll-ms MS] [--note TEXT]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<directory> | caminho | sim | nenhum | Um diretório de pacote escrito por playlist export. |
--name NAME | string | não | o nome da playlist do pacote | 1 a 120 caracteres. Nomeia a nova playlist ou renomeia aquela que --update substitui. |
--update ID | string | não | uma nova playlist é criada | Atualizar esta playlist pl_ em vez de criar uma nova. Afeta todas as telas atribuídas a ela. Aceita --expect-rev opcional. |
--expect-rev REVISION | string | não | nenhum | Com --update: a revisão atual da playlist de destino. |
--poll-ms MS | integer | não | 1000 | Intervalo de pesquisa dos uploads enquanto a mídia fica pronta. |
--note TEXT | string | não | nenhum | Uma nota para a pessoa que revisa a alteração quando ela aguarda revisão, no máximo 280 caracteres. |
screenrig playlist import ./lobby-bundle
screenrig playlist import ./lobby-bundle --name "Lobby loop (copy)"
screenrig playlist import ./lobby-bundle --update pl_01EXAMPLEPLAYLIST000000Nomes de exibição da playlist podem se repetir. A importação cria uma playlist separada mesmo quando o nome coincide; use --update com um ID para substituir uma playlist existente.
Importação valida todo o pacote localmente antes de tocar no projeto: manifesto, documento, caminhos, tipos de mídia, tamanhos e hashes. Mídias existentes são reutilizadas com correspondência exata de nome de arquivo, tipo de mídia, tamanho em bytes, hash e tag; o resto é enviado sem conversão, e a playlist é escrita somente após todos os objetos estarem prontos. data relata mode (create ou update), source_playlist_id, playlist, directory e media com total, reused e uploaded.
Sob acesso Propor, ou em um projeto que exige revisão para alterações do agente, a mídia ainda é enviada e a gravação da playlist vira uma revisão: data.status é pending_review, data.review a nomeia e data.next é screenrig reviews show ID. Nada muda na tela até que uma pessoa aprove.
Importação nunca exclui ou poda mídia remota. Se uma etapa posterior falhar após o início do upload, o erro lista os objetos confirmados prontos e informa se a escrita da playlist começou. Repetir o mesmo pacote reutiliza esses objetos.
playlist replace-release#
Faça uma prévia ou aplique a substituição de uma versão de aplicativo em uma playlist, com as telas que ela alcança.
playlist replace-release <id> --page PAGE_ID --primitive PRIMITIVE_ID --release-id REL_ID
[--apply [--expect-rev REVISION] [--expect-impact TOKEN] [--note TEXT]]| Parâmetro | Tipo | Obrigatório | Padrão | Notas |
|---|---|---|---|---|
<id> | string | sim | nenhum | O id da playlist pl_. |
--page PAGE_ID | string | sim | nenhum | O id exato da página que contém o aplicativo. |
--primitive PRIMITIVE_ID | string | sim | nenhum | O id exato da primitiva application nessa página. |
--release-id REL_ID | string | sim | nenhum | A nova versão imutável rel_, de data.application.release_id de app update. |
--apply | boolean | não | desligado | Grave a substituição. Sem isso, o comando é uma prévia somente leitura. |
--expect-rev REVISION | string | não | nenhum | Com --apply: a revisão da playlist da prévia. Uma revisão atual diferente é revision_conflict, e o servidor a verifica de forma atômica. |
--expect-impact TOKEN | string | não | nenhum | Com --apply: data.impact da prévia. Se a substituição ou as telas afetadas mudaram desde então, a gravação é resource_conflict: faça a prévia novamente. |
--note TEXT | string | não | nenhum | Com --apply: uma nota para a pessoa que revisa a alteração quando ela aguarda revisão. |
screenrig playlist replace-release pl_01EXAMPLEPLAYLIST000000 --page board-page --primitive board --release-id rel_NEW
screenrig playlist replace-release pl_01EXAMPLEPLAYLIST000000 --page board-page --primitive board --release-id rel_NEW --applyA prévia lista as telas ativas, com pareamento pendente e arquivadas cuja atribuição padrão, entradas de programação armazenadas (incluindo as pausadas e as futuras), takeover ou playlist efetiva atual (incluindo a reprodução de campanha e de pasta herdada) referencia a playlist. data traz previous_release_id, release_id, revision, affected_screens (cada um com id, label, state e revision), impact e applied. Um --apply direto pula o levantamento das telas, então affected_screens é omitido a menos que --expect-impact seja informado. Uma versão já fixada é bem-sucedida sem gravar. Em revisão, --apply propõe a nova fixação. Veja Substituir uma versão do aplicativo.
O documento da playlist
Uma playlist é name (1 a 120 caracteres) mais pages (1 a 100), com uma trilha sonora audio opcional e um format opcional. Cada página contém id, canvas, transition, advance, visibility opcional, audio_cue opcional e primitives (1 a 24). Os IDs de página, de primitiva e de faixa são uma letra seguida de até 63 letras, dígitos, _ ou -; os IDs de página são únicos na playlist e os de primitiva em sua página. Um canvas recebe width e height de 1 a 1.000.000, um background e um viewport_fit opcional: veja Fundo e movimento da página.
Um format torna uma playlist um video wall, {displays, arrangement, orientation} com columns para um grid, ou uma faixa, {region, orientation}. Um video wall tem de 2 a 12 displays de 1920 x 1080 (1080 x 1920 em retrato), toda página comum tem o canvas do video wall, e o displays de uma primitiva nomeia os blocos que ela cobre no lugar de rect. Veja Video walls e Faixas. Uma página de slot de anúncio, {id, type: "adslot", adslot_id} com visibility opcional, não contém canvas nem primitivas; uma playlist contém no máximo 16 delas e mantém uma página comum sem visibility.
Um modelo adiciona fields ao documento, [{name, label, type, required, max_length?}] com type igual a text, media ou url, e pode marcar qualquer primitiva como locked: true. Uma página lê um campo como {field.NAME} nos params de um cartão (campos de texto e de endereço), como selector.media_id de uma imagem ou de um vídeo (um campo de mídia) ou como src inteiro de um iframe (um campo de endereço). Cada marcador deve nomear um campo declarado do tipo certo, cada campo deve ser lido e uma primitiva bloqueada não lê nenhum; playlist validate verifica isso offline. Só o proprietário ou um membro que possa aprovar altera uma primitiva bloqueada (primitive_locked). Um modelo declara no máximo 16 campos: name tem de 1 a 32 letras minúsculas, dígitos ou sublinhados, label até 60 caracteres, e o max_length de um campo de texto (padrão 200) até 2000. Um campo opcional de mídia ou de endereço deixado sem valor deixa de fora a primitiva que o lê. Declarar fields e travar uma primitiva fazem parte dos modelos de playlist, um recurso do Premium. Um format de video wall de 2 ou 3 telas exige o Plus, e um de 4 a 12 telas, o Enterprise. Um plano sem o recurso responde feature_not_in_plan com required_plan, enquanto uma gravação que mantém o que a playlist já tem continua liberada. Criar uma cópia a partir de um modelo está em todos os planos.
As seis primitivas são image, video enviado, stream ao vivo, iframe web e application, e card. Texto e moldura não são tipos de transmissão: coloque um card para texto ao vivo, ou envie uma imagem estática pronta que o seu agente criou e coloque-a como imagem.
Um stream usa uma ou duas fontes ordenadas com protocolos únicos e uma imagem pronta do mesmo projeto como fallback_media_id. Use no máximo um stream por página e avanço baseado em duração. HLS usa uma URL HTTPS pública; os Players Android e Qt se conectam diretamente aos feeds RTSP das câmeras, incluindo as credenciais. Consulte os detalhes dos transportes de câmera para saber quais formatos de URL cada Player abre; o multicast UDP/MPEG-TS direto opcional no Android e Qt usa um grupo IPv4 em 239/8 e uma porta. Uma fonte pode informar apenas sua url e deixar o esquema definir o protocolo. Outros Players selecionam a alternativa HLS ou exibem o fallback. Bytes do stream não são armazenados em cache para reprodução. O áudio é mudo por padrão; muted definido como false o reproduz, com as regras do som de um vídeo descritas abaixo. A importação e a exportação de pacote de playlist não suportam streams.
{
"id": "live",
"primitive": "stream",
"sources": [
{
"protocol": "udp-mpegts",
"group": "239.10.0.1",
"port": 5000
},
{
"protocol": "hls",
"url": "https://example.com/live.m3u8"
}
],
"fallback_media_id": "med_fallback",
"muted": true,
"rect": {
"x": 0,
"y": 0,
"width": 1920,
"height": 1080
},
"layer": 0,
"content_fit": "contain"
}Use este primitivo em uma página com advance: {"mode":"duration","after_ms":30000}. Substitua o feed de exemplo e o ID de fallback. Requisitos do Player e configuração do transporte.
Toda primitiva é plana: id, primitive, os campos próprios dessa primitiva, depois rect, layer, content_fit e enter e motion opcionais. Não há objeto de conteúdo aninhado. rect é x, y, width e height em unidades de canvas e layer um número inteiro de 0 a 1024. Um rect pode se estender além do canvas para sangria: os Players ajustam o conteúdo ao rect inteiro e depois cortam no canvas, então use content_fit cover ou fill para preencher o canvas visível. Um cartão é posicionado por layout e precisa de um rect apenas para free; em uma playlist de video wall displays substitui rect.
Primitivas de imagem e vídeo exigem selector. selector.by é id com um media_id pronto e one_at_a_time false, ids com 1 a 1.024 media_ids prontos únicos, all para todo objeto pronto dessa primitiva, tag correspondente a ^[A-Za-z0-9]{1,32}$, ou folder com o folder_id de uma pasta de mídia mfd_ existente, que reproduz diretamente os arquivos prontos dentro dela e nenhuma de suas subpastas. Não coloque media_id na própria primitiva nem envie itens resolvidos pelo servidor. Uma primitiva application fixa um release_id e uma primitiva iframe recebe um src e um title de 1 a 200 caracteres, então nenhuma delas aceita um seletor. src é qualquer página http ou https que a tela consiga alcançar, inclusive uma página da LAN ou atrás de um login; um link do YouTube é armazenado como seu embed com reprodução automática. src, e o fallback_src opcional de um iframe, podem trazer tokens de tela como {screen.field.kiosk_id}, e uma primitiva application pode trazer params com os mesmos tokens, de modo que uma playlist dá a cada tela sua própria página. Os Players Android, Amazon Signage Stick, Linux, Raspberry Pi e Windows abrem a própria página. O app web do Player e os Players macOS, Samsung Tizen, LG webOS e BrightSign a enquadram, então uma página que envia X-Frame-Options (DENY, SAMEORIGIN ou o obsoleto ALLOW-FROM), ou uma lista Content-Security-Policy frame-ancestors sem a origem do Player, mostra um quadro bloqueado neles, e o app web do Player mostra apenas páginas https sem login no endereço. Quando a publicação detecta uma página HTTPS pública que recusa enquadramento, a escrita ainda tem sucesso e a CLI imprime a entrada warnings do servidor: código iframe_framing_refused, o page_id, primitive_id e src, o cabeçalho que recusou e o próximo passo (use uma página que permita enquadramento a partir da origem do Player, ou peça ao seu responsável que permita essa origem). O servidor também acrescenta um aviso playlist.iframe_framing_refused ao registro de eventos, um por página que recusa, que events list imprime com primitive_id. Uma página da LAN, uma página http e uma página que o servidor não alcança em alguns segundos não são verificadas. Um Player informa uma playlist como em reprodução quando seu manifesto está na tela, então uma publicação verificada não prova que uma página iframe foi renderizada: aja sobre o aviso ou olhe a tela. As duas primitivas web exigem content_fit de fill, porque nenhuma delas tem tamanho intrínseco.
Um iframe também aceita reload_s (0, o padrão, nunca recarrega; de 60 a 86400 carrega src novamente a cada reload_s segundos enquanto a página está na tela), fallback_src (a página exibida quando src não carrega, com as formas e regras de src; um src recuperado a substitui na próxima recarga) e navigation_allowlist (de 1 a 64 fontes de host da forma [scheme://]host[:port][path], como example.com, *.example.com ou https://example.com/docs/; com uma lista, os links da página, as navegações por script e os redirecionamentos alcançam apenas src, fallback_src e endereços correspondentes; omita-o para não ter restrição, uma lista vazia é recusada). Um código de incorporação <iframe> colado é lido pelo seu src. Um link de compartilhamento do Google Slides, Docs ou Sheets, de Publicar na Web ou de incorporação, ou um link Incorporar do Microsoft 365, é armazenado reconstruído para a tela: os decks do Slides e do PowerPoint rodam em loop, um deck do Slides avança no próprio atraso do link, limitado à duração da página (dê à página o tempo do deck inteiro), e Docs, Sheets, Word e Excel recarregam a cada 5 minutos. Um arquivo que pede login aos espectadores é recusado com document_not_shared, cujo detalhe nomeia a configuração de compartilhamento a mudar. Veja Exibir uma página web, um vídeo ou um documento.
advance.mode é duration com after_ms, que em uma página com exatamente um vídeo do YouTube (nem playlist nem transmissão ao vivo) também pode levar until definido como video_end para que a página dure até o vídeo terminar e after_ms seja por quanto tempo ela é exibida quando a tela não consegue ler a duração do vídeo, media_end em uma página com exatamente uma primitiva de imagem ou vídeo, audio_end em uma página cujo audio_cue nomeia uma faixa sonora, ou application com max_ms quando o app termina sua própria vez chamando window.screenrig.nextPage(). Uma página application precisa de exatamente uma primitiva marcada controller; todo outro modo a proíbe. after_ms, max_ms e dwell_ms são milissegundos inteiros de 1.000 a 86.400.000, e uma imagem em uma página media_end precisa de dwell_ms. Uma página contém no máximo um stream e no máximo duas primitivas application ou iframe, e media_end proíbe ambos.
transition.type é um entre crossfade, swipe-left, swipe-right, swipe-up, swipe-down, dip, wipe-left, wipe-right, wipe-up, wipe-down, slide-left, slide-right, slide-up, slide-down ou stinger. duration_ms é obrigatório, de 0 a 60000. playlist init grava uma transição crossfade de 200 ms. Swipe move ambas as páginas juntas como um carrossel. Slide move a página que entra sobre a que sai, que se desloca um quarto da distância. Wipe revela a página que entra atrás de uma borda dura em movimento. Dip desvanece a página que sai para uma cor sólida e depois para a página que entra; color é um #RRGGBB opcional, padrão #000000, e válido apenas em dip. Os nomes das direções indicam o sentido do movimento: wipe-left é uma borda movendo-se para a esquerda. ease é opcional: linear, in, out ou in-out; o padrão é linear para crossfade e swipe-* e in-out para dip, wipe-* e slide-*; não é permitido em stinger. A página que entra controla sua transição. A primeira página de uma playlist não tem transição.
Um stinger é um gráfico temático em tela cheia que cobre a página de saída, troca pela página de entrada enquanto a tela está coberta, e então a descobre. Use-o para nomear uma seção de uma playlist: coloque-o na primeira página da seção. O objeto stinger é obrigatório para type: "stinger" e não permitido em outros tipos. Todos os seus membros são opcionais. theme é um dos neomustard (o padrão), cyanotype, propaganda, signal, avant-garde, bloom ou primetime, e corresponde aos temas dos cartões. title tem até 40 caracteres e subtitle até 60, definidos no tipo de exibição do tema. logo é media: mais o id de uma imagem pronta no projeto, por exemplo media:med_01EXAMPLE. accent é um #RRGGBB opcional que substitui o destaque do tema. duration_ms para um stinger é de 2000 a 6000 e cobre todo o bumper; durações típicas são de 2700 a 4000. O título permanece totalmente exibido por hang_ms, de 0 a 6000, padrão 1000 (um segundo), e hang_ms é no máximo 60% de duration_ms; um tempo maior requer um duration_ms maior. Um Player que não pode desenhar um stinger reproduz um crossfade da mesma duração. Veja a página ao vivo Cartão Stinger para assistir à transição.
O exemplo a seguir mostra uma transição de página stinger:
{ "type": "stinger", "duration_ms": 3500, "stinger": { "theme": "primetime", "title": "BREAKFAST", "subtitle": "Served until 11", "logo": "media:med_01EXAMPLE", "hang_ms": 1000 } }Um objeto enter opcional em uma primitiva adiciona uma animação de objeto: fade-up, fade-down, fade-left, fade-right, fade-in, zoom-in ou zoom-out, e um stagger opcional de 0 a 8 atrasa seu início em 120 ms por passo. Um motion opcional mantém uma primitiva em movimento depois que ela entra: spin e drift giram ou deslizam uma imagem ou um vídeo, e path move uma imagem, um vídeo, um aplicativo ou um iframe ao longo de waypoints. Veja Fundo e movimento da página.
Um objeto de página visibility opcional limita quando a página é exibida: um booleano enabled obrigatório, limites civis from e until opcionais, e até 16 windows recorrentes de dias e horários civis. from e until são YYYY-MM-DDTHH:MM no fuso horário de cada tela, from inclusivo e until exclusivo e posterior a from; uma janela é days (mon a sun) com start e end como HH:MM, informados juntos ou ambos omitidos para o dia inteiro, e um end igual ou anterior a start atravessa a meia-noite. enabled: false oculta a página; enabled: true precisa de pelo menos um de from, until, windows ou data. Cada playlist mantém pelo menos uma página sem campo visibility algum. Uma tela lê esses horários em seu fuso horário efetivo: a substituição, senão o fuso que seu Player informa, senão UTC.
Uma condição visibility.data de página, {key, path?, equals?}, mostra a página apenas enquanto um documento de dados de cartão corresponde: key é uma chave de dados de cartão ou um ID de cartão, path um ponteiro RFC 6901 dentro do documento, e equals uma string, um número, um booleano ou null (omita-o para testar se o valor existe). A chave {screen.weather} lê o clima da localização própria de cada tela, que screen update ID --location LAT,LON define: {"enabled":true,"data":{"key":"{screen.weather}","path":"/condition","equals":"rain"}} mostra a página apenas enquanto chove onde essa tela está. O documento do clima tem condition (clear, cloud, fog, rain, snow, storm ou wind), band (freezing abaixo de 0 °C, cold de 0 a 9, mild de 10 a 17, warm de 18 a 24, hot a partir de 25), temperatureC em graus inteiros e isDay. É o clima atual da célula de 0,25 grau da tela, atualizado cerca de uma vez por hora, não uma previsão. Uma tela sem localização nunca mostra a página, e a publicação recusa um path ou um equals que o documento não pode conter, como cloudy em vez de cloud. Um Player que não declara a capacidade de host page.conditions recebe essa página desativada. Condições de dados são um recurso do Plus: sem ele, uma gravação que adiciona uma condição visibility.data que a página ainda não tem recebe feature_not_in_plan, enquanto manter ou remover uma condição salva e a visibilidade por janelas de horário continuam liberadas. Mantenha uma página comum sem visibility como reserva.
Um primitivo video ou stream toca sem som, a menos que defina muted como false. Nesse caso, ele toca seu som no volume da tela enquanto sua página é a atual, e essa página pausa a trilha sonora da playlist, que retoma do mesmo ponto na próxima página sem som. Vários primitivos em uma mesma página tocam todos o seu som. Uma página com som não pode conter um audio_cue: uma gravação que adiciona um responde invalid_request em pages[i].audio_cue, “a page with sound cannot cue the soundtrack”, enquanto uma página antiga já armazenada que tem os dois continua tocando. Anúncios continuam sem som.
Um objeto audio opcional de nível superior adiciona uma trilha sonora que toca continuamente enquanto as páginas mudam e pausa em uma página com som. tracks lista de 1 a 128 entradas na ordem de reprodução, cada uma com um id único (o padrão de id da página) e o media_id de um objeto de mídia audio pronto. loop padrão é true e reinicia na primeira faixa após a última; volume padrão é 1 e varia de 0 a 1, multiplicado pelo volume do Player; cued padrão é false, e true para a trilha sonora após cada faixa para que uma faixa toque apenas quando uma página audio_cue a iniciar. Uma página comum pode conter audio_cue com um id track dessa lista e um booleano restart opcional (padrão false): quando a página aparece, o Player muda para essa faixa desde o início, reiniciando-a apenas quando já está tocando e restart é true. Cues são dicas, páginas de adslot não podem contê-las, e um cue sem trilha sonora é rejeitado. Uma página com advance {"mode":"audio_end"} termina quando a faixa que seu audio_cue nomeia termina, então requer esse cue e uma trilha sonora, não aceita after_ms, e segue as regras duration para primitivos de imagem e vídeo; um primitivo stream ainda precisa de uma página duration, e um aplicativo na página nunca é seu controlador; max_ms é uma dica opcional que o servidor substitui. playlist update substitui o documento inteiro, então omitir audio remove a trilha sonora; playlist patch a mantém, a menos que audio seja fornecido, e --clear-audio ou audio: null a remove. Uma faixa não tem trilha sonora. Criação de trilha sonora.