Documentação

Playlists: comandos da CLI

Prepare, valide, crie, altere, exporte e importe playlists, gerencie páginas, revisões e instâncias e substitua uma versão de aplicativo.

Cada comando funciona como descrito na referência da CLI: flags globais, saída JSON, códigos de saída, revisões e tentativas.

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âmetroTipoObrigatórioPadrãoNotas
<inputs...>arquivos, med_ IDs, rel_ IDs, URLs HTTP ou HTTPS ou códigos de incorporação <iframe> coladossimnenhumOrdem 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 NAMEstringsimnenhumNome de exibição da playlist.
--output FILEcaminhosimnenhumEscreva 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.
--overwritebooleannãodesligadoSubstituir um arquivo de saída existente de forma atômica por um documento criado a partir destas entradas.
--screen-id IDstringnãonenhumLer 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 PXintegerjuntosnão definidoSubstituir tamanho da tela. Ambos ou nenhum. Obrigatório quando nenhuma tela é fornecida ou a tela reporta superfícies desconhecidas ou múltiplas.
--duration-ms MSintegernão8000Duraçã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.
--fitstringnãocontaincontain, cover ou fill para páginas de imagem e vídeo. Aplicativos e iframes usam fill.
--soundbooleannãodesligadoToca 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-transcodebooleannãodesligadoBytes do arquivo enviado aceitos sem alterações.
--no-progressbooleannãodesligadoSuprimir progresso de upload no stderr.
--poll-ms MSintegernão1000Enviar intervalo de polling.
screenrig playlist init med_01EXAMPLEIMAGE0000000000 med_01EXAMPLEVIDEO0000000000 --name "Lobby loop" --screen-id scr_01EXAMPLESCREEN00000000 --output lobby.json

A 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âmetroTipoObrigatórioPadrãoNotas
<file>caminhosimnenhumO documento da playlist, ou - para stdin.
screenrig playlist validate ./lobby-loop.json

Erros 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âmetroTipoObrigatórioPadrãoNotas
[file]caminhonãonenhumO 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 IDstringnãonenhumCria a playlist a partir deste modelo (um id pl_): as suas páginas atuais com os valores de --set, verificada como qualquer playlist.
--name NAMEstringcom --from-templatenenhumO nome da nova playlist. --dry-run não precisa dele, e --starter o aceita opcionalmente.
--set NAME=VALUEstringnãonenhumCom --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-runbooleannãodesligadoCom --from-template: verifica os valores e informa o número de páginas sem criar nada.
--starter KEYstringnãonenhumAdicionar um modelo integrado: urgent-notice, um título e uma mensagem para anúncios rápidos.
--format-region REGIONstringnãonenhumheader, 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 ORIENTATIONstringcom --format-regionnenhumlandscape ou portrait: a orientação do display para o qual a faixa é feita, como o espectador a vê.
--note TEXTstringnãonenhumUma 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.json
screenrig 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
<file>caminhosimnenhumO 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 REGIONstringnãonenhumheader, 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 ORIENTATIONstringcom --format-regionnenhumlandscape ou portrait: a orientação do display para o qual a faixa é feita, como o espectador a vê.
--expect-rev REVISIONstringnãonenhumPré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente.
--note TEXTstringnãonenhumUma 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.json

playlist 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
[file]caminhonãonenhumUm 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 NAMEstringnãoinalteradoDefina o nome, de 1 a 120 caracteres após o aparo, sem enviar o conteúdo. Não junto com name no arquivo.
--clear-audiobooleannãodesligadoRemova a trilha sonora, como audio: null faz. Nenhuma página pode manter um audio_cue. Não junto com audio no arquivo.
--expect-rev REVISIONstringnãonenhumPré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente.
--note TEXTstringnãonenhumUma 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 7

Informe 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
--name NAMEstringsimnenhumO novo nome, de 1 a 120 caracteres após o aparo.
--expect-rev REVISIONstringnãonenhumPré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente.
--note TEXTstringnãonenhumUma 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 7

A 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âmetroTipoObrigatórioPadrãoNotas
<playlist-id>stringsimnenhumO id da playlist pl_.
--file PAGE.jsoncaminhoexatamente um de --file, --medianenhumUm objeto de página adicionado como escrito, ou - para stdin. --seconds e --fit não se aplicam a ele.
--media MED_IDstringexatamente um de --file, --medianenhumUma 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 Nintegernão10Quanto tempo uma imagem é exibida, de 1 a 86400.
--fitstringnãocontaincontain ou cover.
--soundbooleannãodesligadoToca 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 WHENstringnãonenhumPrimeiro 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 WHENstringnãonenhumFim da exibição da página, exclusivo: YYYY-MM-DDTHH:MM, ou YYYY-MM-DD para o fim desse dia.
--before PAGE_IDstringnãono fimColoque a página antes desta página.
--page-id IDstringnãoup- e oito letras minúsculas ou dígitosO id da nova página: uma letra, seguida de letras, dígitos, - ou _, no máximo 64 caracteres.
--expect-rev REVISIONstringnãonenhumPré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente.
--note TEXTstringnãonenhumUma 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 welcome

A 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âmetroTipoObrigatórioPadrãoNotas
<playlist-id>stringsimnenhumO id da playlist pl_.
<page-id>stringsimnenhumA página a ser substituída.
--file PAGE.jsoncaminhonãonenhumA nova página completa, ou - para stdin. Seu id deve ser <page-id> ou estar ausente. Não com --media.
--media MED_IDstringnãonenhumTroque 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 NintegernãoinalteradoQuanto tempo uma imagem é exibida, de 1 a 86400. Não com --file.
--fitstringnãoinalteradocontain ou cover. Não com --file.
--soundbooleannãodesligadoToca 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 WHENstringnãoinalteradoPrimeiro 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 WHENstringnãoinalteradoFim da exibição da página, exclusivo: YYYY-MM-DDTHH:MM, ou YYYY-MM-DD para o fim desse dia. Altera apenas esse limite.
--alwaysbooleannãodesligadoRemova 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 REVISIONstringnãonenhumPré-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 TEXTstringnãonenhumUma 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 --always

Informe 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âmetroTipoObrigatórioPadrãoNotas
<playlist-id>stringsimnenhumO id da playlist pl_.
<page-id>stringsimnenhumA página a ser removida.
--expect-rev REVISIONstringnãonenhumPré-condição opcional de revisão. Omitir para escrever o recurso atual. Um valor obsoleto fornecido é revision_conflict: buscar novamente, reaplicar, tentar novamente.
--note TEXTstringnãonenhumUma 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-ab12cd34

Uma 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
--output FILEcaminhonãonenhumEscreva 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.
--overwritebooleannãodesligadoSubstituir um arquivo --output existente de forma atômica. Um arquivo vazio deixado por uma execução interrompida é substituído sem a flag.
--editablebooleannãodesligadoRetorne 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 --editable

show 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âmetroTipoObrigatórioPadrãoNotas
--templatesbooleannãodesligadoSomente modelos: playlists que declaram campos.
--librarybooleannãodesligadoLista, 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 --library

playlist 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id pl_ de um modelo ou de uma playlist criada a partir de um.
--set NAME=VALUEstringnãonenhumDefina 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 NAMEstringnãonenhumLimpa o valor de um campo opcional. Pode ser repetido.
--refreshbooleannãodesligadoRecria as páginas a partir da revisão atual do modelo, quaisquer que sejam os valores.
--expect-rev REVISIONstringnãonenhumExige opcionalmente esta revisão do recurso.
--note TEXTstringnãonenhumUma 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id pl_ do modelo.
screenrig playlist instances pl_01EXAMPLETEMPLATE00000

outdated 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
--after CURSORstringnãonenhumO data.next_cursor da página anterior.
screenrig playlist revisions pl_01EXAMPLEPLAYLIST000000

Cada 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
--revision NintegersimnenhumA revisão a ler.
screenrig playlist revision show pl_01EXAMPLEPLAYLIST000000 --revision 3

data.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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
--revision NintegersimnenhumA revisão a copiar.
--expect-rev CURRENTstringsimnenhumA 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 9

As 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
--expect-rev REVISIONstringnãonenhumPré-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_01EXAMPLEPLAYLIST000000

Uma 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
--output DIRECTORYcaminhosimnenhumDiretório de destino. Não deve existir; o pacote é escrito por meio de um irmão temporário e renomeado para o lugar.
--skip-applicationsbooleannãodesligadoRemove 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-bundle

O 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âmetroTipoObrigatórioPadrãoNotas
<directory>caminhosimnenhumUm diretório de pacote escrito por playlist export.
--name NAMEstringnãoo nome da playlist do pacote1 a 120 caracteres. Nomeia a nova playlist ou renomeia aquela que --update substitui.
--update IDstringnãouma nova playlist é criadaAtualizar esta playlist pl_ em vez de criar uma nova. Afeta todas as telas atribuídas a ela. Aceita --expect-rev opcional.
--expect-rev REVISIONstringnãonenhumCom --update: a revisão atual da playlist de destino.
--poll-ms MSintegernão1000Intervalo de pesquisa dos uploads enquanto a mídia fica pronta.
--note TEXTstringnãonenhumUma 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_01EXAMPLEPLAYLIST000000

Nomes 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âmetroTipoObrigatórioPadrãoNotas
<id>stringsimnenhumO id da playlist pl_.
--page PAGE_IDstringsimnenhumO id exato da página que contém o aplicativo.
--primitive PRIMITIVE_IDstringsimnenhumO id exato da primitiva application nessa página.
--release-id REL_IDstringsimnenhumA nova versão imutável rel_, de data.application.release_id de app update.
--applybooleannãodesligadoGrave a substituição. Sem isso, o comando é uma prévia somente leitura.
--expect-rev REVISIONstringnãonenhumCom --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 TOKENstringnãonenhumCom --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 TEXTstringnãonenhumCom --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 --apply

A 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.

Outros grupos de comandos